Настройка PXE сервера на Linux Ubuntu / Debian

Дата: 05/02/2012
Тема: Linux

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 в БИОСе и устанавливаем его приоритетным устройством загрузки.

 




Это статья "Домашняя страничка Andy"
https://andy.od.ua

URL этой статьи: https://andy.od.ua/news_30.html

Яндекс.Метрика