Installation d'Ubuntu par le réseau (PXE)
PXE est un système de boot réseau, disponible sur quasiment toutes les machines modernes possédant une carte réseau Ethernet. Nous parlons ici de son utilisation pour lancer l'installateur Ubuntu (ou Debian). Pour les détails sur PXE lui-même, voir la page PXE.
Le principe général est de récupérer le noyau (fichier en général appelé "linux") et le logiciel d'installation compris dans un disque d'initialisation initrd (init ram disk). Ces deux fichiers sont présents dans des archives nommées netboot.tar.gz :
Par exemple :
Pour Ubuntu Jaunty i386 : http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz
(pour l'installateur graphique : http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/gtk/netboot.tar.gz)
Pour Debian Lenny i386 : http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz
(pour l'installateur graphique : http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/gtk/netboot.tar.gz)
On prend ce qu'il faut dans le netboot.tar.gz et on le copie dans le /tftpboot. Par exemple pour Ubuntu Jaunty i386 :
# cd /tmp # wget http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz # tar zxf netboot.tar.gz # mkdir /tftpboot/debian-installer-jaunty # mv /tmp/debian-installer/i386 /tftpboot/debian-installer-jaunty/
Puis on indique les chemins au niveau de pxelinux.cfg/default :
# extrait de /tftpboot/pxelinux.cfg/default pour installeur Ubuntu Jaunty label jaunty kernel debian-installer-jaunty/i386/linux append vga=normal initrd=debian-installer-jaunty/i386/initrd.gz --
Il faut alors démarrer l'ordinateur en mode PXE (voir dans le BIOS, ou bien taper sur les touches F2, F9 ou F10 au démarrage, selon la machine) et indiquer "jaunty" comme image PXE choisie. Le système lance alors l'installateur d'Ubuntu classique...
Installation totalement automatique
Il est possible d'envoyer des réponses par défaut à l'installateur d'Ubuntu (en fait à debian-installer). Pour cela, il faut créer un fichier de preseed qui va contenir des codes de réponse et placer ce fichier sur un site Web. Puis il faut créer une rubrique spécifique dans pxelinux.cfg/default où l'on envoie les paramètres à l'installateur :
# extrait de /tftpboot/pxelinux.cfg/default label autojaunty kernel ubuntu-installer-jaunty-gtk/i386/linux append video=vesa:ywrap,mtrr vga=788 initrd=ubuntu-installer-jaunty-gtk/i386/initrd.gz locale=fr_FR.UTF-8 console-setup/ask_detect=false console-setup/layoutcode=fr netcfg/wireless_wep= netcfg/choose_interface=eth0 netcfg/get_hostname= url=http://install.refer.sn/preseed/jaunty --
Dans cet exemple :
le fichier de preseed est sur http://install.refer.sn/preseed/jaunty. Le voici en fichier attaché : preseed-jaunty.txt
- pour que le système d'installation puisse accéder à ce fichier, il faut que le réseau soit déjà actif. On ajoute donc directement ici les premières réponses aux questions de l'installateur, jusqu'à l'activation du réseau (on passe en français, clavier français, réseau sur eth0)
- on utilise l'installateur graphique (ubuntu-installer-jaunty-gtk) pour faire "joli", mais c'est en fait totalement inutile, c'est juste pour frimer
Attention, avec cette configuration et le fichier preseed proposé, lorsqu'on choisi autojaunty au démarrage PXE, la machine est totalement remise à zéro, sans aucune demande de confirmation, aucune question, rien !!
Idéalement, vous devez adapter le fichier preseed à votre environnement. Pour cela, faites comme moi, lisez :
la doc Ubuntu sur le sujet : https://help.ubuntu.com/9.04/installation-guide/i386/preseed-using.html
Quelques notes sur Ubuntu-fr : http://doc.ubuntu-fr.org/netboot#configurer_les_fichiers_preseed
La documentation d'origine, celle de debian-installer : http://d-i.alioth.debian.org/manual/fr.i386/apb.html
A Dakar, nous avons passé presque deux jours avant de trouver tous les paramètres qui nous convenait. Mais désormais, l'installation d'une machine Ubuntu ne prend que 10 secondes de temps : booter la machine en PXE, choisir autojaunty, et... aller faire autre chose !