Ganz kurz: PXE

Diesen Beitrag schrieb ich 13 Jahre und 11 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 1 Minute

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.

Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: 1148x 456px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „Ganz kurz: PXE“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.