Ничего сложного, только описывать долго, постараюсь кратко с примерами.
В конфиг DHCP добавляем настройку типа:
#PXE boot for Server
subnet XXX.XXX.6.0 netmask 255.255.255.XXX {
range XXX.XXX.6.20 XXX.XXX.6.254;
option routers XXX.XXX.6.1;
option subnet-mask 255.255.255.XXX;
option domain-name-servers 8.8.8.8;
next-server XXX.XXX.6.10; # TFTP server address
filename "pxelinux.0"; # PXE boot loader filename
}
Ключевое это строки с передачей IP для сервера TFTP и имя файла загрузчика.
Делаем каталог для будущих образов
mkdir -p /usr/tftpboot/images
mkdir /usr/tftpboot/pxelinux.cfg
Устанавливаем tftp-hpa (легко найти для любой системы)
В конфиге ставим флаги:
"-p -s /usr/tftpboot -B 1024 --ipv4"
Скачиваем свежий syslinux (например
https://www.kernel.org/pub/linux/utils/boot/syslin...
Свежие версии всегда можно найти тут
www.syslinux.org/wiki/index.php/The_Syslinux_Project
Разархивируем
tar tar xjf syslinux-4.04.tar.bz2 -C /tmp
копируем в /usr/tftpboot/ следующие файлы:
chain.c32
ldlinux.c32
libcom32.c32
libutil.c32
memdisk
menu.c32
poweroff.c32
pxelinux.0
pxelinux.cfg
reboot.c32
vesamenu.c32
Так же если планируем использовать кириллицу в меню скачаем шрифты, например эти
ftp://ftp.itrc.hp.com/applications/experteventadmi...
Кодировка меню должна быть в CP866 он же Russian(DOS)
сконвертировать из koi8-r (тандартная кирилическая для фри) можно командой.
iconv -f koi8-r -t CP866 defaultKoi8 -o default
создаем папку с образами
mkdir images
В ней подпапки с нужными системами, в каждую подпапку кидаем нужные для загрузки систем файлы, вот пару примеров:
Установка FreeBSD
Скачиваем образы
x32
fetch
mfsbsd.vx.sk/files/images/i386/9/mfsbsd-9.1-RELEAS...
x64
fetch
mfsbsd.vx.sk/files/images/amd64/9/mfsbsd-9.1-RELEA...
Установка Debian 7
x32
fetch
ftp://ftp.debian.org/debian/dists/Debian7.0.0/main...
fetch
ftp://ftp.debian.org/debian/dists/Debian7.0.0/main...
x64
fetch
ftp://ftp.debian.org/debian/dists/Debian7.0.0/main...
fetch
ftp://ftp.debian.org/debian/dists/Debian7.0.0/main...
Установка CentOS
x32
fetch
mirror.mirohost.net/centos/6.4/os/i386/images/pxeb...
fetch
mirror.mirohost.net/centos/6.4/os/i386/images/pxeb...
x64
fetch
mirror.mirohost.net/centos/6.4/os/x86_64/images/px...
fetch
mirror.mirohost.net/centos/6.4/os/x86_64/images/px...
Установка Kali
x32
fetch
repo.kali.org/kali/dists/kali/main/installer-i386/...
fetch
repo.kali.org/kali/dists/kali/main/installer-i386/...
x64
fetch
repo.kali.org/kali/dists/kali/main/installer-amd64...
fetch
repo.kali.org/kali/dists/kali/main/installer-amd64...
Далее правим фаил конфига загрузчика:
/usr/tftpboot/pxelinux.cfg/default
(Ну или с привязкой к конкретным сервакам, тогда не default)
Вот пример, пути править на свои:
ui vesamenu.c32
PROMPT 0
MENU WIDTH 77
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 60
MENU AUTOBOOT Starting Local System in # seconds
MENU PASSPROMPT Enter Password
NOESCAPE 0
ALLOWOPTIONS 0
MENU COLOR SCREEN 44;30 #00FFFFFF #00000000
MENU COLOR BORDER 44;30 #FFFFFFFF #FF000000
MENU COLOR TITLE 1;44;30 #FFFFFFFF #FF000000
MENU COLOR SCROLLBAR 44;30
MENU COLOR HOTKEY 44;30 #FFFFFF00 #FF000000
MENU COLOR UNSEL 44;30 #FFFFFFFF #FF000000
MENU COLOR HOTSEL 1;30 #FFFFFFFF #FF333333
MENU COLOR SEL 7;44;30 #FFFFFF00 #FF333333
MENU COLOR CMDMARK 44;30
MENU COLOR CMDLINE 44;30
MENU COLOR TABMSG 44;30
MENU COLOR DISABLED 44;30
MENU COLOR HELP 44;30
MENU COLOR PWDBORDER 44;30 #FF187CCA #FFFFFFFF
MENU COLOR PWDHEADER 1;44;30 #FF187CCA #FFFFFFFF
MENU COLOR PWDENTRY 5;44;30 #FF187CCA #FFFFFFFF
menu background background.jpg
FONT pxelinux.cfg/Cyr_a8x16.psf
menu title RealWeb PXE boot menu (c)Rico-X
LABEL bootlocal
menu label ^Загрузка с локального диска
kernel chain.c32
append hd0 0
timeout 150
TEXT HELP
Загрузка с первого локального жесткого диска,
произойдет автоматически по ситечении таймера.
ENDTEXT
menu begin
menu title FreeBSD 9.1
label FreeBSD91p2x64
menu label Установить FreeBSD-9.1 x64
kernel memdisk
initrd images/mfsbsd/mfsbsd-9.1-RELEASE-p2-amd64.img raw
TEXT HELP
После запуска параметры входа:
имя root пароль mfsroot
Для начала установки FreeBSD введите bsdinstall
ENDTEXT
label FreeBSD91p2x32
menu label Установить FreeBSD-9.1 x32
kernel memdisk
initrd images/mfsbsd/mfsbsd-9.1-RELEASE-p2-i386.img raw
TEXT HELP
После запуска параметры входа:
имя root пароль mfsroot
Для начала установки FreeBSD введите bsdinstall
ENDTEXT
label < Назад
menu exit
menu end
menu begin
menu title Debian
label Debian_7x64
menu label ^Debian 7 wheezy x86_64 install
kernel images/debian/linux7_64
append priority=low vga=788 initrd=images/debian/initrd7_64.gz --
TEXT HELP
Устанавливает Debian 7 64 в ручном режиме.
ENDTEXT
label Debian_7x32
menu label ^Debian 7 wheezy i386 install
kernel images/debian/linux7_386
append priority=low vga=788 initrd=images/debian/initrd7_386.gz --
TEXT HELP
Устанавливает Debian 7 32 в ручном режиме.
ENDTEXT
label < Назад
menu exit
menu end
menu begin
menu title CentOS
label CentOS_6.4_x86_64
menu label ^CentOS 6.4 x86_64 install
kernel images/centos/amd64/vmlinuz
APPEND initrd=images/centos/amd64/initrd.img method=http://mirror.mirohost.net/centos/6/os/x86_64/ devfs=nomount ksdevice=link ramdisk_size=100000
TEXT HELP
Устанавливает CentOS 6.4 x64 в ручном режиме.
Для установки уиспользуется http://mirror.mirohost.net/centos/6/os/x86_64/
ENDTEXT
label CentOS_6.4_i386
menu label ^CentOS 6.4 i386 install
kernel images/centos/i386/vmlinuz
APPEND initrd=images/centos/i386/initrd.img method=http://mirror.mirohost.net/centos/6/os/i386/ devfs=nomount ksdevice=link ramdisk_size=100000
TEXT HELP
Устанавливает CentOS 6.4 i386 в ручном режиме.
Для установки уиспользуется http://mirror.mirohost.net/centos/6/os/i386/
ENDTEXT
label < Назад
menu exit
menu end
#label Centos6_64
#MENU LABEL CentOS 6 amd64
# KERNEL /memdisk
# APPEND iso
# INITRD images/centos/CentOS-6.4-x86_64-netinstall.iso
LABEL ProxMox
MENU LABEL ProxMox3 install
KERNEL images/proxmox/linux26
# APPEND ramdisk_size=102400 vga=791 video=vesafb:ywrap,mtrr splash=verbose url=http://195.114.6.10/images/proxmox/initrd.iso.img
APPEND ramdisk_size=524288 vga=791 video=vesafb:ywrap,mtrr splash=verbose
INITRD images/proxmox/initrd.iso.img
menu begin
menu title ^Kali ^Linux
label KaliLinux_x64
menu label ^Kali Linux x86_64
kernel images/kalilinux/amd64/linux
append priority=low vga=788 initrd=images/kalilinux/amd64/initrd.gz --
TEXT HELP
Дистрибьютив для пинтестирования,
cодержит различные инструменты для проведения тестов.
Русская документация http://ru.docs.kali.org/
ENDTEXT
label KaliLinux_x32
menu label ^Kali Linux i386
kernel images/kalilinux/i386/linux
append priority=low vga=788 initrd=images/kalilinux/i386/initrd.gz --
TEXT HELP
Дистрибьютив для пинтестирования,
cодержит различные инструменты для проведения тестов.
Pусская документация http://ru.docs.kali.org/
ENDTEXT
label < Назад
menu exit
menu end
LABEL Pmagic
LINUX images/pmagic/bzImage
append noapic initrd=images/pmagic/initrd.img root=/dev/ram0 init=/linuxrc ramdisk_size=100000
TEXT HELP
LiveCD дистрибьютив для восстановления и проверки систем.
ENDTEXT
label reboot
menu label Reboot
kernel reboot.c32
TEXT HELP
Перезагрузить компьютер
ENDTEXT
LABEL poweroff
MENU LABEL Power off
KERNEL poweroff.c32
TEXT HELP
Выключить компьютер
ENDTEXT
Для загрузки windows нужно использовать специально собранный образ WinPE, который будет монтировать нужные образы с сетевой шары, но описание сборки вменяемого образа займет еще страниц 5 и мне лень уже печатать.