Es besteht die Möglichkeit, den PXE-Bootmechanismus, der sowieso schon für LINBO läuft, zu erweitern, so dass man beim Systemstart die Wahl hat, auch andere Distributionen via PXE zu booten.
Der Sinn und Zweck dahinter kann unter anderem eine schnelle Verfügbarkeit nützlicher Tools sein, wenn z.B. ein Rechner ausgefallen ist bzw. wenn irgendwo Hardware überprüft werden muss. So muss man nicht ständig CDs dabei haben, sondern bootet sein gewünschtes Image via PXE. Denkbar wäre auch eine Erweiterung für Win-PE via PXE, Damn Small Linux, PartedMagic u.v.a.
Die Liste der Möglichkeiten, was man noch alles via PXE booten kann, ist sehr lang (alles ab Booten vom Netzwerk).
Beispiel einer PXE-Bootkonfiguration für Windows-Systeme → Windows per PXE booten
Zunächst muss der Bootmechanismus von LINBO etwas erweitert werden. Als Referenz: PXE-Konfiguration
Als erstes muss der Bootprompt beim Systemstart aktiviert werden. Dazu öffnet man unter
/var/linbo/pxelinux.cfg/
die entsprechende Konfiguration der gewünschten Hardwareklasse. In diesem Beispiel gehen wir davon aus, dass das Image „trusty714“ erweitert werden soll. Also
cd /var/linbo/pxelinux.cfg/ mcedit trusty714
Dort aktiviert man ganz oben den Bootprompt
PROMPT 1
indem man das Kommentarzeichen (#) entfernt!
Damit bleibt der nächste PXE-Start von LINBO kurz stehen und wartet für 3 Sek. auf eine Eingabe. Man kann während dieser Zeit mit der TAB-Taste sehen, welche Kernel zur Verfügung stehen. Wem die Zeit zu kurz ist, der kann sie (in Zehntel-Sekunden) ändern, oder abschalten, in dem man auf „0“ setzt. Nicht vergessen, später wieder anzuschalten, sonst bootet diese Hardwareklasse nicht mehr.
TIMEOUT 0
Als nächstes muss man LINBO um die zusätzlichen PXE-Images/Kernel erweitern.
Zunächst sollte man etwas einfaches wie memtest86+ ausprobieren. Danach kann man auch andere Erweiterungen installieren.
cd /var/linbo mkdir -p distri-pxe/tools cd distri-pxe/tools apt-get install memtest86+ cp /boot/memtest86+.bin ./
Dann muss für memtest86+ nur noch die pxelinux.cfg/<hwk>
Datei editiert werden, und folgende Zeilen angefügt:
LABEL memtest KERNEL distri-pxe/tools/memtest86+
Unter tools wurden ein ISO für SuperGrubDisk2 und ein Pre-Compiled Bootable Binary für memtest86+ abgelegt. Die Dateien sind hier verfügbar: supergrub2.iso und memtest86+
Unter grml64 und clonezilla64 liegt jeweils der Kernel vmlinuz und die Initial Ramdisk initrd aus den ISO-Dateien. Die Anleitungen, wie man das ISO mountet und den nötigen Inhalt kopiert, sind hier zu finden:
Noch einfacher für Clonezilla ist es, die ZIP Datei statt der ISO Datei herunterzuladen und einfach zu entpacken.
cd /var/linbo/tmp /var/linbo/tmp # unzip clonezilla-live-2.2.4-12-i486.zip /var/linbo/tmp # cp -a live/filesystem.squashfs live/initrd.img live/vmlinuz /var/linbo/distri-pxe/clonezilla/
Hier dennoch die Dokumentation, wie man es auf dem linuxmuster.net Server macht.
Zudem müssen die ISOs noch vollständig entpackt (oder nur gemountet) werden und die NFS-Exports vorbereitet werden: Dazu:
cd /mnt/ mkdir pxe-boot cd pxe-boot Auch hier: mkdir clonezilla64 mkdir grml64 ...
und weitere gewünschte Distributionen …
Hier wird dann alles aus den ISOs entpackt (also nicht nur vmlinuz & initrd).
Einige Distributionen verlangen eine zusätzliche Netzwerkfreigabe, über die während des Bootvorgangs alle weiteren benötigten Daten nachgeladen werden können. Dazu gehört auch GRML. Der NFS-Server auf dem linuxmuster-Server muss daher um eine Freigabe erweitert werden:
mcedit /etc/exports
Neuer Eintrag (Freigabe für das komplette grüne Netz):
/mnt/pxe-boot/grml64 10.16.1.0/12(rw,sync,no_subtree_check)
Auf dem linuxmuster-Server muss man die Ports für das NFS-Protokoll freigeben. Dazu editiert man
mcedit /etc/linuxmuster/allowed_ports
und fügt (am besten in alphabetischer Reihenfolge) den Eintrag nfs hinzu. Anschließend muss die Firewall neu gestartet werden, damit andere Clients intern auf die NFS-Shares zugreifen können. Das erreicht man mit:
/etc/init.d/linuxmuster-base restart
Das Mounten per NFS-Share müsste jetzt von einem Client aus dem grünen Netz aus funktionieren. Zum Testen kann man diesen Befehl ausprobieren (zuvor auf dem Client einen Mountpunkt unter /mnt erzeugen):
mount -t nfs4 10.16.1.1:/mnt/pxe-boot/grml64 /mnt/<mountpoint>
Anmerkung: Es gibt u.U. Konflikte mit der laufenden internen Firewall auf dem linuxmuster-Server und dem späteren Mount-Versuch während des PXE-Boot-Prozesses. Man kann dazu die Firewall zu Testzwecken kurzzeitig abschalten (/etc/init.d/linuxmuster-base stop).
Als nächstes wird nochmals die pxe-Datei editiert:
mcedit /var/linbo/pxelinux.cfg/trusty714
und am Ende die entscheidenden Zeilen angefügt (die Append-Zeilen müssen immer in EINE Zeile)
LABEL memtest KERNEL distri-pxe/tools/memtest86+ LABEL supergrub KERNEL memdisk INITRD distri-pxe/tools/supergrub2.iso APPEND iso raw LABEL clonezilla KERNEL distri-pxe/clonezilla64/vmlinuz APPEND initrd=distri-pxe/clonezilla64/initrd.img fetch=tftp://10.16.1.1/distri-pxe/clonezilla64/filesystem.squashfs boot=live config noswap edd=on nomodeset noprompt nosplash locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no gfxpayload=1024x768x16,1024x768 ip=frommedia i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.blacklist=yes LABEL grml KERNEL distri-pxe/grml64/vmlinuz APPEND root=/dev/nfs rw nfsroot=10.16.1.1:/mnt/pxe-boot/grml64/ live-media-path=/live/grml64-full/ boot=live lang=de nomce apm=power-off noprompt noeject initrd=distri-pxe/grml64/initrd.img vga=791
Wenn man nun den Trusty-Client erneut via PXE bootet, kann man beim Systemstart TAB oder ESC drücken, so dass der Bootprozess unterbrochen wird. Nun wird das entsprechende „LABEL“ eingetippt und das neue Image bootet.
Andere User bekommen die zusätzliche Option beim Start nicht mit, da das System ganz normal weiterläuft, wenn man nicht mit TAB oder ESC unterbricht.