
filename "pxelinux.0"; ## Angabe relativ zu /tftpboot! ... host node01 { hardware ethernet 00:30:48:67:F8:BD; fixed-address 192.168.4.1; }
Und noch eine Notiz aus der Entwurfs-Sammlung — ein wenig kurz gefasst, aber dennoch informativ.
Der Bootvogang startet per PXE (Preboot Execution Environment); der Node sendet einen Broadcast, der von master01 beantwortet wird. In diesem Schritt weist master01 dem Node eine feste IP-Adresse anhand seiner MAC-Adresse zu und liefert ihm zugleich die Information, was er booten soll — nämlich das Binary pxelinux.0, das in /tftpboot herumliegt.
filename "pxelinux.0"; ## Angabe relativ zu /tftpboot! ... host node01 { hardware ethernet 00:30:48:67:F8:BD; fixed-address 192.168.4.1; }
Das Binary pxelinux.0 erfordert sich seine Konfiguration in /tftpboot/pxelinux.cfg, hier finden sich zwei Files; eines ist das Default-File, das immer dann Anwendung findet, wenn sonst keines funktioniert, das andere File, C0A804, bezeichnet eine IP-Range — in hexadezimal :D (C0=192, A8=168, 04=4). Da dem Host per DHCP eine IP aus dem Subnetz 192.168.4.0/24 zugewiesen wird, wird dieses File angetastet und ausgewertet.
$ ls -la drwxr-xr-x 2 root root 4096 Sep 5 16:40 . drwxr-xr-x 6 root root 4096 Sep 5 16:15 .. -rw-r--r-- 1 root root 194 Sep 5 16:16 C0A804 -rw-r--r-- 1 root root 194 Sep 5 16:16 default
Der Host mit der MAC-Adresse 00:30:48:67:F8:BD wird also einen Broadcast schicken, die IP 192.168.4.1 erhalten und versuchen, die Datei /tftpboot/pxelinux.0 zu booten. Sofern dies gelingt, bewegt er sich nach /tftpboot/pxelinux.cfg und schnappt sich die Datei C0A804, die in etwa so aussieht:
## Konfig: C0A804 default node prompt 1 timeout 10 label node kernel vmlinuz-2.6.18-53.1.13.el5 append init=/init rw root=/dev/sda1 initrd=initrd-2.6.18-53.1.13.el5.img label local LOCALBOOT 0
Wir sehen: als nächstes wird er das File initrd-2.6.18-53.1.13.el5.img anpacken. Und ab hier ist es dann ein Boot-Vorgang, wie man ihn halt so kennt.