4.3. Préparer les fichiers pour amorcer depuis le réseau avec TFTP

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 celle-ci doit savoir amorcer votre machine.

Vous devez configurer un serveur TFTP et, pour beaucoup de machines, 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 rétrocompatibilité). Certains systèmes ne peuvent être configurés que par DHCP.

Le protocole trivial de transfert de fichiers (Trivial File Transfert Protocol, TFTP) est utilisé pour transférer l'image d'amorçage au client. Théoriquement, tout serveur sur les plates-formes 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.

4.3.1. Configurer un serveur DHCP

Il existe un serveur DHCP libre, dhcpd ISC. Pour Debian GNU/Linux, le paquet isc-dhcp-server est recommandé. Voici un exemple de fichier de configuration (habituellement /etc/dhcp/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.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB; 
  fixed-address 192.168.1.90;
}

Dans cet exemple, le serveur servername joue le rôle de serveur DHCP, serveur TFTP et passerelle réseau. Vous devrez certainement changer les options concernant le nom de domaine ainsi que le nom du serveur et l'adresse matérielle 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/isc-dhcp-server restart.

4.3.2. Activer le serveur TFTP

Pour faire fonctionner le serveur TFTP, vous devez vous assurer au préalable que tftpd est activé.

Pour tftpd-hpa, il y a deux façons de lancer le service. Il peut être activé à la demande par le démon inetd du système, ou bien il peut être exécuté en tant que démon indépendant. Le choix de la méthode se fait à l'installation du paquet et peut être modifié en le reconfigurant.

[Note] Note

Les serveurs TFTP utilisaient habituellement le répertoire /tftpboot pour stocker les images. Cependant les paquets Debian GNU/Linux se servent d'autres répertoires pour obéir au standard sur l'organisation des fichiers. Par exemple, tftpd-hpa utilise par défaut /srv/tftp. Vous aurez à modifier les exemples de cette section.

Toutes les alternatives à in.tftpd disponibles dans Debian doivent enregistrer les requêtes TFTP dans le journal du système. Quelques unes acceptent une option -v qui augmente la quantité d'informations enregistrées. En cas d'erreur d'amorçage, il est recommandé de consulter ces enregistrements pour rechercher les causes des erreurs.

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 à empêcher la détection du MTU, sinon la PROM de la machine SGI 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.

4.3.3. Mettre les images TFTP en place

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'amorçage 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.

4.3.3.1. Amorçage TFTP pour SGI

Sur les machines 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.