Po pierwsze trzeba mieć serwer DHCP (ten z pakietu dhcp,
zresztą chyba nie mamy innego w PLD) i TFTP. Uwaga serwer z paczki
tftpd nie chciał działać z syslinuxem, więc należy
zainstalować tftpd-hpa. Oprócz tego trzeba mieć bootloadera
umiejącego ładować system przez sieć. W moim przypadku był to
syslinux. No i potrzebna jest płytka RescueCD, z obrazem systemu do
uruchomienia. Trzeba użyć oficjalnego obrazu (datowanego
2004-07-18) dostępnego ze strony RescueCD. Nowsza wersja
(beta z 2005-06-19) się co prawda bootuje, ale nie można się
do niej zalogować.
Montujemy płytkę RescueCD i kopiujemy z niej pliki vmlinuz
i rescue.sqf
do
/var/lib/tftp
. Dla pełniejszej funkcjonalności można tez skopiować
boot.msg
, help.msg
i memtest
. Część plików jest w katalogu
głównym płytki, część w boot/isolinux
. Z katalogu /usr/lib/syslinux
kopiujemy plik pxelinux.0
(część syslinux służąca do bootowania przez sieć), też do
/var/lib/tftp
. Pozostaje przygotować plik konfiguracyjny dla pxelinux. W tym celu
tworzymy katalog /var/lib/tftp/pxelinux.cfg
, a w nim plik default
(nazwą
pliku może też być np. adres MAC maszyny którą będziemy bootować, szczegóły w dokumentacji
syslinuxa). Plik ten tworzony jest na podstawie isolinux.cfg
z RescueCD. U mnie wygląda on tak (i to powinno działać z tą wersją RescueCD u każdego):
serial 0 prompt 1 timeout 99 default pxe label pxe kernel vmlinuz append initrd=/rescue.sqf init=/linuxrc root=/dev/ram0 ramdisk_size=54000 console=tty0 console=ttyS0,9600n81 ipappend 1 label mem kernel memtest
Ta konfiguracja jest oczywiście przygotowana do użycia z konsolą szeregową. Jak ktoś chce standardową konsolę VGA,
to powinien wywalić
i serial 0
.console=tty0 console=ttyS0,9600n81
Gdy już mamy przygotowane pliki dla startowanej maszyny, musimy je jej wskazać. Robi się to przy pomocy
serwera DHCP, jednocześnie przydzielając adres IP. W moim przypadku załatwiał to poniższy wpis w /etc/dhcpd.conf
,
w odpowiedniej deklaracji podsieci:
host pxeinstall { hardware ethernet 00:40:63:c3:99:a9; fixed-address 10.253.0.99; filename "pxelinux.0"; }
Adresy MAC i IP należy oczywiście dostosować do swoich potrzeb. Nazwa pliku jest względna do
katalogu /var/lib/ftp
i może być właściwie dowolna. Większość wspomnianych wyżej
ścieżek w /var/lib/tftp
jest konfigurowalna. Wyjątkiem jest katalog
pxelinux.cfg
.
To właściwie tyle konfiguracji. Należy jeszcze się upewnić, że serwery TFTP i DHCP działają
i używają właściwej konfiguracji (dhcpd
trzeba zrestartować), włączyć na maszynie do
wystartowania bootowanie przez PXE i uruchomić ją. Po chwili powinna dostać adres IP, pobrać parę
plików po TFTP i uruchomić system.
Świetnie! Coś takiego będzie mi za kilka dni bardzo potrzebne. Wielkie dzięki za opis 🙂
PolubieniePolubienie
Hmm, rozumiem że rootfs to rescuecd wgrane do ramu a nie jakiś plik podmontowywany z innej maszyny?
PolubieniePolubienie
DeeJay1: tak, podobno 128MB do tego wystarczy (ja mam 256).
PolubieniePolubienie
128MB wystarcza, testowałem.
PolubieniePolubienie
Drobna poprawka – w aktualnym Rescue CD nie ma rescue.sqf ale jest resque.cpio i ten plik należy skopiować by działało
PolubieniePolubienie
Please can I have the default ssh remote login username & passwords for rescue.iso? I need to rescue a headless machine that has PXE only.
many many thanks.
Kent.
PolubieniePolubienie
Sorry if prefered please mail username & password to:
garlum at hotmail.com
thanks!
PolubieniePolubienie
garlumh at hotmail.com
sorry about that.
PolubieniePolubienie
Don't worry I go the password.
many thanks.
PolubieniePolubienie