Synology: PXE-Server einrichten

Artikel_SynologyIm Alltag komme ich meistens ohne optische Datenträger aus und wenn die ein oder andere Kundenmaschine dann doch einmal gesichert oder geprüft werden muss, gibt es ja den bootfähigen USB-Stick, den man immer dabei hat. Oder halt immer genau dann nicht, wenn man ihn mal braucht und gemäß dem Motto „Wer sichert, ist feige“ offline ein Komplettbackup eines Servers anfertigen möchte. So geschehen letztens bei mir – kein Rohling mehr im Hause, bei den anderen im Haushalt befindlichen USB-Sticks grassierte auch die sprichwörtliche Schwindsucht und so entstand die Idee, sich doch einmal näher mit dem immer zur Seite geschobenen Thema „PXE-Boot“ zu beschäftigen und dieses vielleicht mit der heimischen Synology zu kombinieren.

Vorab – die Synology – hier eine DS-215+ – mit einer Beta-Version des DSM (6.0-7135) ist natürlich nur Mittel zum Zweck : Das Ganze geht (reproduzierbar) auch mit einer QNAP oder eben einem Linux-PC, ich beschränke mich im folgenden allerdings auf die Funktionen des Synology-NAS – eben weil es hier im Hause steht. PXE steht für „Preboot Execution Environment“ (PXE), welches als Netzwerkprotokoll das Booten von PCs über das Netzwerk möglich macht. Und genau dieser Technik, die 1999 von Intel in die Spezifikation 2.1 gegossen wurde, ist nicht nur eine Kombination aus TFTP und DHCP, sondern seit Jahren fester Bestandteil unser PCs- bzw. Netzwerkinterfaces.

Anstatt über die lokale Festplatte zu booten, versucht das Gerät via PXE, eine IP-Adresse vom PXE-Server zu bekommen und die Umgebung dahinter – die uns wiederum weitere Möglichkeiten bietet – zu starten. Ob dies nun ein komplettes Betriebssystem oder (wie in unserem Beispiel) diverse ISO-Dateien sind, die gestartet werden, ist egal – für mich ist es an dieser Stelle nur von Belang, meine in ISO-Files verpackten Helferlein von jedem PC im Netz aus starten zu können.

Der erste Schritt ist nun, sich auf das Webinterface der Synology zu begeben, um den TFTP/PXE-Modus zu aktivieren. Dies geschieht über die Systemsteuerung unter „Dateidienste“ – dort findet Ihr dann den Punkt „TFTP / PXE“:

Synology_PXE_TFTP_Einstellungen

Aktiviert also den TFTP-Dienst und gebt den dort geforderten TFTP-Root-Ordner an. An dieser Stelle hatte ich als gemeinsamen Ordner / Share schon einmal die Freigabe „pxe“ erstellt, die dann in Zukunft das Hauptverzeichnis des PXE-Servers darstellen soll:

Synology_PXE_TFTP_Rootordner

Ist das erfolgt, solltet Ihr Euch ein passendes PXE-Bootimage aus dem Internet herunterladen – ich habe sehr gute Erfahrungen mit dem von Paul Maunders gemacht, welches es auf GitHub zum Download gibt. Entpackt das Archiv und legt es in die hier als „pxe“ betitelte Freigabe Eures Synology-Systems ab:

Synology_PXE_TFTP_Inhalt_Rootordner

Unter „images“ befindet sich übrigens ein CentOS-Image, welches Ihr natürlich dort belassen könnt – ich für meinen Teil habe es entfernt, da ich es aktuell nicht brauche. Wer sich aber den Aufbau vom Anfang an noch einmal in Ruhe anschauen möchte, findet hier ein tolles Beispiel out-of-the-box vor. Definiert auf jeden Fall die Datei „pxelinux.0“ als Bootloader:

Synology_PXE_TFTP_Einstellungen_Bootloader

Dann setzt Ihr den Haken bei „DHCP-Dienst auf diesem Server für PXE einrichten“, wählt das Netzwerkinterface aus, auf dem der PXE-Server agieren soll (hier LAN 1) und dann geht es weiter Richtung Konfiguration des DHCP-Bereiches.

Hier können natürlich – je nach Anforderung / Infrastruktur – verschiedene Faktoren eine Rolle spielen. Im vorliegenden Beispiel, was bei mir „Zuhause“ bzw. „Home Office“  heisst, habe ich einen kleinen Adressbereich ausserhalb des von meinem Router verteilten DHCP-Adressbereichs gewählt. Gebt also die Start- und End-IP-Adresse samt Subnetzmaske und DNS-/Gateway ein – in meinem Fall habe ich die Adressen 192.168.16.250 bis .254 als DHCP-Bereich definiert, als Subnetzmaske grosszügig die 255.255.255.0 (typisches Heimnetz eben!) gewählt und als Gateway-/DNS meinen lokalen Router 192.168.16.1 eingetragen. Einmal auf „Übernehmen“ klicken und fertig ist die PXE-Funktionalität auf Eurem NAS.

