PXE Multitool basierend auf Raspberry Pi



Rechenzentrumsingenieure stehen häufig vor der Aufgabe der anfänglichen Serverkonfiguration. Darüber hinaus ist es meistens erforderlich, nicht ein oder zwei Geräte zu konfigurieren, sondern mehrere zehn oder sogar Hunderte. Jedes Mal, wenn ein neues Gerät zu uns kommt, müssen wir es nicht nur gründlich prüfen, bevor wir es in Betrieb nehmen, sondern es auch ordnungsgemäß für die Verwendung mit unseren internen Systemen konfigurieren.



Bevor Sie mit dem eher trivialen Verfahren zum Einrichten von BIOS und IPMI fortfahren, müssen Sie sicherstellen, dass jede Serverkomponente über die erforderliche Firmware-Version verfügt. In den meisten Fällen, mit seltenen Ausnahmen, ist eine aktuelle Version erforderlich, die auf der Website des Herstellers bestimmter Komponenten verfügbar ist. Heute werden wir Ihnen erzählen, wie wir auf die Idee gekommen sind, die jetzt beliebte "Himbeere" zu verwenden, um den Prozess zu beschleunigen.



Was ist die Schwierigkeit



Es scheint, dass die Aufgabe sehr einfach ist. Nehmen wir eine Live-Linux-Distribution, rollen sie auf ein USB-Flash-Laufwerk aus, booten von dort und führen die erforderlichen Verfahren aus. Aber es war nicht da.



Das Problem ist, dass jeder Anbieter seine eigenen Methoden und Dienstprogramme zum Aktualisieren der Firmware hat. Darüber hinaus können nicht alle unter Linux ordnungsgemäß funktionieren. Bei einigen Komponenten, z. B. BIOS für SuperMicro-Server, ist es wünschenswert, unter MS-DOS zu nähen. Für einige Komponenten, z. B. Mellanox-Netzwerkkarten, müssen Sie in einigen Fällen Windows verwenden, und einige unterstützen Firmware direkt von Linux.



Daher müssen wir entweder ein Multiboot-Image sammeln und auf mehrere Dutzend Flash-Laufwerke schreiben, dann lange und dauerhaft von diesen booten oder uns etwas Interessanteres und Schnelleres einfallen lassen. Und hier kommt die Verwendung von Servernetzwerkkarten mit Unterstützung für PXE (Preboot eXecution Environment, ausgesprochen pixie) in den Sinn.



Wir nehmen die "Himbeere", stellen dort einen DHCP- und TFTP-Server bereit und bereiten die erforderlichen Images zum Laden vor. Um mehrere Dutzend Server massiv zu laden, verwenden wir nur vorübergehend einen nicht verwalteten 48-Port-Gigabit-Switch und Voila. Standardmäßig erlauben die meisten Server das PXE-Booten ohne zusätzliche Konfiguration, daher ist dies ideal.



Ich habe einen ausgezeichneten Artikel als Grundlage genommen. von Romanenko_Eugene, aber mit Korrekturen für die Funktionen des Raspberry Pi und die zu lösenden Aufgaben. Lass uns anfangen!



Himbeermarmelade



Als ich dies zum ersten Mal tat, war die fortschrittlichste Version des Raspberry Pi die dritte mit einer 100-Mbit / s-Netzwerkkarte. Dies ist offen gesagt nicht genug für die Massenverteilung schwerer Bilder, daher empfehle ich dringend, den derzeit verfügbaren Raspberry Pi 4 mit einem 1-Gbit / s-Port zu verwenden. Eine weitere Empfehlung ist die Verwendung einer schnellen und geräumigen Speicherkarte, wann immer dies möglich ist.



Nun zur Ersteinrichtung. Eine grafische Oberfläche für so etwas ist absolut nicht erforderlich, daher können Sie die einfachste Lite-Version des Betriebssystems Raspberry Pi OS herunterladen . Wir entpacken das Bild und laden es auf eine bequeme Weise auf die MicroSD-Karte hoch, beispielsweise mit dd:



sudo dd if=<_> of=/dev/mmcblk0 bs=1M
      
      





Während des Konfigurationsprozesses können Sie entweder auf herkömmliche Weise konfigurieren, indem Sie eine Tastatur und einen Monitor anschließen, oder über SSH. Erstellen Sie eine leere Datei mit dem Namen ssh im Abschnitt / boot, damit der SSH-Dienst beim Start funktioniert .



