PXE / Netboot Setup

Необходимые элементы для организации загрузки по сети:

Конфигурация DHCP

DHCP сервер должен отдавать параметры next-server и filename.

subnet 192.168.2.0 netmask 255.255.255.0 {
	range 192.168.2.2 192.168.2.254;
	option routers 192.168.2.1;
	next-server 192.168.2.1;
	filename "pxelinux.0";
}

Для работы на мосте:

brctl setfd br0 0

Конфигурация TFTP

-N tftp
-A INPUT -j tftp -p udp --dport 69
-A tftp -j ACCEPT -s 192.168.2.0/24
chmod -R o+r /var/tftp

PXELINUX

pxelinux - часть пакета syslinux. Корневая директория TFTP должна содержать pxelinux.0 и папку pxelinux.cfg с конфигурациями.

/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/pxelinux.cfg/C000025B
...
/pxelinux.cfg/default
  

Пример конфигурации pxelinux:

LABEL memtest
KERNEL sysres/memdisk
APPEND initrd=memdisk/memtest.img floppy

LABEL local
KERNEL chain.c32
APPEND hd0 0

Примеры модулей Syslinux

Пример загрузки ISO через memdisk:

label pm
kernel memdisk
initrd http://192.168.2.1/boot/pmagic/pmagic-5.5.iso
append iso vmalloc=256M

Пример загрузки ядра с веб-сервера:

label tiny
kernel http://192.168.2.1/boot/tinycore/bzImage
initrd http://192.168.2.1/boot/tinycore/tinycore.gz

Fedora Net Install

label f17_install
kernel fedora/vmlinuz
append initrd=fedora/initrd.img inst.repo=http://192.168.2.1/fedora
WEBSERV_DIR="/var/www/localhost/htdocs"
cp /mnt/fedora/images/pxeboot/* /var/tftp/fedora/
cp -r /mnt/fedora $WEBSERV_DIR/
  

CentOS Net Install

label centos62
kernel centos62/vmlinuz
append initrd=centos62/initrd.img ip=dhcp noipv6 ksdevice=eth0 method=http://mirrors.sgu.ru/m/centos/6.2/os/x86_64/ lang=en_US keymap=us

openSUSE Net Install

label suse_install
kernel suse/linux
append initrd=suse/initrd install=http://192.168.2.1/suse
WEBSERV_DIR="/var/www/localhost/htdocs"
mkdir /var/tftp/suse
cd /var/tftp/suse
wget http://download.opensuse.org/distribution/12.1/repo/oss/boot/$(arch)/loader/linux 
wget http://download.opensuse.org/distribution/12.1/repo/oss/boot/$(arch)/loader/initrd
cp -r /mnt/suse $WEBSERV_DIR/