Récent acquéreur d'une machine basée sur une carte mère Via mini-itx dans un boitier ultra compact, je me suis intéressé à l'installation par le réseau, n'ayant pas la place de mettre un lecteur de CDROM ou un lecteur de disquette dans la machine en question.
Donc les cartes mères via intégrent une ROM de boot réseau de provenance Intel.
Dans un premier temps, la Rom va faire une requête auprès du serveur DHCP pour obtenir adresse IP, gateway et surtout emplacement de l'image à récupérer.
Ensuite, elle va récupérer via TFTP l'image en question.
L'OS a installé est un GNU/Linux Debian 3.1 (Sarge), et, bien que cette option d'installation soit peu documentée, il y a tout ce qu'il faut pour lancer l'installation. Le chargeur de boot utilisé généralement pour ce genre d'installation est pxelinux, issu du projet syslinux, projet utilisé dans la majorité des CD Bootables type CD d'installation ou encore Live-CD.
Donc voyons dans un premier temps ou trouver ce qu'il nous faut pour booter l'installeur Debian.

Installeur Debian pour PXE.

Malgré une lecture assidue de la documentation officielle, je n'ai pas trouvé de détails traitants de l'installation via le réseau. Je me suis donc mis à la recherche des disquettes de boot/root sur ftp.debian.org, quand je suis tombé sur ça:
ftp://ftp.debian.org/debian/dists/sarge/main/installer-i386/current/images/netboot/ Parfait !
Un rapide coup d'oeil au pxelinux.cfg/default, m'indique que l'arborescence suivante est requise pour le lancement de l'installeur:

./pxelinux.0 ./debian-installer ./debian-installer/i386 ./debian-installer/i386/2.6 ./debian-installer/i386/2.6/linux ./debian-installer/i386/2.6/initrd.gz ./debian-installer/i386/linux ./debian-installer/i386/pxelinux.0 ./debian-installer/i386/initrd.gz ./debian-installer/i386/pxelinux.cfg.serial-9600 ./debian-installer/i386/pxelinux.cfg.serial-9600/default ./debian-installer/i386/boot-screens ./debian-installer/i386/boot-screens/splash.rle ./debian-installer/i386/boot-screens/f1.txt ./debian-installer/i386/boot-screens/f2.txt ./debian-installer/i386/boot-screens/f3.txt ./debian-installer/i386/boot-screens/f4.txt ./debian-installer/i386/boot-screens/f5.txt ./debian-installer/i386/boot-screens/f6.txt ./debian-installer/i386/boot-screens/f7.txt ./debian-installer/i386/boot-screens/f8.txt ./debian-installer/i386/boot-screens/f9.txt ./debian-installer/i386/boot-screens/syslinux.txt ./debian-installer/i386/boot-screens/f10.txt ./debian-installer/i386/pxelinux.cfg ./debian-installer/i386/pxelinux.cfg/default ./pxelinux.cfg ./pxelinux.cfg/default

Voila donc l'arborescence "préparée". Voyons maintenant comment dire à la machine de booter sur ces images.

DHCP & TFTP pour le boot PXE

Les prérequis ici, sont d'avoir un serveur DHCP convenablement configuré pour répondre au requête sur votre LAN. Sous Debian, un apt-get install dhcp fera l'affaire pour la majorité des configurations. Vérifiez également que seule votre machine répond au requête DHCP.
Un coup d'oeil à la page de manuel dhcp-options(5) révèle l'existence d'une option intéressante:

option bootfile-name string; This option is used to identify a bootstrap file. If supported by the client, it should have the same effect as the filename declaration. BOOTP clients are unlikely to support this option. Some DHCP clients will support it, and others actually require it.