J'en avait marre de graver des cd d'ubuntu (ayant un PC sous xubuntu et deux sous kubuntu) alors avec la sortie de gutsy je me suis mis à chercher comment installer par réseau cette distribution. J'ai tester le netboot tout court mais ça n'a pas marcher sur mon portable car il n'a pas réussi à trouver internet.
Je me suis inspiré en grande partie des pages suivantes :
https://help.ubuntu.com/community/Installation/LocalNet?highlight=%28install%29%7C%28net%29
http://doc.ubuntu-fr.org/netboot
La méthode si dessous permet d'installer les versions d'ubuntu comme depuis un liveCD d'installation (Ubuntu desktop), mais depuis à travers le réseau.
Pour cela on a besoin de pas mal de chose :
- un serveur dhcp pour permettre au bios d'accéder au reseau
- un serveur tfptd-hpa qui permet au bios d'aller chercher l'image du noyau pour booter
- les fichiers pxe permettent au bios de savoir comment booter
- nfs pour permettre au noyau d'aller chercher les fichier du liveCD
Configuration de mon réseau :
[serveur@192.168.0.1](eth0)----[pc à installer@dhcp]
Installation tfptd-hpa :
sudo apt-get install tftpd-hpa
Confifuration tfptd-hpa (mon utilisateur par default est pcr à vous d'adapter) :
pcr@home:~$ sudo vi /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -c -u pcr -s /var/lib/tftpboot
pcr@home:~$ sudo chown pcr:pcr /var/lib/tftpboot/ -R
pcr@home:~$ sudo chmod 1777 /var/lib/tftpboot/
On redémarre le serveur :
sudo /etc/init.d/tftpd-hpa restart
Test du serveur tftp sur une autre machine que le serveur :
pcr@home:~$ touch toto
pcr@home:~$ tftp 192.168.0.1
pcr@home:~$ tftp> put toto
Sur le serveur on doit retrouver le fichier toto dans /var/lib/tftpboot/
Préparation des fichiers de boot pxe :
pcr@home:~$ cd /var/lib/tftpboot/
On récupère le fichier netboot de l'ubuntu :
pcr@home:~$ wget http://archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/netboot/netboot.tar.gz
On décompresse le fichier :
pcr@home:~$ tar -xvzf netboot.tar.gz
On monte l'image du liveCD d'installation ubuntu Desktop :
pcr@home:~$ sudo mount -o loop -t iso9660 /path/to/ubuntu-7.10-desktop-i386.iso /media/cdrom0/
On copie le noyau du liveCD pour le boot distant dans le repertoire /var/lib/tftpboot/
pcr@home:~$ cp /media/cdrom0/casper/vmlinuz .
pcr@home:~$ cp /media/cdrom0/casper/initrd.gz .
On ajoute le boot depuis le l'image CD par le biais du le serveur NFS à la configuration pxe :
pcr@home:~$ vi pxelinux.cfg/default
LABEL LiveCD
kernel vmlinuz
append initrd=initrd.gz boot=casper netboot=nfs nfsroot=192.168.0.1:/media/cdrom0
Installation du serveur nfs
plus d'information sur le nfs
pcr@home:~$ sudo apt-get install nfs-kernel-server
On partage le cdrom pour l'installation :
sudo vi /etc/exports
pcr@home:~$ /media/cdrom0 192.168.0.0/24(ro,async)
On redémarre le serveur NFS :
pcr@home:~$ sudo vi /etc/init.d/nfs-kernel-server restart
Installation du serveur dhcp
plus d'information sur le dhcp
pcr@home:~$ sudo apt-get install dhcp3-server
pcr@home:~$ sudo vi /etc/dhcp3/dhcpd.conf
#DNS
ddns-update-style none;
option domain-name-servers 212.27.53.252,212.27.54.252;
option domain-name "example.org";
#Baux DHCP
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
#reseau
subnet 192.168.0.0 netmask 255.255.255.0 {
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
range 192.168.0.6 192.168.0.8;
filename "pxelinux.0";
next-server 192.168.0.1;
ping-check = 1;
}
#on autorise le boot distant
allow bootp;
allow booting;
On configure l'interface du serveur dhcp en static :
pcr@home:~$ sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
network 192.168.0.0
gateway 192.168.10.254
On dit au serveur DHCP d'écouter sur la bonne interface :
pcr@home:~$ sudo vi /etc/default/dhcp3-server
INTERFACES="eth0"
On redemarre l'interface réseau et le serveur dhcp :
pcr@home:~$ sudo /etc/init.d/networking restart
pcr@home:~$ sudo /etc/init.d/dhcp3-server restart
Installation sur l'ordinateur client
On boot le pc client en pxe depuis le bios ou depuis une disquette Etherboot. Au prompt "boot: " saisir LiveCD (le label de la configuration du fichier pxelinux.cfg/default).
Ensuite installez votre ubuntu comme depuis le liveCD
Image : ivanx