Boot via le réseau
Contexte
Le but de cette page est de documenter l'installation d'une machine via le réseau internet en l'absence de CD d'installation fonctionnel. Ma situation était simple :
- Cd d'installation qui ne marchait pas
- Le temps qui passait
- 20 postes à installer le plus vite possible
Préparation
Ici, il faut s'assurer de quelques petites choses :
- La machine A à installer a bien une carte réseau
- Une autre machine B (serveur) sur laquelle il est possible d'installer les outils nécessaires
- Un réseau local fonctionnel
- Les machine A et la machine B sont bien sur le même concentrateur
- Un miroir COMPLET accessible en local ou à défaut une très bonne connexion à internet
- Une bonne connaissance de linux
Voila, je suppose que vous avez de quoi vous occuper durant la très longue période d'installation.
Ok c'est parti
Installation
Il y a deux étapes distinctes : Sur le serveur et sur les clients.
Sur le serveur
- Installer un serveur TFT et inetd si ce n'est déja fait
sudo apt-get install tftpd-hpa inetutils-inetd
Automatiser le lancement de TFT à chaque demande (ne pas le mettre en tant que daemon) en ajoutant dans le fichier /etc/inetd.conf la ligne suivante :
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
- Mettre à jour la configuration
sudo update-inetd --enable BOOT
Dans le fichier /etc/default/tftpd-hpa passer le paramêtre RUN_DAEMON à "yes"
- Si il n'y a pas de serveur DHCP sur le réseau installer en un avec
sudo apt-get install dhcp3-server
et dans le fichier de configuration /etc/dhcp3/dhcp.conf dans la déclaration de votre réseau ajouter les lignes :
next-server adresse_réseau_machineB; filename "pxelinux.0";
Ce qui donne :
subnet adresse_du_réseau netmask masque_du_reseau { range adresse_reseau_depart adresse_reseau_arrivée; next-server adresse_réseau_machineB; filename "pxelinux.0"; }
- Redémarrer le server dhcp avec
sudo /etc/init.d/dhcp3-server start
- Retour sur la machine B pour télécharger la liste des fichiers nécessaires au boot sur réseau :
lftp -c "open http://archive.ubuntu.com/ubuntu/dists/$DISTRIBUTION/main/installer-i386/current/images/; mirror netboot/"
- Copier tout cela dans le bon dossier avec
cp -a netboot/* /var/lib/tftpboot
RDV dans /var/lib/tftpboot/ et vérifiez la liste des fichiers présents avec ls. Ca devrait ressembler à quelque chose comme cela :
/var/lib/tftpboot/ /var/lib/tftpboot/pxelinux.0 /var/lib/tftpboot/initrd.gz /var/lib/tftpboot/mini.iso /var/lib/tftpboot/debian-installer /var/lib/tftpboot/debian-installer/linux /var/lib/tftpboot/debian-installer/initrd.gz /var/lib/tftpboot/debian-installer/boot-screens /var/lib/tftpboot/debian-installer/boot-screens/splash.rle /var/lib/tftpboot/debian-installer/boot-screens/f1.txt /var/lib/tftpboot/debian-installer/boot-screens/f2.txt /var/lib/tftpboot/debian-installer/boot-screens/f3.txt /var/lib/tftpboot/debian-installer/boot-screens/f4.txt /var/lib/tftpboot/debian-installer/boot-screens/f5.txt /var/lib/tftpboot/debian-installer/boot-screens/f6.txt /var/lib/tftpboot/debian-installer/boot-screens/f7.txt /var/lib/tftpboot/debian-installer/boot-screens/f8.txt /var/lib/tftpboot/debian-installer/boot-screens/f9.txt /var/lib/tftpboot/debian-installer/boot-screens/syslinux.txt /var/lib/tftpboot/debian-installer/boot-screens/f10.txt /var/lib/tftpboot/initrd.list /var/lib/tftpboot/vmlinuz /var/lib/tftpboot/pxelinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
C'est bon.
Sur le client
Enfin sur toutes les machines A permettre le démarrage sur réseau avant le reste des autres options de démarrage(une option dans le BIOS dans la séquence de démarrage -boot order), sauvegarder et redémarrer les. Ca devrait marcher.
Finalisation
Bon à la fin de l'installation, n'oubliez pas désactiver l'option du boot sur le réseau sinon, elles ne démarreront jamais sur leur disques dur LOL