Réponses:
Voir Wikipedia: PXE
C'est ma compréhension!

PXE (côté client) a diffusé une demande d'adresse IP. Réponse du serveur DHCP avec les informations requises: IP, Next Server IP (TFTP server IP), pxelinux.0(nom du fichier du chargeur d'amorçage PXE), ... etc

PXE (côté client) demande le pxelinux.0fichier au serveur TFTP, le charge dans la RAM puis passe le contrôle à pxelinux.0.
pxelinux.0obtient le fichier de configuration de démarrage du serveur TFTP avec le nom:
(s'il n'existe pas, il essaie avec le suivant)
defaultdéposer
Choix de l'utilisateur ou entrée de menu par défaut. pxelinux.0demande le noyau et le RAMDisk correspondants au serveur TFTP et les charge dans la RAM.
Transmet ensuite les paramètres de démarrage et le contrôle au noyau chargé.

Le noyau charge les parties restantes à partir du serveur TFTP ou de tout autre serveur de protocole en fonction de ses caractéristiques / propriétés.

Il existe de nombreuses façons de configurer le serveur PXE, c'est l'une d'entre elles.
Ces instructions ont été testées sur Ubuntu 9.10 et Ubuntu 10.04 sur une vraie machine. Ils devraient être toujours valides avec seulement quelques modifications. (Mis à jour et testé pour Ubuntu 14.04 sur VirtualBox, vérifiez les révisions d'édition pour les anciennes versions)
Mon objectif était PartedMagic 4.5 , il devrait être similaire à Ubuntu ou à toute distribution Linux.
Installer les packages DHCP et TFTP
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
Configuration DHCP
Modifier /etc/default/isc-dhcp-server, interface Ethernet pour le service DHCP
INTERFACES="eth0"
Modifier /etc/dhcp/dhcpd.confou /etc/ltsp/dhcpd.confil existe, configuration du service DHCP
Configurations spécifiques PXE: filename&next-server
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.123;
option broadcast-address 192.168.10.255;
filename "pxelinux.0";
next-server 192.168.10.123;
}
Configurez une adresse IP statique pour eth0, 192.168.10.123dans mon cas, en utilisant le gestionnaire de réseau pour l'édition Desktop ou /etc/network/interfacespour l'édition Server.
auto eth0
iface eth0 inet static
address 192.168.10.123
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
Réinitialisez l'interface réseau:
sudo ifdown eth0
sudo ifup eth0
Redémarrez le service
sudo service isc-dhcp-server restart
Vérifier l'état
netstat -lu
Production
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
Configuration TFTP
Modifiez /etc/inetd.conf, supprimez #<off>#du début de la tftpligne ou ajoutez-le s'il n'est pas sous le #:BOOT:commentaire (Ignorez ceci avec systemd, 15.10 et versions ultérieures)
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Activer le service de démarrage pour inetd
sudo update-inetd --enable BOOT
Démarrer le service
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
Vérifier l'état
netstat -lu
Production
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
Configuration des fichiers de démarrage PXE
Décompressez pmagic-pxe-4.5.zip. Si ce pxelinux.0n'est pas le cas, récupérez-le dans le sysliux-commonpackage installé sur /usr/lib/syslinux/pxelinux.0, Syslinux Project ou Ubuntu Netboot Image .
Mettez-les dans une structure similaire.
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
Modifiez /var/lib/tftpboot/pxelinux.cfg/default, si nécessaire, des exemples de chemins: pmagic/bzimage&pmagic/initramfs
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
Configurer les autorisations correctes
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
Modifiez l'ordre de démarrage du BIOS une seule fois à l'aide de F9ou F12, pour une configuration permanente à partir de la configuration du BIOS DEL, F2ou F12. (Selon la marque de la machine)
Déplacer vers le haut: [PXE | NIC | LAN | Ethernet | Network].
inetutils-inetdou xinetdpeut être utilisé à la place de openbsd-inetd, certaines inetdétapes sont différentes.
Le répertoire racine TFTP peut être modifié depuis /etc/default/tftpd-hpa. N'oubliez pas de mettre à jour /etc/inetd.confaussi.
De nombreuses distributions prennent en charge le chargement de RAMDisk via de nombreux protocoles: SSH (SFTP), SMB, NFS ... Exemple Ubuntu prend en charge NFS.
Certaines anciennes cartes réseau ne prennent pas en charge PXE, iPXE ( Ex. GPXE ou Etherboot ) peut être utilisé, soit sur disquette, clé USB, disque dur ( /bootpartition) ou même le flasher sur ROM (seulement quelques NIC pris en charge). GRUB2 possède un module pour prendre en charge le démarrage à l'aide de PXE.
Voir aussi Wikipedia: gPXE et ROM-O-matic .
Ubuntu Netboot Image from cdimage.ubuntu.com/netboot/ fournit l'installation d'Ubuntu à partir du réseau et il vous demandera de télécharger tous les packages requis depuis le miroir officiel ou local si vous en avez un.
La plupart des utilisateurs recherchent le démarrage d'une image en direct via PXE. Cette question était uniquement pour configurer un serveur PXE. Voir Ubuntu Wiki: Installation - LocalNet

Le menu PXE peut être personnalisé, le meilleur modèle à apprendre est Ubuntu NetBoot . Voir Pxeboot Multiple image

memdiskpeut être utilisé pour charger directement les images ISO ou de disquette via PXE. syslinux-commonle paquet en a une copie. Le client doit avoir suffisamment de RAM pour contenir l'image et une partie pour exécuter le système d'exploitation chargé.
Exemple de configuration:
/var/lib/tftpboot/
|-- FDSTD.144
|-- memdisk
|-- pxelinux.0
|-- slitaz-cooking.iso
|-- pxelinux.cfg
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
/pxelinux.cfg/default
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
LABEL slitaz
MENU LABEL ^Slitaz.iso
TEXT HELP
Testing boot from iso.
ENDTEXT
KERNEL memdisk
APPEND initrd=slitaz-cooking.iso
LABEL freedos_std
MENU LABEL ^FreeDOS STD
TEXT HELP
Testing boot from Floppy IMG.
ENDTEXT
KERNEL memdisk
APPEND initrd=FDSTD.144
Les packages PartedMagic ont été supprimés du site officiel après que le développeur d'origine ait décidé de le rendre commercial, certaines versions ont pu être trouvées via le réseau torrent. Ma réponse ici est un résumé de la première configuration PXE qui a fonctionné pour moi. Ubuntu Netboot Image devrait fonctionner avec les mêmes instructions.
netstat -lu | grep tftpmontre en mode d'écoute. Le dossier / tftpboot est 777, mais si j'essaye tftp> get pxelinux.0depuis le client, j'obtiens toujours une erreur tftp: pxelinux.0: Autorisation refusée . Avez-vous une idée pour le déboguer? Merci d'avance.
/var/lib/tftpboot/avec 755 (par défaut) devrait être ok. Vérifiez si vous pxelinux.0avez 644 ou exécutez sudo chmod -R +r /var/lib/tftpboot/pour rendre tout son contenu lisible.
filename "pxelinux.0";... aucun commentaire; P ... merci pour votre réponse et pour cette excellente (et complète) réponse. Vive