Ganz kurz: PXE
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.
Hinterlasse einen Kommentar
Ich freue mich über jeden Kommentar, es sei denn, er ist blöd.
Deshalb sind die Kommentare auf dieser Seite auch generell moderiert.