Il existe un script pour créer automatiquement ce dossier (même s'il est plus adapté à une station sans disque plutôt qu'à un simple terminal X), vous le trouverez dans /usr/share/examples/diskless
sur FreeBSD.
Pour ma part, je ne l'ai pas utilisé, car , pour un simple terminal X, c'est plus simple de le faire à la main. La racine se trouve dans /diskless
, vous pouvez la déplacer, mais vous devrez alors modifier tous les fichiers de config en fonction du nouveau chemin d'accès.
bin
est relatif à /diskless
et désigne donc /diskless/bin
.
Vous avez besoin d'une racine minimale. bin
, dev
, sbin
et modules
étant identiques à ceux sur le serveur, un cp -R devrait donc suffire.
Sous linux, il faut bien sur copier aussi les mêmes dossier, en y ajoutant lib
# mkdir /diskless # cd / # cp -R /bin /sbin /modules /dev /diskless
root
vide et des dossiers: var/log
, var/db
et var/tmp
; le dossier tmp
est un lien symboliquevers var/tmp
. Créez ensuite les points de montage nécessaire (juste usr
par un simple mkdir
). Tous ces fichiers doivent appartenir a root.
# cd /diskless # mkdir var var/log var/tmp var/db usr root etc # chmod 1777 var/tmp # Défini les droits rwxrwxrwt
cp /usr/src/sys/compile/DISKLESS/kernel /diskless
Sous linux, récuperez le noyau que vous avez crée plus haut.
passwd
et shadow
sous linux, laissez juste les comptes de base). Sous FreeBSD, c'est le fichier master.passwd
qui a ce rôle, copiez le dans le nouveau dossier etc
, et générez les fichier spwd.db
et passwd
grâce a la commande pwd_mkdb
# Les commandes à exécuter sont les suivantes cp /etc/master.passwd /diskless/etc; emacs /diskless/etc/master.passwd # Supprimez alors les comptes utilisateurs qui ne sont pas lié au système cd /diskless/etc pwd_mkdb -d /diskless/etc pwd_mkdb -p -d /diskless/etc
127.0.0.1 localhost 192.168.0.1 shiva # Si vous n'avez pas de DNS qui se charge de la 192.168.0.2 vishnu # résolution (seulement pour shiva et vishnu)
domain india.ath.cx nameserver 192.168.0.1
console none unknown off secure ttyv0 "/usr/libexec/getty Pc" cons25 on secure # Virtual terminals ttyv1 "/usr/libexec/getty Pc" cons25 off secure ttyv2 "/usr/libexec/getty Pc" cons25 off secure ttyv3 "/usr/libexec/getty Pc" cons25 off secure ttyv4 "/usr/libexec/getty Pc" cons25 off secure ttyv5 "/usr/libexec/getty Pc" cons25 off secure ttyv6 "/usr/libexec/getty Pc" cons25 off secure ttyv7 "/usr/libexec/getty Pc" cons25 off secure # Pseudo terminals ttyp0 none network ttyp1 none network ttyp2 none network [...] ttySv none network
Le fichier ttys est remplacé par inittab sous linux, vous devrez aussi le réduire a un minimum (voir la page de man correspondante) et faire en sorte qu'il finisse par exemple sur le niveau 3 et lance le script rc ci-dessous.
#!/bin/sh # PATH=/bin:/:/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin export PATH # configurer les interfaces reseaux # Corriger l'IP si besoin # Ces commandes peuvent varier sous linux, voir les HOWTO /sbin/ifconfig lo0 127.0.0.1 /sbin/ifconfig ed0 192.168.0.2 netmask 0xffffff00 # monter les système de fichiers via NFS # Modifier les noms au besoin /sbin/mount shiva:/diskless / /sbin/mount shiva:/usr /usr # Chargement de la map fr pour le clavier /usr/sbin/kbdcontrol -l /usr/share/syscons/keymaps/fr.iso.acc.kbd #loadkeys french #pour linux # Lancer Xfree en mode -query pour contacter XDMCP sur shiva # Modifier les noms au besoin /usr/X11R6/bin/X -query shiva -xf86config /etc/XF86Config.vishnu >/dev/null 2>&1 # # Rédemarrer lorsque l'on quitte X /sbin/reboot # Désactivé dans un premier temps , permet de voir les # erreurs et d'éviter les boots en boucle # Voila, j'espère que ce script marche , il faudra que je vérifie completement.
Pour que le terminal X puisse acceder à ces fichiers, il faut configurer un serveur NFS.