Linux per PXE boot installieren

Das kennt ihr auch, mal wieder kein freier USB Stick um eine Linux Distribution darauf zu packen um einen Rechner zu installieren. Die, die gerade zur Hand sind enthalten Dinge die man nicht löschen will. Images hin und her schaufeln dauert zu lange und macht auch nicht wirklich Spass 🙂

Ich hab hier gerade einen HP Proliant Microserver ohne optisches Laufwerk, was egal ist weil ich ohnehin schon lange keine Medien mehr gekauft habe und meine zwei DVD Brenner wohl auch längst hinüber sind, und absolut keine Lust einen freien USB Stick zu suchen. Also hab ich mich an einen Boot Server gemacht. Mein Homeserver sollte das können, nur die Fritzbox kann es nicht.
Vermutlich haben viele einen Internetrouter den sie nicht modifizieren können oder wollen, also kam Freetz nicht in Frage weil ich ja eine allgemein gültige Lösung wollte.

Also zur Bestandsaufnahme.

  1.  Computer mit Netzwerkboot Funktion
  2.  DHCP Server im Internetrouter
  3.  Linux Homeserver mit OpenSuse 13.1
  4.  Netzwerkkabel 🙂

Auf dem Homeserver habe ich DNSMASQ und TFTP installiert.
Die Konfiguration für DNSMASQ ist für diesen Zweck total simple. Alles vergessen was in /etc/dnsmasq.conf steht und eine neue Datei mit folgendem Inhalt erstellen:

dhcp-range=192.168.178.0,proxy
dhcp-boot=pxelinux.0,192.168.178.25,192.168.178.0
pxe-service=x86PC,”Automatic Network boot”,pxelinux
port=0
enable-tftp
tftp-root=/srv/tftpboot

192.168.178.x ist Standard bei der Fritzbox, ersetzt das bitte mit eurer Netzwerkadresse. 192.168.178.25 ist die IP Nummer meines Homeservers, auch das müsst ihr entsprechend anpassen. Damit der nicht selbst DNS und -Katastrophe- DHCP macht stellt man port=0 ein. Der tftp Server für den PXE boot wird mit enable-tftp einggestellt und dann wird noch angegeben wo denn bitte die Dateien rumliegen, /srv/tftpboot ist der Standard bei OpenSuse. Den tftp Server habe ich mit Yast installiert und alles so gelassen wie die bei Suse sich das ausgedacht haben.

Als nächste brauchte ich dann nur noch die netboot Variante von Debian für die Installation, am einfachsten gleich mit wget in /srv/tftpboot laden und auspacken.

Fertig!

Ach ja, ehe ich es vergesse, die Zeile in /etc/dnsmasq.conf dhcp-boot= ist nicht rein zufällig, pxelinux.0 ist in netboot.tar.gz und damit wird der boot Vorgang auf dem zu installierenden Rechner gestartet.