Wer mag, kann sich die erweiterten Einstellungen des TFTP-Servers noch einmal zu Gemüte führen und unter anderem die Protokollierung aktivieren sowie TFTP-Berechtigungen aktivieren, nur spezielle Clients erlauben oder das Zeitlimit für den TFTP-Server entsprechend ändern. Ich habe hier alles auf Standard belassen, aber das mag sich – je nachdem, in welcher Umgebung Ihr die PXE-Funktionalität nutzen wollt – von User zu User natürlich unterscheiden.

Synology_PXE_TFTP_Einstellungen_Erweitert

Ist das alles erfolgt, sind wir auf Seiten der Synology schon einmal mit der Grundeinrichtung fertig. Wenden wir uns dann einmal der PXE-Konfigurationsdatei „default“ zu, die in der „pxe“-Freigabe im Unterordner „pxelinux.cfg“ residiert. Anbei findet Ihr mein Beispiel, welches eine Acronis-Boot-CD (bitte die jeweiligen Lizenzbedingungen beachten!) sowie eine GParted-Boot-CD im ISO-Format enthält:

Synology_PXE_Konfigurationsdatei

Das Ganze ist an sich relativ selbsterklärend – hier aber einmal kurz die Übersicht der einzelnen Befehle innerhalb der Konfigurationsdatei:

  • „prompt 0“ – Setzen wir den Wert auf 1, erscheint eine Eingabezeile beim Bootvorgang, in der dann das zu bootende Label eingegeben werden kann
  • „timeout 100“ – Nach 10 Sekunden wird standardmässig das im folgenden Parameter ONTIMEOUT angegebene „chainlocal“ (also das Booten von der lokalen Festplatte) durchgeführt – das LABEL hierfür blieb in meiner Umgebung auch unangetastet
  • „MENU TITLE“ – Wer seinem Bootmenü einen sinnvollen Namen geben möchte, darf das an dieser Stelle und mit dieser Option tun 🙂
  • „LABEL“ – Bezeichnung der einzelnen Bootvariante innerhalb der Konfigurationsdatei
  • „menu label“ – Bezeichnung des Menüpunktes innerhalb des Bootmenüs, die der User sichtbar sieht und auswählen kann
  • „KERNEL memdisk“ – Hierüber wird der zu startende Kernel spezifiziert. Dabei ist es möglich, beliebige Kernel zu starten. Dies können auch spezielle binäre Programme wie das bekannte MemTest86 sein. MEMDISK lädt das über initrd angewählte Abbild in eine RAM-Disk mit passender Größe und versucht dann, es zu booten
  • „initrd“ – Hier ist der Pfad – ausgehend vom PXE-Rootverzeichnis – angegeben, in dem die jeweilige ISO-Datei liegt
  • „append iso raw“ – Sagt dem PXE-Bootloader, dass die unter „initrd“ angegebene ISO-Datei geladen werden soll, „raw“ ist optional und historisch bekannt aus Syslinux-Umgebungen < 4.04, die damit auch Images, die via zip oder gzip gepackt wurden, booten konnten

Habt Ihr die Konfigurationsdatei entsprechend angepaßt und Eure Images brav in die entsprechenden Verzeichnisse verschoben, sind eigentlich alle Grundvoraussetzungen erfüllt.

Synology_PXE_TFTP_Inhalt_Images_Ordner

Nun dürft Ihr mit dem Testrechner Eures Vertrauens einmal versuchen, via PXE zu booten. Nach ein wenig Suchen seitens der Netzwerkkarte sollte der TFTP-Server gefunden werden und Euch das zuvor definierte Menu präsentieren:

Übrigens ist nicht jede ISO so einfach startfähig – die von mir benutzten Tools haben einwandfrei funktioniert, ebenso wie eine Windows Server 2008 R2-Installations-DVD oder eine Veeam-Boot-CD. Über die Klinge gesprungen ist in der vorliegenden Konstellation beispielsweise aber die Windows Server 2012 R2-Installations-DVD, wobei da auch vorab einige Daten durch das Netzwerk in das RAM der Maschine flitzen, bis der Datenträger final geladen ist – oder irgendwann das Handtuch wirft. Da sich mein Einsatzzweck des PXE-Servers in den eigenen vier Wänden aber auf Tools und vielleicht einmal die ein oder andere Live-CD/DVD beschränkt, kann ich damit leben – schliesslich kann ich dann frei von Rohlingen (die ich eh nicht mehr nutze/kaufe) und USB-Sticks (die ich anscheinend immer verschludere) mal schnell die ein oder andere Arbeit an Rechnern und Servern durchführen, hauptsächlich halt Backups.

