Network Boot mit NAS!

  • Hiho!

    Den Network Boot wie unter https://www.raspberrypi.org/documentation/…net_tutorial.md beschrieben habe ich hinbekommen.

    Also Raspi1 als PXE Server und Raspi3 bootet dann davon. Das klappt einwandfrei.

    Aber das ist nicht das was ich will. ::)

    Mein Ziel wäre die Synology NAS als PXE Server für den Raspi. Das klappt aber leider nicht. Ich habe den TFTP Server eingerichtet und die Dateie genauso unter /nfs/client1 gelegt. Doch scheinbar klappt das nicht. Der TFTP Server kann aber angesprochen werden. Nur der Raspi lädt das Linux nicht von dort. Die cmdline.txt Datei habe ich auch mit der IP der NAS angepasst.

    Was braucht ihr um mir helfen zu können?

    Edit: Lösung gefunden, siehe nächster Beitrag

    Einmal editiert, zuletzt von baeckerman83 (28. September 2016 um 16:54)

  • Schade das mir niemand helfen konnte. Aber vielleicht haben ja noch andere das Problem.

    Ich habe für mich eine Lösung gefunden.

    Erst einmal habe ich alle Schritte von https://www.raspberrypi.org/documentation/…net_tutorial.md durch geführt und getestet, dass der Raspi 3 vom Netzwerk bootet.

    Als dies dann funktionierte habe ich auf meiner NAS einen neuen Ordner angelegt und diesen per NFS im Netzwerk frei gegeben und in den Server gemountet per NFS. (sollten hier zu Fragen sein kann ich dazu auch was schreiben)

    Anschließend dann folgede Schritte wiederholt:

    Code
    sudo rsync -xa --progress --exclude=/nfs --exclude=/PFADZUMNFS / /PFADZUMNFS/client2
    cd /PFADZUMNFS/client2
    sudo mount --bind /dev dev
    sudo mount --bind /sys sys
    sudo mount --bind /proc proc
    sudo chroot .
    rm /etc/ssh/ssh_host_*
    dpkg-reconfigure openssh-server

    Dann hier mit vi /etc/network/interfaces wieder das DHCP eingeschaltet.


    Code
    sudo systemctl enable dhcpcd
    sudo systemctl disable networking
    exit
    sudo umount dev
    sudo umount sys
    sudo umount proc

    Anschließend in /tftpboot/cmdline.txt den Pfad angepasst:
    dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=NASIP:/PFADAUFNAS/nfs/client2 rw ip=dhcp rootwait elevator=deadline

    Wobei bei mir das dann so aussieht: nfsroot=10.0.3.10:/volume1/Tausch/tftp_raspi1/nfs/client2 damit ihr euch das etwas vorstellen könnt.

    Anschließend den Raspi3 einfach neu gebootet. Dann bekam ich die IP Adresse angezeigt die der Raspi per DHCP bekommt. Diese habe ich dann in der NAS für das NFS Share frei gegeben. Beim nächsten Booten des Raspi3 ging es dann in das Notfallsystem. Hier habe ich dann:

    Code
    vi /etc/fstab zum editieren auf gerufen und die die Zeile:
    /dev/mmcblk0p1  /boot           vfat    defaults          0       2
    aus kommentiert zu
    #/dev/mmcblk0p1  /boot           vfat    defaults          0       2

    Nach einem erneuten Boot hat dann alles geklappt und jetzt liegt mein Raspi auf der NAS.

    attachment.php?aid=11256

  • Hallo,

    danke dass Du hier Deine Erfahrungen teilst. Ich habe den ersten Teil erfolgreich durchgeführt, jetzt möchte jedoch das bootverzeichnis auch auf das NAS legen.

    Du hast dazu geschrieben, dass Du auf dem NAS einen neuen Ordner angelegt und diesen per NFS im Netzwerk frei gegeben und in den Server gemountet per NFS hast. (sollten hier zu Fragen sein kann ich dazu auch was schreiben).

    Ja bitte, denn diese Schritte kann ich nicht nachvollziehen.

    Zum Schluss noch eine weitere Frage: wenn ich nun mehrere Raspi's vom NAS booten möchte, an welchen Stellen der Installation muss das angepasst werden?

    Danke im voraus,
    Wolfgang

  • Interessante Sache!
    Ich frage mich gerade, ob du das NAS Device als alleinigen DHCP Server laufen lässt?

    Bei mir läuft als DHCP Server einer der Internet-Router und 2 DHCP Server in gleichen Netzwerk beißen sich im Allgemeinen.

    Oder nimmst du für den Netzwerkboot ein anderes Netzwerk?
    Ich werde mir jetzt mal in Ruhe diese verlinkte Anleitung durchlesen... mal sehen, vielleicht beantwortet sich die Frage ja von selbst...

  • Danke für die Rückmeldung!

    Ich schlüssel mein Setup nochmal auf:

    Router + DHCP Server: FritzBox
    Raspberry Pi: 3 Model B - RASPBIAN JESSIE LITE (inkl. Firmware Upgrade auf NEXT BRANCH)
    NAS: QNAP mit QTS 4.3.2 + TFTP Server aktiviert + NFS Verzeichnis erstellt

    Ich nehme an, dass ich die genannten Pakete auch auf der NAS installieren könnte (dnsmasq), allerdings würde ich das gerne vermeiden, wenn es ginge.

    Einmal editiert, zuletzt von arneboeses (9. Januar 2017 um 08:51)

  • Hallo zusammen,

    auch ich habe den PXE-Boot endlich, nach tagelangem Probieren, hin bekommen.

    Mich würde mal interessieren, wie ich 2 Clients PXE-Boote?

    Meine Konfiguration unter /etc/dnsmasq.conf sagt:

    Code
    port=0
    dhcp-range=192.168.179.240, 192.168.179.250, 255.255.255.0, 192.168.179.255, 1h
    log-dhcp
    enable-tftp
    tftp-root=/tftpboot
    pxe-service=0,"Raspberry Pi Boot"

    Wenn ich jetzt einen zweiten Rasberry Pi 3 über PXE starte, dann lädt dieser ja ebenfalls die Dateien aus /tftpboot.

    Kann man da irgendwie differenzieren?

  • Hallo,

    um mehrere Pi per Netzwerk zu starten, konnte ich 2 verschiedene Ansätze erfolgreich testen:

    1. Alle booten des gleichen Kernel, haben aber unterschiedliche Root-Verzeichnisse

    dazu muss nur die Datei "cmdline.txt" geändert werden. An den Eintrag "nfsroot=" hängt man einfach "%s" - das steht für den Hostnamen, den der Pi vom DHCP-Server bekommt. Natürlich muss dann das entsprechende Verzeichnis angelegt und befüllt werden.

    Code
    dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=1.2.3.4:/nfs/%s rw ip=dhcp rootwait elevator=deadline

    2. Jeder Pi bekommt vom tftp-Server ein eigenes Boot-Verzeichnis

    dazu wird in der Datei "/etc/dnsmasq.conf" zusätzlich die Option "tftp-unique-root" eingetragen. Diese bewirkt, dass im Ordner, der unter "tftp-root=" eingetragen ist, ein Unterordner mit der IP-Adresse des Clients gesucht wird. Dieser muss dann die Dateien des boot-Ordners enthalten.

    ergänztes Beispiel von jannes79:

    Code
    port=0
    dhcp-range=192.168.179.240, 192.168.179.250, 255.255.255.0, 192.168.179.255, 1h
    log-dhcp
    enable-tftp
    tftp-root=/tftpboot
    tftp-unique-root
    pxe-service=0,"Raspberry Pi Boot"

    ...vielleicht hilft das jemandem weiter. Hab selbst lange nach der Möglichkeit gesucht, mehrere Pi von einem Server zu starten. Damit klappt es in meinem Fall recht gut. Es setzt natürlich voraus, dass der DHCP-Server den Hostnamen liefert (1.) und eine Feste IP-Adresse (2.). Das sollte aber auch in Heimnetzen kein Problem sein.

    Einmal editiert, zuletzt von be.re (13. März 2017 um 12:38)


  • ....
    Router + DHCP Server: FritzBox
    Raspberry Pi: 3 Model B - RASPBIAN JESSIE LITE (inkl. Firmware Upgrade auf NEXT BRANCH)
    NAS: QNAP mit QTS 4.3.2 + TFTP Server aktiviert + NFS Verzeichnis erstellt

    Ich nehme an, dass ich die genannten Pakete auch auf der NAS installieren könnte (dnsmasq), allerdings würde ich das gerne vermeiden, wenn es ginge.

    Diese Konfig habe ich auch, allerdings greife ich nicht mit dem Pi auf das NAS zu, da im Moment nicht nötig bei mir.

    Ich nutze eine Synology DS215j und habe ebenfalls als DHCP Server meine Fritzbox laufen.

    Da PXE ja einen "anderen" DHCP Server braucht, als die FritzBox bieten kann (die unterstützt kein PXE), habe ich auf meinem NAS eben das zitierte dnsmasq als "App" (Paket) laufen, funktioniert einwandfrei und ich wüsste nicht, warum man das vermeiden sollte.

    Bei mir läuft das NAS auch nicht 24h, womit dieses als DHCP Server deshalb auch nicht in Frage kommt.

    Das Ganze hat mich jetzt aber auch wieder angeheizt, ich muss mal darüber nachdenken.

    Den Pi hatte ich vor langer Zeit auch selbst mal als PXE Server betrieben, ebenfalls mit dnsmasq, allerdings wurde der aus Geschwindigkeitsgründen nach dem Erwerb der Synology DiskStation abgelöst.

    Nachtrag:
    Da war sie wieder, die feste IP Adresse .... ;):D

    Wer sich diesen Krampf sparen möchte, setzt die IP einfach im Router fest (immer die selbe IP vergeben).
    Man kann diese pseudofeste IP auch selbst aus dem DHCP Bereich des Routers vorgeben, sofern sie noch frei ist.
    Vorteil: ich muss nix an den Pis ändern, sondern nur im Router einen Haken setzen je Pi.
    Aber das nur am Rande.

    ;) Gruß Outi :D
    Pis: 2x Pi B (Rente) / 1x Pi B+ (Rente) / 1x Pi 2 B (Rente) / 2x Pi 3 B (RaspberryMatic / Repetier Server) / 2x Pi Zero 1.2 (B. Lite) / 2x Pi Zero 1.3 (B. Lite) / 2x Pi Zero W 1.1 (B. Lite) / 1x Pi Zero 2 (mal so, mal so) / 1x Pi 3 B+ (Tests) / 1x Pi 4 B 4GB (BW Lite (Webserver)) / Pi 400 (BW) / 1x Pi 5 (BW) / 2x Pi Pico / 2x Pi Pico W
    Platinen: Sense HAT / HM-MOD-RPI-PCB / RPI-RF-MOD / PiFi DAC+ V2.0 / TV HAT / Pi 5 Kühler HAT
    Kameras: orig. Raspberry Pi Camera Module V1 & V3 / PS3 Eye

    Einmal editiert, zuletzt von Outlaw (15. März 2017 um 13:28)

  • Hi zusammen,
    versuche mich grade auch an diesem Thema da ich mir inzwischen schon die 6te microSD zerschossen habe...

    Mit Netzwerken bin ich recht gut vertraut, jedoch verwirren mich die zu findenden (bestimmt gut gemeinten) Tutorials.
    Eine Stichpunktartige auflistung der Notwendigen Schritte mit kurzer Erklärung wieso welcher schritt getätigt werden muss würde mich viiiieel weiter bringen als diese "Copy&Paste-Tutorials".

    Wäre einer der es schon geschaft hat seinen RasPi3 von einer SynoNAS zu booten so lieb mir eine Auflistung zu erstellen, grob reicht echt völlig!

  • @Dimmi52

    Ich schließe mich an und schiebe das mal wieder hoch!

    Wenn das nicht erwünscht ist mache ich einen neuen Fred auf, müsst nur bescheid sagen!


    Ich habe eine FritzBox als DHCP und möchte eine Synology DS115 als PXE Server verwenden.

    Auf dem Pi habe ich gemacht:

    echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

    Dann neu gebootet und:

    vcgencmd otp_dump | grep 17:

    Eingegeben, das gibt dann 3020000a aus.

    Als letztes habe ich

    sudo nano /boot/config.txt

    eingegeben und die Zeile program_usb_boot_mode=1 gelöscht.

    In der NAS habe ich einen gemeinsamen Ordner erstellt, pxe genannt und ein Image von meinem Pi rein gelegt (Komplette SD-Karte).

    Dann den DHCP Dienst aktiviert, Adressbereiche vergeben und unter DHCP-Clients die MAC von meinem Pi eingetragen.

    Als letztes habe ich im Reiter PXE ein Häkchen gemacht, Lokaler TFTP-Server ausgewählt und bei Bootloader mein Image angegeben (Komplette SD-Karte).

    Wenn ich die SD-Karte entferne und das Teil neu Boote bekommt es die Richtige Adresse zugewiesen; sonst geht nix :(

    Ich denke, dass ich ein config file (Bootloader-Datei) brauche?


    PS:

    Ja ich bin so doof! Wo bekomme ich die "cmdline.txt" (erster Beitrag) her? Und wo muss die hin?

    Einmal editiert, zuletzt von derHotze (22. Oktober 2018 um 22:27)

  • Aber da ist doch garkeine SD-Karte drin?

    Ich habe die Karte wieder in den Kartenleser getan und die Datei bearbeitet.

    Die Zeile schaut nun so aus:

    Code
    dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs  rootfstype=nfs nfsroot=192.168.3.42/volume1/pxe rw ip=192.168.3.11 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

    Muss die Karte wieder rein (Ja, ich bin so doof)?

    Server IP: 192.168.3.42

    Rapberry IP:192.168.3.11

    Einmal editiert, zuletzt von derHotze (23. Oktober 2018 um 20:58)

  • Image von meinem Pi rein
    habe eine FritzBox als DHCP

    Mach mal bitte einen neuen thread auf mit deiner Frage, so sehen es mehr.Folgendes schonmal vorab. Der DHCP Server der Fritte ist imho zum PXE Boot ungeeignet., zumindest hab ich das so noch in Erinnerung. Und was heißt „Image von meinem Pi rein“?

    Grüße, STF

  • Rein in das pxe Verzeichnis.

    Also wenn das heißt, dass Du ein Image der Karte (dd, Win32DiskImager oder gleichwertig) in das Verzeichnis kopiert hast, dann geht das nicht. So zumindest nicht. Aber so...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!