Da der Netzwerkanschluss für den DHCP-Betrieb verwendet wird, können Sie entweder eine Wi-Fi-Verbindung verwenden, um auf das Internet zuzugreifen, oder eine andere Netzwerkkarte über USB mit dem Malinka verbinden. Hier ist zum Beispiel eines:





Jetzt starten wir den Raspberry Pi, verbinden ihn mit dem Internet und aktualisieren die Repositorys und Softwarepakete:



sudo apt update
      
      





sudo apt upgrade
      
      





Da ich eine andere Netzwerkkarte verwende, muss die integrierte auf eine statische IP-Adresse eingestellt sein. Öffnen Sie die Konfiguration:



sudo nano /etc/dhcpcd.conf
      
      





Fügen Sie die folgenden Zeilen hinzu:



interface eth0
static ip_address=192.168.50.1/24
      
      





Hier ist eth0 die integrierte Netzwerkkarte des Raspberry Pi. Mit ihrer Hilfe werden die Verteilung der IP-Adressen und das Laden des Netzwerks durchgeführt. Installieren Sie nun den TFTP-Server:



sudo apt install tftpd-hpa
      
      





Öffnen Sie nach der Installation die Konfigurationsdatei:



sudo nano /etc/default/tftpd-hpa
      
      





Wir bringen die Zeile in die folgende Form:



TFTP_OPTIONS="--secure -l -v -r blksize"
      
      





Im Allgemeinen kann man alles so lassen, wie es ist, aber jedes Mal auf einem separaten Computer zu testen, ist manchmal nicht sehr praktisch. Mit den Optionen -l -v -r blksize können Sie all dies problemlos in einer VirtualBox-VM testen und so Kompatibilitätsprobleme beheben. Jetzt installieren wir einen DHCP-Server zum Verteilen von IP-Adressen:



sudo apt install isc-dhcp-server
      
      





Öffnen Sie die erste Konfigurationsdatei isc-dhcp-server:



sudo nano /etc/default/isc-dhcp-server
      
      





Wir geben explizit die Schnittstelle an, auf der der DHCP-Server arbeiten soll:



INTERFACESv4="eth0"
      
      





Öffnen Sie nun die zweite config dhcpd.conf :



sudo nano /etc/dhcp/dhcpd.conf
      
      





Wir legen die erforderlichen Serverparameter und das zu verteilende Subnetz fest und übergeben auch den Namen der Loader-Datei:



default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;

subnet 192.168.50.0 netmask 255.255.255.0 {
        range 192.168.50.2 192.168.50.250;
        option broadcast-address 192.168.50.255;
        option routers 192.168.50.1;
        filename "pxelinux.0";
}

      
      





Wir speichern die Datei und müssen nun den Bootloader und die erforderlichen Module herunterladen und das PXE-Menü bilden. Beginnen wir mit dem Herunterladen einer Reihe von Syslinux-Ladern. In meinem Fall ist Version 5.01 am bequemsten:



wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.zip
      
      





Auspacken:



unzip syslinux-5.01.zip
      
      





Jetzt müssen wir das memdisk- Modul finden und extrahieren , das ganze ISO-Images in den RAM, den pxelinux.0- Loader und den Rest der Comboot- Module laden kann . Wir führen nacheinander die Befehle aus, die alles im Verzeichnis / srv / tftp finden und kopieren:



find ./ -name "memdisk" -type f|xargs -I {} sudo cp '{}' /srv/tftp/
      
      





find ./ -name "pxelinux.0"|xargs -I {} sudo cp '{}' /srv/tftp/
      
      





find ./ -name "*.c32"|xargs -I {} sudo cp '{}' /srv/tftp/
      
      





Nach diesem Vorgang müssen wir eine Konfigurationsdatei direkt für das auf dem PXE-Bildschirm angezeigte Menü erstellen. Gehen Sie in unser Verzeichnis:



cd /srv/tftp
      
      





Erstellen Sie ein Verzeichnis mit dem Namen pxelinux.cfg und navigieren Sie zu diesem Verzeichnis:



sudo mkdir pxelinux.cfg
      
      





cd pxelinux.cfg
      
      





Wir erstellen eine Konfigurationsdatei:



sudo nano default
      
      





