Si votre machine est connectée à un réseau local, vous pouvez l'amorcer directement à partir d'une autre machine de ce réseau en utilisant TFTP. Pour cela, les fichiers d'amorçage doivent être placés à un endroit spécifique de cette machine et elle doit savoir amorcer votre propre machine.
Vous devez configurer un serveur TFTP et, pour beaucoup de machines, un serveur BOOTP ou un serveur DHCP.
Le protocole DHCP (« Dynamic Host Configuration Protocole », Protocole de configuration dynamique des hôtes) est une extension bien plus flexible de BOOTP (et respectant la compatibilité ascendante). Certains systèmes ne peuvent être configurés que par DHCP.
Le protocole trivial de transfert des fichiers (« Trivial Transfert File Protocol » ou TFTP) est utilisé pour transférer l'image d'amorçage au client. Théoriquement, tout serveur sur les plateformes qui implémentent ces protocoles peut être utilisé. Dans les exemples qui vont suivre, on donnera les commandes pour SunOS 4.x, SunOS 5.x (mieux connu sous le nom de Solaris) et GNU/Linux.
Il existe un seul serveur DHCP libre, dhcpd ISC. Dans
Debian GNU/Linux, il est disponible dans le paquet dhcp
.
Voici un exemple de fichier de configuration (habituellement
/etc/dhcpd.conf
) :
option domain-name "example.com"; option domain-name-servers ns1.example.com; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; server-name "servername"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option routers 192.168.1.1; } host clientname { filename "/tftpboot/tftpboot.img"; server-name "servername"; next-server servername; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
Note : dans le nouveau paquet dhcp3
, ce fichier
s'appelle /etc/dhcp3/dhcpd.conf
.
Dans cet exemple, il y a un serveur servername
qui joue le rôle de serveur DHCP, serveur TFTP et passerelle réseau. Vous
devrez certainement changer les options de domain-name
ainsi que le nom du serveur et les adresses matérielles du client. L'option
filename
devrait être le nom du fichier extrait
par TFTP.
Après avoir modifié le fichier de configuration de dhcpd,
relancez dhcpd par
/etc/init.d/dhcpd restart
.
Pour faire fonctionner le serveur TFTP, vous devez vous assurer au préalable
que tftpd est activé. Ce dernier est généralement activé
grâce à la ligne suivante dans /etc/inetd.conf
:
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /tftpboot
Les paquets Debian, quand ils sont installés, placent correctement cette ligne.
Lisez ce fichier et mémorisez le répertoire passé en argument à
in.tftpd ; vous en aurez besoin ultérieurement.
L'option -l
autorise certaines versions de
in.tftpd à enregistrer toutes les requêtes dans le journal
du système ; c'est extrêmement pratique en cas d'erreur d'amorçage. Si
vous avez dû modifier /etc/inetd.conf
, vous devrez le
signaler au processus inetd. Sur une machine Debian,
lancez /etc/init.d/inetd reload
; sur les autres
machines, retrouvez le numéro de processus de inetd et
tuez-le avec la commande
kill -HUP
.
inetd-pid
Si vous voulez installer Debian sur une machine SGI et si votre serveur TFTP est une machine GNU/Linux avec Linux 2.4.X, il vous faudra effectuer la manœuvre suivante sur votre serveur :
# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
de façon à détourner la détection du MTU, sinon la PROM de l'Indy ne pourra pas télécharger le nouveau noyau. En outre, assurez-vous que les paquets TFTP transitent par un port source inférieur à 32767 ou bien le téléchargement s'arrêtera après le premier paquet. Vous pouvez toujours contourner ce bogue de la PROM grâce au noyau 2.4.X en ajustant
# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
pour fixer l'intervalle des ports source que le serveur TFTP peut utiliser.
Ensuite, placez les images TFTP dont vous avez besoin (décrites dans la
Section 4.2.1, « Où trouver les fichiers d'installation ? ») dans le répertoire des images d'amorce
de tftpd. Généralement, ce répertoire s'appelle
/tftpboot
. Vous aurez à faire un lien depuis ce fichier
vers le fichier que tftpd utilisera pour amorcer le client.
Malheureusement, le nom du fichier est déterminé par le client
TFTP et il n'y a pas vraiment de standard.
Sur les Indy de SGI, vous pouvez compter sur bootpd pour
obtenir le nom du fichier TFTP. Il est donné soit par
bf=
dans /etc/bootptab
ou
bien par l'option filename=
dans
/etc/dhcpd.conf
.