Kurz-Howto: Debian via PXE installieren

(2007-08-21)

Worum geht's?

Wir werden ein System via PXE installieren. Das ist nett, wenn man zum Beispiel ein System hat, das nicht von CD oder sonstigen Medien booten kann, wie es mir mit einem Fujitsu Siemens Laptop passiert ist...

Wir brauchen:

  • Ein Debian-system, mit dem eine Netzwerkverbindung hergestellt werden kann
  • Die Debian-woody Installations-CD (in meinem Fall hat's mit woody 3.0 r2 funktioniert)

Pakete installieren

Wir brauchen einen DHCP-Server, da PXE sich beim Boot via DHCP eine Adresse holen möchte, sowie einen TFTP-Server, über den PXE die Dateien herunterlädt (pxeconfig und bootimages) und syslinux, hier ist die Datei pxelinux.0 dabei.

apt-get install dhcp tftpd-hpa syslinux

DHCP-Server

Zuerst konfigurieren wir den DHCP-Server, da beim Installieren eine Meldung angezeigt wird, dass er nicht gestartet werden konnte...

Dazu öffnen wir die Datei /etc/dhcpd.conf mit einem Texteditor und passen den Inhalt an, sodass er am Ende so aussieht:

option domain-name "local";
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;

Gilt für mein 192.168.1.-er Netz, bei anderen Netzen entsprechend anpassen

subnet 192.168.1.0 netmask 255.255.255.0 { # Wir vergeben IPs von 192.168.1.90 bis 192.168.1.100 range 192.168.1.90 192.168.1.100; option broadcast-address 192.168.1.1; option routers 192.168.1.1; }

host pxeinstall { # Hier muss natürlich die MAC-Adresse angepasst werden. hardware ethernet 0:0:E2:A0:36:D8; filename "pxelinux.0"; }

Der DHCP-Server wird nun noch via /etc/init.d/dhcp start gestartet.

TFTP-Server

Der TFTP-Server muss nicht speziell konfiguriert werden, er legt die Dateien standardmäßig in /var/lib/tftpboot ab.

Zum Starten muss jedoch der inetd neugestartet werden: killall -HUP inetd && inetd

Bootimages

Wir wechseln zuerst via cd /var/lib/tftpboot in das Verzeichnis für den TFTP-Server.

Die notwendigen Bootimages gibt's auf jedem Debian mirror:

wget http://mirrors.kernel.org/debian/dists/woody/main/disks-i386/current/images-1.44/root.bin
wget http://http.us.debian.org/debian/dists/woody/main/disks-i386/current/bf2.4/tftpboot.img

Außerdem brauchen wir die Datei pxelinux.0 von syslinux: cp /usr/lib/syslinux/pxelinux.0 .

PXELinux konfigurieren

Wir erstellen uns erst via mkdir pxelinux.cfg das Verzeichnis pxelinux.cfg, wechseln mit cd pxelinux.cfg hinein und editieren die Datei default, sodass sie so aussieht:

PROMPT 1
LABEL pxe
KERNEL tftpboot.img
APPEND initrd=root.bin flavor=bf2.4
IPAPPEND 1

Booten

OK, auf Serverseite war's das. Nun müsst ihr nur noch im BIOS umstellen, dass der Rechner via PXE booten soll und ein wenig Geduld haben. Nach dem Empfang des DHCP-Lease fordert euch der Rechner auf, einzugeben, was ihr booten wollt. Tippt hier „pxe” ein und betet :-).