Übrigens sehen die Optionen für TFTP/PXE und DHCP auf dem aktuellen Release Candidate des DSM 6.0 (Build 6.0.7307) ein wenig anders aus (danke für den Hinweis, @Martin) – hier bekommt der DHCP-Server seinen eigenen Menüpunkt in den Systemeinstellungen und mehr Möglichkeiten für einzelne DHCP-Optionen. Das Ganze habe ich aber noch einmal nachvollzogen und am Ende kommt dasselbe dabei heraus, nur sind die einzelnen Einstellungsmöglichkeiten ein wenig verteilt:

Ansonsten ist dies natürlich nur ein kleiner Abriß zum Thema TFTP/PXE – das Ganze ist ein ganz weites Feld und mit dieser Anleitung habe ich mich nur in einen kleinen Teilbereich begeben, der zudem noch auf eine spezielle Hardware abzielt. Dieses Konstrukt ist aber natürlich nicht nur Synology-abhängig und lief auch auf einem älteren QNAP-NAS bzw. einem virtuellen Ubuntu Linux. Schaut Euch den Spaß wie gesagt einmal an, viele hilfreiche Basisinformationen gibt es zu diesem Thema auch auf Syslinux. In diesem Sinne: Viel Spaß!

Gefällt dir der Artikel? Dann teile ihn mit deinen Freunden.

Avatar

Digital Native, der trotzdem gerne das Mittelalter erlebt hätte und chronischer Device-Switcher. Multimediafreak. England-Fan. Freier Autor & Tech Blogger. Hobbyphilosoph. Musik-Enthusiast. Querdenker. Zyniker. Hoffnungsvoller Idealist. Gladbacher Borusse und hauptberuflicher IT-Consultant.

Neueste Beiträge

Mit dem Absenden eines Kommentars stimmst du unserer Datenschutzerklärung und der Speicherung von dir angegebener, personenbezogener Daten zu.

