Необходимые элементы для организации загрузки по сети:
pxelinux.0 и конфигурация для него, доступные через TFTPDHCP сервер должен отдавать параметры 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
-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 - часть пакета 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
Пример загрузки 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
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/
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
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/