Ничего сложного, только описывать долго, постараюсь кратко с примерами.
В конфиг 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 и мне лень уже печатать.