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 l'adressage réseau n'a plus de secret pour vous et que je ne doive pas refaire ici un cours dessus et 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/feisty/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
Voila. Maintenant il suffit juste de redémarrer son serveur tftd : sudo /etc/init.d/tftpd-hpa stop et sudo /etc/init.d/tftpd-hpa start
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'intallation, n'oubliez pas désactiver l'option du boot sur le réseau sinon, elles ne démarreront jamais sur leur disques dur LOL