5. Permettre aux systèmes de démarrer via le réseau (sur le serveur)

Vérifiez qu'il y a bien des entrées pour tftp et bootps dans le fichier /etc/inetd.conf. Voici le mien :

tftp	dgram	udp	wait	nobody	/usr/libexec/tftpd	tftpd
#
# Ajout de qui que vous soyez
bootps  dgram  udp  wait  root  /usr/libexec/bootpd bootpd /etc/bootptab

Si vous devez modifier le fichier /etc/inetd.conf, envoyez ensuite un signal HUP à inetd. Pour cela, utilisez la commande ps -ax | grep inetd | grep -v grep pour connaître le numéro de processus d'inetd. Une fois que vous l'avez, envoyez lui le signal HUP. Cela se fait avec kill -HUP <pid>. Cela obligera inetd à relire ses fichiers de configuration.

Vous avez bien noté la valeur de addr dans les messages du programme de démarrage sur la machine sans disque ? C'est maintenant que vous allez en avoir besoin.

Ajoutez une entrée à /etc/bootptab (vous devrez peut-être créer ce fichier). Voici à quoi elle doit ressembler :

altair:\
        :ht=ether:\
        :ha=004001432666:\
        :sm=255.255.255.0:\
        :hn:\
        :ds=199.246.76.1:\
        :ip=199.246.76.2:\
        :gw=199.246.76.1:\
        :vm=rfc1048:

Ce qui, ligne par ligne, signifie :

altair nom du système sans disque, sans nom de domaine
ht=ether type matériel “ethernet”
ha=004001432666 adresse matérielle (le nombre que vous avez noté auparavant)
sm=255.255.255.0 masque de sous-réseau
hn dit au serveur de donner au client son nom de machine
ds=199.246.76.1 dit au client quel est son serveur de noms de domaine
ip=199.246.76.2 dit au client quelle est son adresse IP
gw=199.246.76.1 dit au client quelle est sa passerelle par défaut
vm=... laissez cela tel que

Note : Veillez à bien définir les adresses IP, j'ai inventé celles de l'exemple.

Créez le répertoire /tftpboot sur le serveur. Il contiendra les fichiers de configuration pour les systèmes sans disque dont ce sera le serveur de démarrage. Ces fichiers s'appelleront cfg.<ip>, où <ip> est l'adresse IP de la machine sans disque. Le fichier de configuration pour “altair” est /tftpboot/cfg.199.246.76.2. Voici son contenu :

rootfs 199.246.76.1:/DiskLess/rootfs/altair
hostname altair.kcis.com

La ligne hostname altair.kcis.com indique seulement au système sans disque quel est son nom qualifié.

La ligne rootfs 199.246.76.1:/DiskLess/rootfs/altair lui dit où est son système de fichiers racine qui sera monté par NFS.

Note : Ce système de fichiers racine sera monté en lecture seule par NFS.

L'arborescence de la machine sans disque peut ensuite être remontée pour autoriser les opérations de lecture/écriture.

J'utilise mon 386DX-40 comme terminal X dédié.

Voici l'arborescence d'“altair” :

/
/bin
/etc
/tmp
/sbin
/dev
/dev/fd
/usr
/var
/var/run

Et la liste des fichiers qu'elle contient :

-r-xr-xr-x  1 root  wheel  779984 Dec 11 23:44 ./kernel
-r-xr-xr-x  1 root    bin  299008 Dec 12 00:22 ./bin/sh
-rw-r--r--  1 root  wheel     499 Dec 15 15:54 ./etc/rc
-rw-r--r--  1 root  wheel    1411 Dec 11 23:19 ./etc/ttys
-rw-r--r--  1 root  wheel     157 Dec 15 15:42 ./etc/hosts
-rw-r--r--  1 root    bin    1569 Dec 15 15:26 ./etc/XF86Config.altair
-r-x------  1 bin     bin  151552 Jun 10  1995 ./sbin/init
-r-xr-xr-x  1 bin     bin  176128 Jun 10  1995 ./sbin/ifconfig
-r-xr-xr-x  1 bin     bin  110592 Jun 10  1995 ./sbin/mount_nfs
-r-xr-xr-x  1 bin     bin  135168 Jun 10  1995 ./sbin/reboot
-r-xr-xr-x  1 root    bin   73728 Dec 13 22:38 ./sbin/mount
-r-xr-xr-x  1 root  wheel    1992 Jun 10  1995 ./dev/MAKEDEV.local
-r-xr-xr-x  1 root  wheel   24419 Jun 10  1995 ./dev/MAKEDEV

N'oubliez pas d'exécuter MAKEDEV all dans le répertoire dev.

Voici enfin mon /etc/rc pour altair :

#!/bin/sh
#
PATH=/bin:/
export PATH
#
# configurer l'interface “en boucle”
/sbin/ifconfig lo0 127.0.0.1
#
# configurer la carte Ethernet
/sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00
#
# monter le système de fichiers racine via NFS
/sbin/mount antares:/DiskLess/rootfs/altair /
#
# monter le système de fichiers /usr via NFS
/sbin/mount antares:/DiskLess/usr /usr
#
/usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1
#
# Rédemarrer lorsque l'on quitte X
/sbin/reboot
#
# Nous avons planté ...
exit 1

Vos commentaires et questions sont bienvenus.

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.