1. Przygotowanie serwera TFTP jest nieskomplikowane - wystarczy pakiet:
apt-get install tftp-hpa
i następnie konfiguracja w pliku /etc/default/tftp-hpa:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/tftp"
TFTP_ADDRESS="x.y.z.z:69"
TFTP_OPTIONS="--secure -c"
2. Serwer DHCP nie wymaga chyba opisu.
Ważne natomiast jest aby opcje odnośnie każdego hosta który ma mieć możliwość bootowania przez PXE zawierały wpisy:
filename "pxelinux.0"
next-server x.y.z.z # adres serwera tftp
3.
Pakiet do bootowania poprzez PXE musi w naszym przypadku zostać spreparowany w specjalny sposób. Musi on zostać dodatkowo wyposażony w driver kart sieciowej, ponieważ bez niego instalacja nie powiedzie się. W naszym przypadku jest to driver bnx2.
Aby to wykonać należy:
- W pierwszej kolejności pobrać i wgrać do katalogu serwera tftp zestaw "startowy" dla danej dystrybucji debiana. W naszym przypadku - buster (10).
Pobrać:
wget http://deb.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz
Wgrać i rozpakować w katalogu /home/tftp
Przygotować nową kompilację instalki:
cd /home/tftp/debian-installer/amd64/
cp initrd.gz initrd.gz.orig
mkdir -p tmp/initrd; cd tmp/initrd
zcat ../../initrd.gz | cpio -iv
następnie sprawdzić czy mamy w repozytoriach dostęp do pakietów non-free i jeżeli nie - dopisać:
vim /etc/apt/sources.list
deb http://http.us.debian.org/debian stable main contrib non-free
apt-get update
pobrać i rozpakować aktualny pakiet driverów:
apt-get install --download-only firmware-bnx2 firmware-bnx2x
cd /home/tftp/debian-installer/amd64/tmp/initrd
dpkg-deb -x /var/cache/apt/archives/firmware-bnx2_*.deb ../
dpkg-deb -x /var/cache/apt/archives/firmware-bnx2x_*.deb ../
cp -a ../lib/firmware lib/firmware
skompilować initrd z driverami bnx2
cd /home/tftp/debian-installer/amd64/tmp/initrd
find . -print0 | cpio -0 -H newc -ov | gzip -c > ../../initrd.gz
Gotowe.
Można instalować debiana z PXE.