Відповіді:
Дивіться Вікіпедію: PXE
Це моє розуміння!

PXE (сторона клієнта) транслює запит на IP. Відповідь DHCP-сервера з необхідною інформацією: IP, IP наступного сервера (IP-сервер TFTP), pxelinux.0(ім'я файлу завантажувача PXE-завантажувача), ... тощо

PXE (клієнтська сторона) запитує pxelinux.0файл з сервера TFTP, завантажує його в оперативну пам'ять, після чого передає управління pxelinux.0.
pxelinux.0отримує файл конфігурації завантаження з сервера TFTP з ім'ям:
(якщо його не існує, він намагається з наступним)
defaultфайлу
Або вибір користувача, або запис меню за замовчуванням. pxelinux.0запитує відповідне ядро та RAMDisk з сервера TFTP і завантажує їх в оперативну пам'ять.
Потім передає параметри завантаження та управління завантаженому ядру.

Ядро завантажує залишені частини з TFTP-сервера або будь-якого іншого сервера протоколів залежно від його особливостей / властивостей.

Існує багато способів налаштування PXE-сервера, це один з них.
Ці інструкції були протестовані на Ubuntu 9.10 та Ubuntu 10.04 на реальній машині. Вони повинні бути дійсними лише з незначними змінами. (Оновлено та випробувано для Ubuntu 14.04 на VirtualBox, перевірте редагування версій старих версій)
Моєю ціллю був PartedMagic 4.5 , він повинен бути схожим на Ubuntu або будь-який дистрибутив Linux.
Встановіть пакети DHCP & TFTP
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
Налаштування DHCP
Редагувати /etc/default/isc-dhcp-server, Ethernet інтерфейс для служби DHCP
INTERFACES="eth0"
Редагувати /etc/dhcp/dhcpd.confабо /etc/ltsp/dhcpd.confвона існує, конфігурація служби DHCP
Конфігурації 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;
}
Налаштуйте статичний IP для eth0, 192.168.10.123в моєму випадку, використовуючи мережевий менеджер для видання Desktop або /etc/network/interfacesдля серверного видання.
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
Повторна інтеграція мережевого інтерфейсу:
sudo ifdown eth0
sudo ifup eth0
Перезапуск служби
sudo service isc-dhcp-server restart
Перевірте статус
netstat -lu
Вихідні дані
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
Налаштування TFTP
Відредагуйте /etc/inetd.conf, видаліть #<off>#з початку tftpрядка або додайте, якщо його немає під #:BOOT:коментарем. (Пропустіть це з systemd, 15.10 та пізніших версій)
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Увімкнути службу завантаження для inetd
sudo update-inetd --enable BOOT
Початок обслуговування
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
Перевірте статус
netstat -lu
Вихідні дані
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
Налаштування завантажувальних файлів PXE
Розпакуйте pmagic-pxe-4.5.zip. Якщо pxelinux.0його немає, дістаньте його з sysliux-commonпакету, встановленого на /usr/lib/syslinux/pxelinux.0, Syslinux Project або Ubuntu Netboot Image .
Помістіть їх у подібну структуру.
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
Відредагуйте /var/lib/tftpboot/pxelinux.cfg/default, якщо потрібно, приклади шляхів: 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
Налаштуйте правильні дозволи
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
Змініть порядок завантаження BIOS за один раз, використовуючи F9або F12, для постійної установки з конфігурації BIOS DEL, F2або F12. (Залежно від марки машини)
На початок: [PXE | NIC | LAN | Ethernet | Network].
inetutils-inetdабо xinetdможна використовувати замість цього openbsd-inetd, деякі inetdкроки відрізняються.
Кореневий каталог TFTP можна змінити з /etc/default/tftpd-hpa. Не забудьте також оновити /etc/inetd.conf.
Багато дистрибутивів підтримують RAMDisk через багато протоколів: SSH (SFTP), SMB, NFS ... Приклад Ubuntu підтримує NFS.
Деякі старі мережеві карти не підтримують PXE, iPXE ( напр., GPXE або Etherboot ), їх можна використовувати як на дискеті, USB-накопичувачі, жорсткому диску ( /bootрозділі), так і навіть прошивати на ROM (підтримується лише декілька NIC). GRUB2 має модуль для підтримки завантаження за допомогою PXE.
Дивіться також Вікіпедію: gPXE та ROM-O-matic .
Ubuntu Netboot Image від cdimage.ubuntu.com/netboot/ забезпечує встановлення Ubuntu з мережі, і він попросить завантажити всі необхідні пакети з офіційного дзеркала або з локального, якщо у вас є.
Більшість користувачів шукають завантаження живого зображення через PXE. Це питання стосувалося лише налаштування PXE-сервера. Див. Ubuntu Wiki: Установка - LocalNet

Меню PXE можна налаштувати, найкращий шаблон, з якого можна дізнатися - це Ubuntu NetBoot . Див. Декілька зображень Pxeboot

memdiskможе використовуватися для завантаження зображень ISO або дискети безпосередньо через PXE. syslinux-commonпакет має копію. Клієнт повинен мати достатньо оперативної пам’яті, щоб утримувати зображення, плюс частина для роботи завантаженої ОС.
Приклад конфігурації:
/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
Пакети PartedMagic були скинуті з офіційного сайту після того, як оригінальний розробник вирішив зробити його комерційним, деякі випуски можна було знайти через торрент-мережу. Моя відповідь тут - резюме першого налаштування PXE, яке працювало на мене. Ubuntu Netboot Image має працювати з тими ж інструкціями.
netstat -lu | grep tftpпоказує це в режимі прослуховування. Папка / tftpboot дорівнює 777, однак якщо я спробую tftp> get pxelinux.0її від клієнта, я отримую завжди tftp: pxelinux.0: Помилка відхилена . У вас є ідея налагодити її? Заздалегідь спасибі.
/var/lib/tftpboot/755 (за замовчуванням) має бути нормально. Перевірте, чи pxelinux.0є 644 або запустіть, sudo chmod -R +r /var/lib/tftpboot/щоб зробити весь його вміст читабельним.
filename "pxelinux.0";... без коментарів; P ... дякую за вашу відповідь і за цю чудову (і повну) відповідь. Ура