L'installation d'un OS peut s'avérer difficile par exemple sur des machines ne disposant pas de lecteur CD/DVD (comme le Portégé 2000 de toshiba). Heureusement la plupart de ces machines supportent le boot par le réseau appelé PXE (Preboot Execution Environment). Pour faire démarrer un ordinateur en PXE, il vous faut une autre machine dotée d'un serveur DHCP et d'un serveur TFTP.

Voici la marche à suivre pour installer un système debian en PXE.

Installation d'un server TFTP

Pour commencer, il nous faut un serveur TFTP.

~$ apt-get install tftpd-hpa

Le serveur TFTP n'a pas besoin d'être lancé : par défaut sous debian le port udp 69 est géné par inetd qui se charge de lancer un processus in.tftpd lorsqu'un requête est reçue.
Dans notre cas l'utilisation du server PXE est occasionnelle (uniquement lors d'une installation de machine), nous allons donc conserver ce fonctionnement.

Mise à jour du DHCP

Editons à présent la configuration du serveur DHCP pour que l'attribution d'une IP soit accompagnée de l'adresse du serveur TFTP que nous venons d'installer. Si vous n'avez pas de serveur DHCP, installez l'excellent dnsmasq. Editez ensuite le fichier /etc/dnsmasq.conf pour y ajouter ces lignes :

# pxe boot options
dhcp-boot=pxelinux.0,architect,192.168.12.2

Ici, le serveur TFTP est installé sur la machine "architect" possédant l'ip "192.168.12.2". N'oubliez pas de redémarrer le serveur après cette modification :

~$ /etc/init.d/dnsmasq restart

Création du système de boot

Créez le fichier /var/lib/tftpboot/pxelinux.cfg/default qui contiendra la configuration du boot utilisée par toutes les machines. Pour mettre en place une configuration particuliere pour certaines adresses MAC, remplacez le fichier "default" par l'adresse MAC en hexa (par exemple "001E8CC84372").

~$ mkdir /var/lib/tftpboot/pxelinux.cfg
~$ cat > /var/lib/tftpboot/pxelinux.cfg/default << EOF
DISPLAY boot.txt
DEFAULT etch_i386_install

LABEL etch_i386_install
kernel debian/etch/i386/linux
append vga=normal initrd=debian/etch/i386/initrd.gz  --
LABEL etch_i386_rescue
kernel debian/etch/i386/linux
append vga=normal initrd=debian/etch/i386/initrd.gz  rescue/enable=true --

PROMPT 1
TIMEOUT 0

EOF

Cette configuration affichera le contenu du fichier boot.txt au boot pour permettre de choisir une option de démarrage.

~$ cat > /var/lib/tftpboot/boot.txt << EOF
===================
== PXE Boot Menu ==
===================

etch_i386_install
etch_i386_rescue
EOF

Il ne reste plus qu'à placer les fichiers nécessaires au démarrage du système dans le répertoire debian/etc/i386 comme indiqué dans le fichier de configuration décrit précédemment.

~$ cd /var/lib/tftpboot
~$ wget http://ftp.fr.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/debian-installer/i386/pxelinux.0
~$ mkdir -p /var/lib/tftpboot/debian/etch/i386
~$ cd /var/lib/tftpboot/debian/etch/i386
~$ wget http://ftp.fr.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/debian-installer/i386/linux
~$ wget http://ftp.fr.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz

Pour tester, il suffit maintenant de démarrer une machine en PXE : si tout se passe bien, il suffit de saisir "etch_i386_install" après l'affichage du menu de boot pour pouvoir démarrer l'installation d'un système debian.

Source : http://www.debian-administration.org/articles/478