PXE (англ. Preboot Execution Environment, произносится пикси) — среда для загрузки компьютеров с помощью сетевой карты без использования жёстких дисков, компакт-дисков и других устройств, применяемых при загрузке операционной системы. Для организации загрузки системы в PXE используются протоколы IP, UDP, DHCP и TFTP. PXE-код, прописанный в сетевой карте, получает загрузчик из сети, после чего передаёт ему управление.
Для этого понадобится DHCP – сервер и TFTP – сервер и PXELINUX - загрузчик.
DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к так называемому серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок.
TFTP (англ. Trivial File Transfer Protocol — простой протокол передачи файлов) используется главным образом для первоначальной загрузки бездисковых рабочих станций. TFTP, в отличие от FTP, не содержит возможностей аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе UDP.
PXELINUX является производным от SYSLINUX, предназначенным для загрузки Linux с сетевого сервера.
Установка DHCP и его настройка:
sudo apt-get install dhcp3-server
пример настройки сетевых интерфейсов:
# This file describes the network interfaces available on your system # and ho to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.1.1 broadcast 192.168.1.255 netmask 255.255.255.0
перезапуск сетевых интерфейсов
sudo /etc/init.d/networking restart
скажем серверу DHCP выдавать айпи только для нашей локальной сети, для этого откроем файл /etc/default/dhcp3-server
# Defaults for dhcp initscript # sourced by /etc/init.d/dhcp # installed at /etc/default/dhcp3-server by the maintainer scripts # # This is a POSIX shell fragment # # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". INTERFACES=""
И укажем интерфейс нашей локальной сети, у меня это ”eth1” у вас может быть одна сетевая карта тогда будет просто ”eth0”
INTERFACES="eth1"
Дальше откроем файл настроек самого DHCP – сервера /etc/dhcp3/dhcpd.conf
В конец файла вставим нашу конфигурацию
subnet 192.168.1.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.1.2 192.168.1.200; option broadcast-address 192.168.1.255; option domain-name-servers 192.168.1.1; option routers 192.168.1.1; next-server 192.168.1.1; filename "pxelinux.0"; }
Сохраним файл и перезагрузим dhcp - сервер
sudo /etc/init.d/dhcp3-server restart
если все в порядке то увидим сообщение наподобие этого:
* Starting DHCP server dhcpd3 [ OK ]
Установка TFTP – сервера
sudo apt-get install tftp tftpd-hpa
Создим директорию и дадим права доступа 777 и владельца nobody
sudo mkdir -m 777 /srv/tftp sudo chown nobody /srv/tftp
Настроим файл /etc/default/tftpd-hpa:
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"
Установка PXELINUX
sudo apt-get install syslinux cd /usr/lib/syslinux/ cp vesamenu.32 /srv/tftp cp memdisk /srv/tftp cp pxelinux.0 /srv/tftp cd /srv/tftp mkdir pxelinux.cfg cd pxelinux.cfg touch default nano default
Пример файла /pxelinux.cfg/default:
DEFAULT vesamenu.c32 #Это путь к файла модуля меню при его указании появляются широкие возможности для оформления меню. PROMPT 0 # Индекс выбранного по умолчанию пункта меню начинается с 0. MENU TITLE Linux Boot Menu # указание заголовка меню #описание цветов элемнтов MENU BACKGROUND #1F45A5 MENU COLOR TITLE 1 #ffffff #000000 std MENU COLOR SEL 0 #ffffff #444444 std MENU COLOR TABMSG 0 #999933 #000000 std MENU COLOR UNSEL 0 #aaaaaa TIMEOUT 50 #Таймаут по истечении которого автоматически начинается загрузка пункта по умолчанию. LABEL thin MENU LABEL Thinstation Linux KERNEL vmlinuz APPEND append ramdisk_blocksize=4096 initrd=initrd root=/dev/ram0 ramdisk_size=524288 console=ttyS3 splash=silent vga=791 MENU SEPARATOR LABEL timage MENU LABEL Acronis True images KERNEL memdisk APPEND initrd=timage.wbt LABEL vc MENU LABEL DOS Volcow Commander KERNEL memdisk APPEND initrd=vc.ima LABEL memtest86+ MENU LABEL Memory Test KERNEL memdisk APPEND initrd=memtest.img LABEL hddt MENU LABEL HDD Util Victoria KERNEL memdisk APPEND initrd=victoria.ima
Не забудьте удалить комментарии из файла /pxelinux.cfg/default.
Загрузка компьютера по сети
Теперь включаем (все современные компьютера имеют данную опцию) PXE ROM в БИОСе и устанавливаем его приоритетным устройством загрузки.