PXE Boot за 15 минут
Здравствуй %username%!
Сегодня я расскажу как за 15 минут можно развернуть сетевую загрузку с удобным меню загрузки и минимумом полезных утилит.

Нам понадобится cервер под управлением Linux в моем случае Ubuntu, немного энтузиазма и свободного времени.
Я надеюсь статья будет вам полезнаи я получу инвайт на Хабр :)
Спасибо sky_lord!
Установим пакеты: tftp tftpd-hpa
Следующим шагом будет настройка корневого каталога TFTP сервера и самого сервера:
открываем файл /etc/inetd.conf, и убеждаемся в наличие следующей строки, а так же, что перед ней не стоит #:
/tftpboot — это папка вашего сервера, там и должны лежать файлы. Создаем ее
Проверяем. У меня в данный момент в папке /tftpboot есть файл /tftpboot/pxelinux.0
Как видно из ответа TFTP клиента мы успешно получили файл размером 16300 байт за 0 секунд.
Установим пакет: dhcp3-server
Теперь нам нужно его настроить для этого откроем фаил /etc/dhcp3/dhcpd.conf удобным нам способом. В моем случае это:
Мой фаил /etc/dhcp3/dhcpd.conf:
Внимание! если на вашем DHCP сервере сконфигурированы Static адреса для клиентов, то DHCP сервер проигнорирует вышеописанную конфигурацию и «отдаст» клиенту только те параметры которые внесены в секцию параметров static клиента.
Подробности: man dhcpd.conf
Перезапускаем dhcp сервер:
Теперь пришло время наполнить каталог tftpboot необходимыми нам инструментами и загрузчиком. Меню будет загружаться при помощи загрузчика syslinux а точнее pxelinux.0
Меню формируется при помощи файла /tftpboot/pxelinux.cfg/default
Сразу оговорюсь — не стоит «копипастить» конфиги так как в них содержатся комментарии и я не знаю как их воспримет syslinux.
Пример файла /tftpboot/pxelinux.cfg/default:
Сегодня я расскажу как за 15 минут можно развернуть сетевую загрузку с удобным меню загрузки и минимумом полезных утилит.

Нам понадобится cервер под управлением Linux в моем случае Ubuntu, немного энтузиазма и свободного времени.
Я надеюсь статья будет вам полезна
Спасибо sky_lord!
TFTP-Сервер
Установим пакеты: tftp tftpd-hpa
sudo apt-get install tftp tftpd-hpaСледующим шагом будет настройка корневого каталога TFTP сервера и самого сервера:
открываем файл /etc/inetd.conf, и убеждаемся в наличие следующей строки, а так же, что перед ней не стоит #:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot/tftpboot — это папка вашего сервера, там и должны лежать файлы. Создаем ее
sudo mkdir /tftpbootПроверяем. У меня в данный момент в папке /tftpboot есть файл /tftpboot/pxelinux.0
tftp 10.22.22.22
tftp> get pxelinux.0
Received 16300 bytes in 0.0 seconds
tftp>Как видно из ответа TFTP клиента мы успешно получили файл размером 16300 байт за 0 секунд.
DHCP-Сервер
Установим пакет: dhcp3-server
sudo apt-get install dhcp3-serverТеперь нам нужно его настроить для этого откроем фаил /etc/dhcp3/dhcpd.conf удобным нам способом. В моем случае это:
nano /etc/dhcp3/dhcpd.confМой фаил /etc/dhcp3/dhcpd.conf:
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
server-name "10.22.22.22";
subnet 10.22.22.0 netmask 255.255.255.0 {
pool {
range 10.22.22.1 10.22.22.21;
next-server 10.22.22.22; # Адресе tftp сервера для загрузки фаила с загрузчиком
filename "pxelinux.0"; # Имя фаила с загрузчиком
}
}Внимание! если на вашем DHCP сервере сконфигурированы Static адреса для клиентов, то DHCP сервер проигнорирует вышеописанную конфигурацию и «отдаст» клиенту только те параметры которые внесены в секцию параметров static клиента.
Подробности: man dhcpd.conf
Перезапускаем dhcp сервер:
sudo /etc/inti.d/dhcp3-server restartНачинка
Теперь пришло время наполнить каталог tftpboot необходимыми нам инструментами и загрузчиком. Меню будет загружаться при помощи загрузчика syslinux а точнее pxelinux.0
Меню формируется при помощи файла /tftpboot/pxelinux.cfg/default
Сразу оговорюсь — не стоит «копипастить» конфиги так как в них содержатся комментарии и я не знаю как их воспримет syslinux.
Пример файла /tftpboot/pxelinux.cfg/default:
default /boot/vesamenu.c32 #Это путь до файла модуля меню при его указании открываются широкие возможности для оформления меню.
#описание цветов элемнтов
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color disabled 0 #ffffffff #00000000
menu color timeout_msg 0 #ffffffff #00000000
menu color timeout 0 #ffffffff #00000000
menu background #1F45A5
# указание заголовка меню
menu title PXE Network Boot Menu
prompt 0 # Индекс выбранного по умолчанию пункта меню начинается с 0.
timeout 1200 #Таймаут по истечении которого автоматически начинается загрузка пункта по умолчанию.
label Boot from first hard disk #Загружаемся с первого диска в системе.
localboot 0x80
label Thinstation #Запуск тонкого клиента для доступа к терминальным серверам
kernel /pxe/thinstation/vmlinuz #полный путь до ядра на сервере
append ramdisk_blocksize=4096 initrd=/pxe/thinstation/initrd root=/dev/ram0 ramdisk_size=524288 splash=silent
vga=791 console=ttyS3 #Указание дополнительных параметров загрузки (параметры можно подсмотреть в родном isolinux.cfg содержащимся в фале образа iso )
menu begin # Начало Субменю
menu title Acronis Products # название субменю
label .. #Возврат выше на уровень
menu exit
label Acronis True Image Echo Enterprise
kernel /pxe/acronis/echoen/kernel
append initrd=/pxe/acronis/echoen/ramdisk /s ramdisk_size=40000 quiet vga=791
label Acronis Disk Director 10
kernel /pxe/acronis/diskdirector/kernel
append initrd=/pxe/acronis/diskdirector/ramdisk /s ramdisk_size=40000 quiet vga=791
menu end # Конец субменю
Распаковываем архив. Берем тут или тут Внимание в архиве содержится полная и 100% рабочая сборка образов и загрузчик pxe (кроме Acronis)
Что касается Acronis, а именно образов для загрузки, их можно извлечь из папки установленного продукта:
Acronis True Image Echo Enterprise Server:
C:\Program Files\Acronis\TrueImageEchoEnterpriseServer\BartPE\Files
Находим 2 файла: kernel.dat и ramdisk.dat копируем их в папку
\tftpboot\pxe\acronis\echoen
и переименовываем в kernel и ramdisk.
Acronis Disk Director:
C:\Program Files\Acronis\Acronis Disk Director
Аналогично пункту выше находим в папке фалы копируем в
\tftpboot\pxe\acronis\diskdirector и переименовываем.
Готово!
Теперь идем на любую машину с PXE ROM включаем его в БИОСе и устанавливаем его приоритетным устройством загрузки

Сохраняем и перезагружаемся.

Спасибо за внимание!
Описание и документация
Syslinux: syslinux.zytor.com/wiki/index.php/PXELINUX
Thinstation: ru.wikipedia.org/wiki/Thinstation
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.