50 Kommentare

  1. Sehr schön mehr von dieser Art Anleitungen..

  2. Das hört sich super interessant an… und PXE wird von jedem modernen PC/Mac/Laptop unterstützt!?

  3. tom: Ja, musst im BIOS / UEFI mal schauen und unter Umständen einschalten.

  4. @tom – Genau, ab ins BIOS und dort nach PXE oder Network Boot suchen und das ggf. aktivieren.

    @Tassi – Danke für die Blumen, hauptsache es war hilfreich 😉 !

  5. Feine Sache, kenne das Thema seit ich 2008 in einer Grundschule als ‚Computerraum-Admin‘ PXE das erste mal live gesehen habe, wir hatten dort einen Schulserver und u.a. booteten die Clients über PXE vom Server.

  6. Dankeschön, aber der Ordner „inetsaug“… auweia… 🙂

  7. @Oli – Da ist nix Böses hinter, hat ne historische Bedeutung aus Novell-Zeiten während meiner Ausbildung, mein Chef damals hat sich damals (lange vor ISO-Zeiten) alles in diese Share gepackt, sinnigerweise nix Illegales. Also Testversionen, Dokumentationen, Servicepacks etc. – und das Ganze hat sich über die Jahre irgendwie nicht verflüchtigt und da ich bei sowas nie wirklich einfallsreich bin, ist diese Ordnerbezeichnung bis heute mitgewandert 🙂 !

  8. Hab das zufällig vor etwa einer Woche gemacht, weil mein PC mit Windows mal wieder nicht wollte und ich jetzt endgültig wieder bei Linux gelandet bin. Und den Live Stick hatte ich natürlich verlegt.
    Praktisch sind da besonders die Ubuntu Netboot versionen, da muss man nur den ordner kopieren, in die cfg eintragen und schon geht alles.
    Wünsche mir auch mehr von solchen sachen.

  9. nett nett. schon produktiv mit pxe 100 rechner administriert. aber an die NAS & zuhause dachte ich eigtl nie …. werde das bei gelegenheit mal ausprobieren

  10. @filesharer123 -> wenn so oft in anwendung dann könntest du mal deine Config pxelinux.cfg posten was für Software du so am laufen hast 🙂

  11. Hi,

    mich würde mal interessieren, wie Du die Veeam Recovery ISO zum booten bekommst, bei mir kommt dann leider immer nur ein Fehler und dann starten Windows direkt. Muss mal versuchen bei dem Fehler Pause zu drücken.

    Gruß

  12. Also es erscheinen zwar Meldungen, wenn man aber schnell genug ist und den „Any“ Key drückt, startet auch das Recovery Media von Veeam 🙂 feine Sache. Acronis läuft auch super (und direkt ohne was drücken zu müssen). Werd das mal ausbauen.

    Leider startet die Windows ISO nicht, angeblich zu wenig Speicher.

    Gruß

  13. Oliver Pifferi says:

    @Maurice – Ja, die Zeitspanne zum Drücken der „Any“-Key-Taste ist bei Windows-basierten Installationsmedien schnell vorbei 🙂 ! Bei Windows-Installationsmedien ist das immer abhängig von der ISO, hatte aber mit Windows 10 und Server 2012 R2 dieselben Probleme, W7 klappte noch. Viel Spaß 🙂 !

  14. Super Anleitung. Hier bekommt man die fertigen ISOs wir eine Windows Installation:
    http://www.synology-wiki.de/index.php/PXE

  15. Sehr schöne Anleitung…

    Wenn bereits ein DHCP-Server vom Router bereitgestellt wird, funktioniert die Kontaktaufnahme nicht. Der PXE-Boot-Agent findet nur eine IP Adresse des Routers und nicht die vom NAS.

    Weiß jemand, welche Einstellung verändert werden muss, damit der PXE-Boot-Agent den richtigen DHCP fndet?

  16. Funktioniert hier parallel zu einer FritzBox ohne Probeleme. Alle normalen Clients bekommen von der FritzBox und der PXE Boot bekommt die Antwort von der NAS.

  17. Ich bekomme nur die LAN2 Schnittstelle angeboten die aber nicht verkabelt ist.
    Muss an der DiskStation DHCP laufen?

  18. Oliver Pifferi says:

    @Dirk – Vielen Dank. Ich habe zuhause (FRITZ!Box 7490 bzw. LANCOM 1781VA) das Problem mit dem DHCP nicht nachvollziehen können – der PXE-Bereich liegt ausserhalb des Bereichs, den der Router bereitstellt und die IP-Verteilung passt immer.

    @Jens – Habe hier bei mir LAN 1 aktiv, LAN 2 hängt auch nix dran und kann beide Interfaces auswählen. Wie sieht denn Deine Netzwerkkonfiguration aus? Vielleicht die Interfaces gebündelt?

    @Thomas – Danke auch Dir für die Ergänzung, clonezilla und MemTest habe ich bei mir jetzt auch noch eingefügt 🙂 !

  19. Hallo Oliver,

    ich nutze bereits die DSM Beta 6 auf meiner Synology, und dort hat sich anscheinend in Bezug auf PXE etwas geändert. So hat man unter Systemsteuerung -> Dateidienste nicht mehr die Funktion TFTP/PXE sondern nur noch TFTP.
    Dafür gibt es unter Systemsteuerung -> DHCP nun den Reiter PXE, welcher aber die Aktivierung des DHCP allgemein fordert.
    Damit wäre dann die beschriebene Funktionalität mit 2 DHCP Servern nicht mehr möglich. Wobei die neue DHCP Funktion unter DSM 6.0 Unmengen an Optionen bietet.

    Hast du eventuell eine Idee wie man die hier beschriebene Art der PXE Integration unter DSM 6 zum Laufen bringen kann?

    Grüße

  20. Oliver Pifferi says:

    @Martin –

    danke für das Feedback. Meine Screenshots sind von DSM 6.0-7135 – ziehe mir gerade einmal die Version 6.0.7307 und versuche das mal nachzuvollziehen, vielleicht passe ich dann noch etwas an – gebe auf jeden Fall Rückmeldung. Dürfte ja nicht unerheblich sein, jetzt wo der RC für DSM 6 in den Startlöchern steht.

    Beste Grüße!

Du willst nichts verpassen?
Neben der E-Mail-Benachrichtigung habt ihr auch die Möglichkeit, den Feed dieses Beitrags zu abonnieren. Wer natürlich alles lesen möchte, der sollte den Hauptfeed abonnieren. Alternativ könnt ihr euch via E-Mail über alle neuen Beiträge hier im Blog informieren lassen. Einfach eure E-Mail-Adresse hier eingeben, dann bekommt ihr 1x täglich morgens eine Zusammenstellung. Mit dem Absenden willigst du unserer Datenschutzerklärung und der Speicherung von dir angegebener, personenbezogener Daten zu.