NetBoot

Un article de ClissXXI.

Pour démarrer un ordinateur à partir du réseau, vous devez mettre en place un serveur disposant de DHCP et the TFTP, puis fournir une image exécutale PXE.

Sommaire

[modifier] Sur le serveur

Paquets à installer:

aptitude install dhcp3-server tftpd-hpa

Installation de l'image PXE:

mkdir /var/lib/tftpboot
cd /var/lib/tftpboot
wget http://ftp.fr.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz
# version gtk&AMD64: http://ftp.fr.debian.org/debian/dists/lenny/main/installer-amd64/current/images/netboot/gtk/netboot.tar.gz
tar xzf netboot.tar.gz

Configuration minimaliste du DHCP, dans /etc/dhcp3/dhcpd.conf:

#option routers 192.168.1.1;
#option domain-name-servers 192.168.1.1;
#option domain-name-servers some.other.name.server;

filename "pxelinux.0";

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.201 192.168.1.210;
}

En cas de déplacement de /var/lib/tftpboot (pour passer d'une version à la suivante, par ex.), relancer tftpd:

/etc/init.d/tftpd-hpa restart

[modifier] Sur l'ordinateur à installer

Paramétrez le BIOS pour que l'ordinateur démarre sur le réseau.

La procédure est différente pour chaque type de BIOS. Certains BIOS ne gèrent pas cette fonctionnalité.

[modifier] Pour tester

On peut tester ça facilement avec QEMU.

[modifier] Avec Fedora 7

Tout n'est pas fourni, il faut bricoler la fin à la main. Récupérer:

mkdir /var/lib/tftpboot.f7
cd /var/lib/tftpboot.f7

# Get kernel and init ram-disk
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/images/pxeboot/initrd.img
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/images/pxeboot/vmlinuz
# (actually those are the same than in i386/os/isolinux/)

# Get the pxelinux "boot sector"
aptitude install syslinux
cp /usr/lib/syslinux/pxelinux.0 .

# Install default pxelinux configuration file:
mkdir pxelinux.cfg
cd pxelinux.cfg
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/isolinux/isolinux.cfg -O default
cd ..

# Graphical splash
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/isolinux/vesamenu.c32
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/isolinux/splash.jpg

# F1-F5 messages (optional; if you want to see them, press Esc from the graphical prompt)
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/isolinux/boot.msg
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/isolinux/general.msg
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/isolinux/options.msg
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/isolinux/param.msg
wget http://download.fedora.redhat.com/pub/fedora/linux/releases/7/Fedora/i386/os/isolinux/rescue.msg

# Activate this PXE boot 
cd /var/lib
ln -sf tftpboot.f7 tftpboot
/etc/init.d/openbsd-inetd restart

N'oubliez pas de tester avec QEMU si nécessaire :)

[modifier] Liens