next up previous contents

Sous-sections


2.2 Créer la racine du système pour le terminal x

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.

2.2.1 Copie des fichiers

Ici, 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

2.2.2 Dossiers spécifiques a la racine du terminal X

Créez un dossier 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

2.2.3 Copie du noyau

Enfin, pour permettre au Terminal X de booter, vous devez copier le noyau que vous venez de compiler dans /diskless, la commande pour le faire est: cp /usr/src/sys/compile/DISKLESS/kernel /diskless

Sous linux, récuperez le noyau que vous avez crée plus haut.

2.2.4 Création du dossier /etc

Ce dossier est extrèmement simple, la config du terminal X étant réduite au minimum, il contient 5 fichiers: hosts, rc, resolv.conf, ttys et XF86Config

2.2.4.1 master.passwd

Il doit aussi contenir les mots de passes (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

2.2.4.2 hosts

Voila donc le contenu de ses fichiers, le fichier hosts contient:
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)

2.2.4.3 resolv.conf

Le fichier resolv.conf contient l'adresse des DNS (si vous en avez):
domain india.ath.cx
nameserver 192.168.0.1

2.2.4.4 ttys

Le fichier ttys est réduit a son strict minimum:
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.

2.2.4.5 rc

Le fichier qui s'occupe de la procédure de boot est le script rc (qui doit etre executable), il contient:
 
#!/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.

2.2.4.6 XF86Config

Et enfin, le fichier de config de Xfree Vous le créez avec xf86config et vous répondez non aux demandes d'enregistrement du fichier, jusqu'a ce qu'il vous propose de spécifier un emplacement, et alors, vous pourrez choisir /diskless/etc/XF86Config.vishnu

Pour que le terminal X puisse acceder à ces fichiers, il faut configurer un serveur NFS.


next up previous contents
Nicolas LS
2002-03-27