Instalacja Debiana za pomocą pxeboot

Krótka notatka o tym jak zainstalować Debiana Wheezy korzystając z PXEboot i serwera TFTP.

Największą trudnością w instalacji Debiana prosto z sieci jest odpowiednie przygotowanie serwera DHCP oraz TFTP.

DHCP i TFTP

Standardowy serwer DHCP, jaki znajdziemy wbudowany w większość tanich ruterów domowych, potrafi przekazać do klienta (naszego komputera) adres IP, maskę podsieci, adres domyślnej bramy (rutera) oraz adres serwera DNS. To niestety za mało, aby zadziałał PXE boot. Klient musi otrzymać jeszcze 2 dodatkowe parametry:

  • nazwę pliku z programem rozruchowym (network bootstrap program, NBP),
  • adres serwera tftp, który powyższy plik udostępnia.

Dobrym narzędziem, które potrafi spełnić rolę obu powyższych serwerów, czyli DHCP i TFTP, jest program TFTPd dostępny pod systemem Windows. Jest to bardzo proste i przyjemne w użyciu narzędzie z prostym interfejsem użytkownika. Pod Linuxem trudno znaleźć równie przyjemny w użyciu odpowiednik, ale dnsmasq wydaje się prostą alternatywą.

Nie będę szczegółowo opisywać konfiguracji. Pamiętaj tylko, aby na pewno poprawnie ustawić wspomniane wyżej parametry i sprawdź w logach, jeżeli „coś nie działa”. TFTPd, w zakładce Log viewer, rejestruje każdą próbę dostępu do serwera. Także te nieudane. Jeżeli nic się tam nie pojawia, to znaczy, że klient w ogóle nie może nawiązać połączenia. W moim przypadku problem był inny, bowiem serwer DHCP zwracał nazwę pliku programu rozruchowego z błędem. Było to wyraźnie pokazane w logach. Warto więc do nich zajrzeć.

Program rozruchowy

Po skonfigurowaniu DHCP i TFTP ściągnij obraz programu rozruchowego i plików pomocniczych. Dla platformy i386 znajdują się one tutaj:

http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-i386/current/images/netboot/netboot.tar.gz

W moim przypadku, po rozpakowaniu musiałem wskazać na katalog debian_installer/i386 jako root folder dla serwera TFTP. Tak więc czasem trzeba pokombinować…

Zestawy dla innych platform znajdziesz tutaj: http://www.debian.org/distrib/netinst#netboot.

Booting

Serwer DHCP i TFTP działają. Root folder serwera TFTP jest przygotowany. Czas na restart komputera. Skonfiguruj go tak, aby próbował uruchomić system z sieci. Po krótkiej chwili pojawi się:

No DEFAULT or UI configuration directive found!
boot:

tutaj należy wpiać:

linux initrd=initrd.gz

oraz ewentualne inne parametry, jakie chcemy przekazać do jądra Linuxa.

Instalacja

W tym momencie komputer ściągnie jądro systemu (linux) oraz obraz ramdysku (initrd.gz) z serwera TFTP i rozpocznie się normalny proces instalacji.

Problem ze stacją dyskietek

Mój stary laptop ma wbudowany kontroler stacji dyskietek, ale nie ma podłączonej żadnej stacji. Powoduje to takowe błędy:

end_request: I/O error, dav fd0, sector 0

Aby rozwiązać ten problem należy zaraz po pokazaniu się instalatora:

  1. Przejść do nowej konsoli (Alt+F2),
  2. usunąć sterownik dyskietek: rmmod floppy
  3. skasować sterownik: rm /lib/modules/…../kernel/drivers/block/floppy.ko

Gotowe 🙂

Bibliografia / Linki:

https://wiki.debian.org/PXEBootInstall