PXE Boot за 15 минут

Нам понадобится cервер под управлением Linux в моем случае Ubuntu, немного энтузиазма и свободного времени.

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 # Конец субменю

Распаковываем архив. Берем тут SaveFrom.net или тут Внимание в архиве содержится полная и 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: http://syslinux.zytor.com/wiki/index.php/PXELINUX Thinstation: http://ru.wikipedia.org/wiki/Thinstation