Nehmen wir als Beispiel die hervorragende Live-GRML-Distribution und laden Sie sie über PXE herunter. Unten finden Sie ein fertiges Konfigurationsbeispiel:



UI vesamenu.c32                  
PROMPT 0
MENU TITLE Raspberry Pi PXE Server
MENU BACKGROUND bg.png
LABEL bootlocal
   menu label Boot from HDD
   kernel chain.c32
   append hd0 0
   timeout 0
TEXT HELP
Boot from first HDD in your system
ENDTEXT
LABEL grml
   menu label GRML Linux
KERNEL grml/boot/grml32full/vmlinuz
APPEND root=/dev/nfs rw nfsroot=192.168.50.1:/srv/tftp/grml/ live-media-path=/live/grml32-full boot=live lang=us nomce apm=power-off noprompt noeject initrd=grml/boot/grml32full/initrd.img vga=791
LABEL reboot
    menu label Reboot
    kernel reboot.c32
TEXT HELP
Reboot server
ENDTEXT

      
      





Es lohnt sich wahrscheinlich, hier ein wenig anzuhalten und herauszufinden, was jede Zeile tut:



  • UI vesamenu.c32 - Verwenden Sie das Modul vesamenu.c32, um das Menü anzuzeigen.
  • PROMPT 0 - Markieren Sie den Menüpunkt Null.
  • MENÜTITEL Raspberry Pi PXE Server - Legen Sie den allgemeinen Namen des Menüs fest.
  • MENÜ HINTERGRUND bg.png - Gestaltungselement, verwenden Sie bg.png als Hintergrundbild.


Das Hintergrundbild kann im Voraus erstellt werden. Standardmäßig ist ein 640 x 480-Bild mit einer Farbtiefe von nicht mehr als 24 Bit im PNG- oder JPG-Format geeignet. Es muss vorab nach / srv / tftp kopiert werden . Schauen wir uns nun jeden Abschnitt an. Der erste Abschnitt wurde der Einfachheit halber eingeführt. Wenn Sie von der ersten Festplatte booten müssen, registrieren wir:



  • LABEL bootlocal - interner Abschnittsname;
  • Menübezeichnung Boot from HDD - wie das Benutzermenü angezeigt wird;
  • kernel chain.c32 - Wir verwenden das Modul chain.c32, das von verschiedenen Medien booten kann.
  • append hd0 0 - Geben Sie explizit an, dass das Laden von der ersten Partition der ersten Festplatte erfolgen soll.
  • Zeitlimit 0 - Hier können Sie entweder ein Zeitlimit in Sekunden festlegen, nach dem der Download automatisch gestartet wird, oder indem Sie 0 angeben, um den Timer zu entfernen.
  • TEXTHILFE - Geben Sie den Anfang des Hilfetextes für den Benutzer an.
  • Booten Sie von der ersten Festplatte in Ihrem System - Hinweistext;
  • ENDTEXT - Geben Sie das Ende des Hinweistextes an.


In etwa gleicher Weise bilden wir den Abschnitt zum Nachladen. Der einzige Unterschied ist der Aufruf des Moduls reboot.c32, das das Auto tatsächlich zum Neustart sendet. Bevor wir untersuchen, was der dritte Abschnitt, in dem die GRML-Distribution geladen wird, bewirkt, lassen Sie uns darüber sprechen, was tatsächlich wie geladen wird.



Alles ist eine Datei



Das ISO-Image selbst ist auf der Website dieser Live-Distribution verfügbar . Laden Sie es herunter und benennen Sie es der Einfachheit halber um. Im Beispiel nehmen wir die 32-Bit-Version:



wget https://download.grml.org/grml32-full_2020.06.iso
      
      





mv grml32-full_2020.06.iso grml.iso
      
      





Jetzt müssen wir dieses Image irgendwie zum Booten zwingen. Einerseits können Sie das memdisk- Modul verwenden und es zwingen, zuerst alle "rohen" Inhalte des Images direkt in den RAM zu laden und dann die Kontrolle über den Start zu übertragen. Diese Methode eignet sich jedoch nur für sehr kleine Images. Beispielsweise ist es praktisch, MS-DOS auf diese Weise zu starten. Das Laden großer Bilder dauert lange und funktioniert nicht immer ausreichend.



