Відповіді:
Дивіться Вікіпедію: 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 ... дякую за вашу відповідь і за цю чудову (і повну) відповідь. Ура