
Nedávno mi kolega ukazova, jak zprovoznil bootování po firemní sítí realizované na Windows serveru s bootováním do 
WinPE a do instalace driverů. Danou problematiku ladil i v testovacím prostředí ve 
VMware Workstation s linuxovým bootováním pomocí 
syslinux a pxeboot.
Bootování ze sítě jsem chtěl mít doma už dávno. A tak jsem pátral, zda syslinux je i pro muj sklepní kartón PC. Port existuje a tím se odstartovala realizace v domácí síti.
Potřebné nástroje:
dhcpDomácí DHCP server provozuji na FreeBSD s tím, že jeho konfiguraci mám uloženou v LDAP. Využívám experimentální podpory. Na dané téma jsem si již 
něco poznamenával. Nyní jsem jen daný port povýšil na novější verzi.
isc-dhcp41-server-4.1.2,1 The ISC Dynamic Host Configuration Protocol server
cat /var/db/ports/isc-dhcp41-server/options
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for isc-dhcp41-server-4.1.2,1
_OPTIONS_READ=isc-dhcp41-server-4.1.2,1
WITH_DHCP_PARANOIA=true
WITH_DHCP_LDAP=true
WITH_DHCP_LDAP_SSL=true
Pro bootování ze sítě jsem přidal jen v dokumentaci popisované volby. Vše editováno v 
phpLDAPadmin :-)
filename "pxelinux.0";
next-server 192.168.0.1;
tftpTrivial FTP server je součástí systému FreeBSD 8.x, pouštím pomocí inetd.
rc.conf
inetd_enable="YES"              # Run the network daemon dispatcher (YES/NO).
inetd_program="/usr/sbin/inetd" # path to inetd, if you want a different one.
inetd_flags="-wW -C 60"         # Optional flags to inetd
inetd.conf
tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot
syslinuxSyslinux je instalován z portů. Soubory potřebné pro fungování je nutné ručně vykopírovat do kořene tftp serveru a tím je 
/tftpbootcd /usr/ports/sysutils/syslinux/
make install clean
syslinux-4.03       Syslinux for FreeBSD
Konfigurace syslinux a pxeboot je vcelku jednoduchá a je velmi dobře zdokumentována na 
stránkách projektu. Vyladit svou konfiguraci pro jednotlivé boot volby chvilku dá, ale není to nic složitého. Zajimavé jsou volby s podmínkami, kdy se nám dle architektury CPU zavede buť i386 nebo i64 systém. Bohužel nevyzkoušeno.
[root@sklep ~]# cat /tftpboot/pxelinux.cfg/default
#
# Default
#
DEFAULT menu.c32
PROMPT 0
MENU WIDTH 80
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 20
MENU TITLE Main Menu
LABEL local
  MENU LABEL Local ^Boot
  localboot 0
LABEL memtest86+
MENU LABEL ^Memtest86+
  kernel memtest86+.bin.foo
LABEL systemrescuecd
MENU LABEL ^SystemRescueCD x86 1.6.3
  kernel rescuecd
  append initrd=initram.igz dodhcp netboot=http://192.168.0.1:80/sysrcd.dat
LABEL freebsd
MENU LABEL ^FreeBSD 8.1 RELEASE
  kernel memdisk
  append initrd=FreeBSD-8.1-RELEASE-i386-bootonly.img harddisk
LABEL hdt
MENU LABEL ^Hardware Detect Tool
  LINUX memdisk
  INITRD hdt.img
# EOF
U 
SystemRescueCD je popis zavádění systému popsán 
zde. Velké soubory není vhodné servírovat pomocí tftp, proto se používá buť http, což je zrovna můj případ nebo nfs. Pro FreeBSD se musí vytvořit *.img soubor z malého boot.iso obrazu, návod pro starší systém je 
zde. Je třeba vytvořit větší soubor, protože od verze FreeBSD-6.2 se iso sobor pro FreeBSD-8.1 poněkud zvětšil. Návod je jasný a plně funkční. Snad jen na domácím ntb mi boot po nahrání kernelu vytuhne :-(. Ale na obouch stolních PC to funguje vše jak ma.
Dále si budu zprovozňovat dalši systémy, které chci bootovat ze sítě. Např. u Ubuntu je mechanismus verze od verze jiny. Vodítkem je 
tato nebo 
tato dokumentace, která není úplně aktuální.
Pro testování HW je vhodné použít např. 
Memtest86+ nebo 
Hardware Detection Tool (HDT).
Je mi jasné, že bootování ze sítě má vhodné nasazení a použití hlavně ve velkých sítích, ale našlo si cestu i ke mě domu :-)