Daher sollten Sie das Image weiterhin "ausnehmen" und nur den Kernel und livefs zum Booten übertragen. Weitere Dateien von der Festplatte können dem System jedoch auf Anfrage über den NFS-Server zur Verfügung gestellt werden. Dieser Ansatz funktioniert viel schneller und angemessener, erfordert jedoch zusätzliche Gesten, z. B. die Installation eines NFS-Servers.



Es geschieht auf elementare Weise:



sudo apt install nfs-kernel-server
      
      





Erstellen Sie ein separates Verzeichnis für grml, um die Dateien nicht durcheinander zu bringen:



sudo mkdir /srv/tftp/grml
      
      





Wir müssen die ISO einbinden, also kümmern wir uns um den temporären Einhängepunkt:



sudo mkdir /tmp/iso
      
      





Wir montieren das Bild. Das System warnt Sie, dass das Image im schreibgeschützten Modus bereitgestellt wird:



sudo mount -o loop grml.iso /tmp/iso
      
      





Kopieren Sie den Inhalt des Bildes rekursiv in unser separates Verzeichnis:



sudo cp -R /tmp/iso/* /srv/tftp/grml
      
      





Um Probleme mit Zugriffsrechten zu vermeiden, ändern wir den Eigentümer und weisen diesem Verzeichnis rekursiv die Rechte aus der Serie "Freies Zuhause, lebe, wen immer du willst" zu:



sudo chown -R nobody:nogroup /srv/tftp/grml/
      
      





sudo chmod -R 755 /srv/tftp/grml/
      
      





Jetzt ist es einfach, dem NFS-Server mitzuteilen, dass er das Verzeichnis / srv / tftp / grml für jede IP-Adresse aus unserem Subnetz bereitstellen soll :



sudo nano /etc/exports
      
      





Wir registrieren die Leitung:



/srv/tftp/grml 192.168.50.0/24(rw,sync,no_subtree_check)
      
      





Aktualisieren Sie die Liste und starten Sie den NFS-Server neu:



sudo exportfs -a
      
      





sudo systemctl restart nfs-kernel-server
      
      





Jetzt haben wir endlich die Möglichkeit, den Download-Prozess korrekt in zwei bedingte Phasen zu unterteilen. Der erste Schritt ist das Laden des Kernels und des Live-Dateisystems. In der zweiten Phase werden alle anderen Dateien über NFS abgerufen. Es ist Zeit, einen Blick auf den verbleibenden Abschnitt zu werfen:



  • LABEL grml - Abschnittsname;
  • Menübezeichnung GRML Linux - Anzeige im Menü;
  • KERNEL grml / boot / grml32full / vmlinuz - Geben Sie den Pfad zum Kernel relativ zum Stammverzeichnis / srv / tftp an .
  • APPEND root = / dev / nfs rw nfsroot = 192.168.50.1: / srv / tftp / grml / live-media-path = / live / grml32-full boot = live lang = us nomce apm = Ausschalten noprompt noeject initrd = grml /boot/grml32full/initrd.img vga = 791 - hier sagen wir, dass wir NFS verwenden, schreiben die Pfade in das bedingte Stammverzeichnis, legen einige zusätzliche in der Dokumentation empfohlene Parameter fest und geben den relativen Pfad zu initrd an.


Jetzt müssen Sie nur noch den TFTP- und DHCP-Server nacheinander starten, und Sie können versuchen, PXE zu starten. Wenn alles richtig gemacht wurde, sehen Sie das erstellte Menü:





Wählen Sie das GRML Linux-Element aus, drücken Sie die Eingabetaste, um sicherzustellen, dass der Bildladevorgang erfolgreich war:





Auf diese Weise haben wir die Möglichkeit, die bei Systemadministratoren beliebte GRML-Distribution im Netzwerk zu booten. Aber was ist mit demselben MS-DOS und wie können Sie unabhängig voneinander ein Image für das Flashen des BIOS vorbereiten? Lassen Sie uns weiter darüber sprechen.



Wir vertrauen auf DOS



Wird das Betriebssystem aus den 80er Jahren des letzten Jahrtausends im 21. Jahrhundert noch verwendet? Egal wie seltsam es auch erscheinen mag, für einige bestimmte Aufgaben ist MS-DOS immer noch relevant und für sich selbst sehr nützlich. Eine dieser Aufgaben ist das Aktualisieren der BIOS-Firmware auf Servern.



Nehmen wir als Beispiel ein Motherboard, zum Beispiel Supemicro X11SSL-F, und laden Sie das BIOS-Update von der offiziellen Website herunter. Im Inneren sehen wir einen ähnlichen Satz von Dateien:



user@linux:~//X11SSLF0_B26> ls -l
 16592
-rw-r--r-- 1 user users   169120   1  2015 AFUDOSU.SMC
-rw-r--r-- 1 user users     5219  20  2003 CHOICE.SMC
-rw-r--r-- 1 user users    22092  27  2014 FDT.smc
-rw-r--r-- 1 user users     3799  15  2016 FLASH.BAT
-rw-r--r-- 1 user users     3739  22  2019 Readme for UP X11 AMI  BIOS.txt
-rw-r--r-- 1 user users 16777216  25 23:48 X11SSLF0.B26

      
      





Wir sehen, dass wir bereits eine vorgefertigte BAT-Datei haben, mit der wir das BIOS flashen können. Dazu muss jedoch bereits ein Server in MS-DOS geladen sein. Jetzt zeigen wir Ihnen genau, wie das geht.



Zunächst müssen wir mit dem Betriebssystem ein kleines Roh-Image der Festplatte erstellen. Erstellen Sie eine neue virtuelle Maschine über Oracle VM VirtualBox mit einer kleinen 32-Megabyte-Festplatte. Wir wählen das Format QCOW, nach all den Manipulationen kann es leicht in Raw konvertiert werden.



Sicher wissen Sie alle, wo Sie mit MS-DOS Images von Disketten erhalten können. Hängen Sie sie also in die virtuelle Maschine ein und führen Sie die Installation aus:





Wir ändern die Disketten-Images im virtuellen Laufwerk zweimal und nach buchstäblich 20 Sekunden haben wir ein qcow-Image mit einem neuen MS-DOS 6.22-Betriebssystem:





Der einfachste Weg, Dateien auf diese Festplatte zu kopieren, besteht darin, sie auf einer anderen virtuellen Maschine unter Windows oder Linux bereitzustellen. Nach diesem Vorgang stellen wir die Festplatte erneut in die virtuelle MS-DOS-Maschine bereit und überprüfen, ob die Dateien sichtbar sind:





Wenn Sie möchten, können Sie das automatische Laden sogar so konfigurieren, dass eine BAT-Datei ausgeführt wird, sodass das BIOS automatisch geflasht wird. Denken Sie jedoch daran, dass dies eine potenziell gefährliche Operation ist und Sie dies auf eigene Gefahr und Gefahr tun. Schalten Sie nun die virtuelle Maschine aus und konvertieren Sie sie mit qemu-img in ein Rohbild.



qemu-img convert -f qcow -O raw DOS.qcow dos.img
      
      





Kopieren Sie das resultierende IMG-Image in ein separates Verzeichnis unseres TFTP-Servers:



sudo mkdir /srv/tftp/dos
      
      





sudo cp dos.img /srv/tftp/dos
      
      





Öffnen Sie nun die Konfiguration /srv/tftp/pxelinux.cfg/default zum Bearbeiten und fügen Sie dem Menü einen weiteren Eintrag hinzu:



LABEL DOS
        kernel memdisk
        initrd dos/dos.img
        append raw

      
      





Wir speichern die Konfiguration und haben jetzt einen neuen Menüpunkt im PXE-Menü, indem wir auswählen, welchen wir das erstellte Bild laden:





Auf die gleiche Weise können Sie Bilder erstellen, die sowohl Dienstprogramme als auch zum Spaß mit alten DOS-Spielen enthalten.



In Windows Veritas



Versuchen wir nun, das Live-Image von WinPE (Windows Preinstallation Environment) zu starten. Das Herunterladen einer Vollversion ist oft einfach nicht erforderlich, nur eine begrenzte Anzahl von Funktionen reicht aus. Dieses Ding findet echte Verwendung beim Flashen einiger Geräte.



Dieselbe Mellanox, die vor einem Jahr von Nvidia übernommen wurde, veröffentlicht das Dienstprogramm Mellanox Firmware Tools zum Flashen seiner Netzwerkkarten in verschiedenen Versionen für WinPE. Natürlich gibt es jetzt bereits verschiedene MFT-Optionen, aber einige Male mussten wir die WinPE-Version durchnähen.



Das Erstellen eines eigenen WinPE-Images und das Integrieren der erforderlichen Software ist keine allzu schwierige Aufgabe, deren Erklärung jedoch den Rahmen dieses Artikels sprengt. Um diesen Prozess im Detail zu beherrschen, können Sie die hervorragende Ressource winpe.ru besuchen . Als Beispiel nehmen wir eine fertige Baugruppe, um den Startvorgang zu demonstrieren.



Oft sind solche Baugruppen entweder ISO-Bilder oder seltene Archive mit ISO-Bildern. Bevor wir ein solches Image auswählen, müssen wir den entsprechenden Bootloader besorgen.



wimboot ist ein ziemlich einfacher Bootloader , der Bilder im wim-Format (Windows Imaging Format) laden kann. Es kann entweder in Verbindung mit syslinux oder mit seinem fortgeschritteneren Geschwister iPXE verwendet werden... Erstellen Sie ein separates Verzeichnis in / srv / tftp :



sudo mkdir wimboot
      
      





cd wimboot
      
      





Laden Sie den Bootloader selbst herunter:



wget https://github.com/ipxe/wimboot/releases/latest/download/wimboot
      
      





Jetzt ist es Zeit, das Image zu mounten. Erstellen Sie ein temporäres Verzeichnis in / tmp :



sudo mkdir winpe
      
      





Wechseln Sie in das Verzeichnis mit dem heruntergeladenen ISO-Assembly-Image und führen Sie Folgendes aus:



sudo mount -o loop <_> /tmp/winpe
      
      





Erstellen Sie ein Verzeichnis in / srv / tftp , in dem wir die benötigten Dateien ablegen :



sudo mkdir /srv/tftp/winpe
      
      





Jetzt suchen wir in der Baugruppe und kopieren 4 Dateien:



sudo cp BOOTMGR /srv/tftp/winpe
      
      





sudo cp bcd /srv/tftp/winpe
      
      





sudo cp boot.sdi /srv/tftp/winpe
      
      





sudo cp boot.wim /srv/tftp/winpe
      
      





Die Angelegenheit ist klein - fügen Sie der Konfigurationsdatei /srv/tftp/pxelinux.cfg/default den folgenden Abschnitt hinzu :



LABEL WinPE
        menu label WinPE
        com32 linux.c32 wimboot/wimboot
        append initrdfile=winpe/BOOTMGR,winpe/bcd,winpe/boot.sdi,winpe/boot.wim

      
      





Tatsächlich verwenden wir das linux.c32-Modul, um den Bootloader zu laden, eine hervorragende Tautologie , und übergeben ihm die Parameter in dem Format, das wimboot vertraut ist. Daher wird zuerst wimboot geladen, dann werden die erforderlichen Dateien entpackt und nacheinander ausgeführt.





Es ist wichtig zu berücksichtigen, dass Dateien über TFTP hochgeladen werden, was nicht sehr schnell und bequem ist. Im Allgemeinen können Sie die Konfiguration leicht ändern und auf andere Weise dehnen. Für einfache utilitaristische Aufgaben reicht dies jedoch völlig aus.





Anstelle einer Schlussfolgerung



In diesem Artikel gibt es kein Know-how, aber als es nötig wurde, hat der Raspberry Pi einen großartigen Job gemacht. Sie musste nicht nach einer zusätzlichen Steckdose suchen, der USB-Anschluss des nächsten freien Servers war perfekt. Es gibt keine zusätzlichen Probleme, einen Platz in einem Gestell zu finden, das an den Augäpfeln vollgestopft ist. Es funktioniert genau so, wie es sollte, und seine kleinen Abmessungen ermöglichen es Ihnen, es immer zur Hand zu haben.



Es gibt tatsächlich viele Tutorials im Internet zum Einrichten von Netboot. Das einzige Problem ist, dass unterschiedliche Mittel und unterschiedliche Ansätze für unterschiedliche Bilder verwendet werden. Die Wahl des richtigen Ansatzes kann manchmal viel Zeit in Anspruch nehmen, und ich hoffe wirklich, dass dieses Material vielen Menschen hilft, Zeit zu sparen, wenn sie verschiedene Aufgaben lösen, die mit der Notwendigkeit verbunden sind, PXE schnell auf einem Raspberry Pi-Einplatinencomputer bereitzustellen.






All Articles