Hallo.
Eine Frage zum Wochenende, über die ich schon länger nachdenke:
Unter v6.1 war es relativ einfach möglich, den PXE-Bootvorgang so aufzubohren, dass man neben LINBO auch andere Images via PXE booten konnte. Wir hatten das immer so eingestellt, dass man damit ganz bequem über’s Netz auch diverse andere Images lokal booten konnte (z.B. auch ISOs zur Reparatur von Dateisystemen usw.). Als Anleitung hatte ich auf dem v6.1-Server immer diese Seite https://www.gtkdb.de/index_7.html verwendet. Das lief immer super und völlig unkompliziert …
Nun wurde der PXE-Bootprozess seit LINBO 2.3 ja komplett auf grub2 umgestellt. (>> „Vereinfachte Boot-Konfiguration in nur noch einer Grub-Konfigurationsdatei für lokalen und Netzwerkboot!“). Ich wüsste gerne, ob man auch mit grub2 relativ einfach den o.g. Zustand herstellen und neben LINBO auch andere Images via PXE-Boot anbieten kann? Hat das evtl. schon mal jemand ausprobiert?
Nicht falsch verstehen: Wenn es (zu) kompliziert wird, will auf keinen Fall das laufende System „gefährden“ – aber kann ja sein, dass es ähnlich einfach läuft wie zuvor?
[Edit:]
Natürlich sollte eine Anpassung, die man möglicherweise unter /srv/linbo/boot/grub/meine-hwk.cfg machen kann, nicht vom nächsten linuxmuster-import-devices wieder überschrieben werden…!?
→ Oh, die letzte Frage ist schnell beantwortet! Das scheint einfach zu sein und so zu gehen wie immer (da sollte mittlerweile allerdings linuxmuster-import-devices und nicht mehr import_workstations stehen):
# if you don't want this file being overwritten by import_workstations remove the following line:
# ### managed by linuxmuster.net ###
… und noch einen Nachtrag hinterher: Wenn man z.B. auch ein Win10 ISO über PXE-Boot anbieten könnte, wäre das im Falle einer Notfallreparatur natürlich auch super.
Nach dem, was hier steht, scheint das relativ einfach zu gehen??
Da hat sich nichts im Vergleich zu LMN6.2 geändert.
Über den Grub Loader kannst du beliebige Images booten, das sollte an und für sich funktionieren. Ausprobiert habe ich das selber aber noch nie, ist eher eine Bastelei und steht nicht im Aufwand Nutzen Verhältnis. Mit einem USB Stick ist man da wesentlich schneller.
Allerdings ist es eine nette Bastelei. Persönlich ausprobiert habe ich das Booten der Windows CD via PXE auch noch nicht. Denkbar wäre auch nicht die gesamte CD sondern nur die Windows PE Umgebung zu booten.
Hallo Andreas,
na ja – das hängt sehr davon, welche Images man da anbietet. Wenn man immer 5-6 USB-Sticks passend in der Tasche hat, mag es ja stimmen, dass man mit einem Stick schneller ist. Nicht aber, wenn man zu irgendeinem Rechner gerufen wird und dort am besten innerhalb von 10 Sekunden irgendein Problem lösen soll. Da sind diverse ISOs, die über PXE booten, uU schon mal die Rettung in der Not.
Wir sind ja direkt von v6.1 auf v7 gesprungen – und dazwischen gab es die o.g. Änderung, denke ich. Wenn man die Liste der „Good to Know DB“ durchblättert, stellt man ja schnell fest, dass es da so einige Perlen gibt, die einem das Leben erleichtern können – und sei es nur die SuperGrub2Disk …
Hi.
Ich habe mich der Sache heute nochmal angenommen … und siehe da: Es funktioniert! Jetzt kann ich über ein GRUB2-Menu diese drei Distributionen via PXE booten:
Clonezilla
GRML
GParted
Vorgehensweise:
1.) neue VM erzeugt und in eine neue HWK gepackt. Dadurch wurde eine leere start.conf.none erzeugt, die ich problemlos kaputt editieren konnte . Also konkret: cd /srv/linbo und dort ein Eintrag wie dieser in die devices.csv: serverraum;LINBO-ISO;none;<MAC-Adresse>;<IP-Adresse>;---;---;;iponly;---;1;;;;LINBO-ISO-BOOT;;
1b.) linuxmuster-import-devices laufen lassen!
2.) cd /srv/linbo/boot/grub/ und neue HWK aus dem linuxmuster-Management herausgenommen, indem man wie üblich setzt: # ### NOT managed by linuxmuster.net -- TEST ISO BOOT ###
und direkt darunter:
# edit to your needs
set default=1
set timeout=2
set fallback=1
3.) Verzeichnis angelegt: cd /srv/linbo/ und dort: mkdir pxeboot
4.) aktuelle ISO-Files dorthin kopiert und vollständig entpackt (das Mounten des (loop) hat hier nicht funktioniert!):
drwxr-xr-x 9 root root 4096 Jun 25 14:45 clonezilla-live/
drwxr-xr-x 8 root root 4096 Jun 25 16:12 gparted-live/
drwxr-xr-x 7 root root 4096 Jun 25 15:42 grml-live/
drwxr-xr-x 2 root root 4096 Jun 25 16:14 iso/ (nur zum Download -- hinterher wieder gelöscht)
5.) neue Menu-Einträge angelegt so wie hier: cd /srv/linbo/boot/grub → mcedit none.cfg:
menuentry 'GParted (PXE-Boot)' {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
set path=(tftp)/pxeboot/gparted-live/live
fi
if [ -n "$bootflag" ]; then
echo
echo -n "Loading GParted via PXE..."
linux $path/vmlinuz boot=live config components union=overlay username=user noswap noeject gfxpayload=1024x768x32,1024x768 fetch=tftp://10.16.1.1/pxeboot/gparted-live/live/filesystem.squashfs
initrd $path/initrd.img
boot
fi
}
menuentry 'Clonezilla (PXE-Boot)' --class os {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
set path=(tftp)/pxeboot/clonezilla-live/live
fi
if [ -n "$bootflag" ]; then
echo
echo -n "Loading Clonezilla via PXE..."
linux $path/vmlinuz boot=live config locales=de_DE.UTF-8 keyboard-layouts=de ocs_prerun="dhclient" noswap edd=on nomodeset noprompt nosplash ocs_live_run="/usr/sbin/ocs-sr -um beginner -q2 -j2 -z1p -sc -p poweroff ask_user" ocs_live_extra_param="" ocs_live_batch=no ocs_netlink_timeout=5 fetch=tftp://10.16.1.1/pxeboot/clonezilla-live/live/filesystem.squashfs
initrd $path/initrd.img
boot
fi
}
menuentry 'GRML (PXE-Boot)' --class os {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
set path=(tftp)/pxeboot/grml-live/boot/grml64full
fi
if [ -n "$bootflag" ]; then
echo
echo -n "Loading GRML via PXE..."
linux $path/vmlinuz live-media-path=(tftp)/pxeboot/grml-live/live/grml64-full/ boot=live apm=power-off nomce noswap noprompt noeject fetch=tftp://10.16.1.1/pxeboot/grml-live/live/grml64-full/grml64-full.squashfs
initrd $path/initrd.img
boot
fi
}
6.) VM einschalten – grub2-Menu erscheint und die Auswahl ermöglicht das Booten der drei genannten Distributionen direkt über PXE. Da das ganze nun funktioniert, wäre der nächste Schritt, auch ein Win10.iso auf diese Weise zur Verfügung zu stellen… aber für heute ist’s genug.
Zur Feier des Tages folgt hier noch der Eintrag für den Win10-Boot-Loader.
Es hat mich zwar zig Versuche gekostet – aber jetzt bootet auch der Boot-Loader von Win10 über PXE. Das ist enorm hilfreich, wenn man einen abgeschossenen Rechner reparieren muss … neuere Modelle haben uU ja noch nicht mal mehr ein DVD-Laufwerk.
Also zur Vorgehensweise:
1.) Von einer Win10-DVD diese Dateien auf den Server in das oben angelegte Verzeichnis pxeboot --> win10-loader kopieren:
2.) Von der Seite iPXE - open source boot firmware [wimboot] eine aktuelle Version von wimboot besorgen und ebenfalls auf den Server packen: /srv/linbo/pxeboot/win10-loader/wimboot
3.) Die Struktur auf dem Server sieht dann so aus:
4.) Die o.g. Datei none.cfg unter linbo/boot/grub/none.cfg editieren und diesen neuen Menüeintrag ergänzen:
menuentry 'Win10 Boot Loader (PXE-Boot)' --class os {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
set path=(tftp)/pxeboot/win10-loader
fi
if [ -n "$bootflag" ]; then
echo
echo -n "Loading Win10 via PXE..."
linux16 $path/wimboot gui
initrd16 newc:bcd:$path/boot/bcd newc:boot.sdi:$path/boot/boot.sdi newc:boot.wim:$path/sources/boot.wim
boot
fi
}
5.) Die Win10-Reparaturkonsole startet nun in unter 30 Sekunden!
6.) Ergänzung und Einschränkung: Diese Methode funktioniert nur, wenn der Rechner „legacy“ booten kann! Bei UEFI-Boot muss man etwas anders vorgehen. Soll angeblich aber auch machbar sein…
Brainstorming – nach dem gleichen Schema funktionieren auch:
memtest86+
menuentry 'Memtest86+ (PXE-Boot)' --class os {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
set path=(tftp)/pxeboot/memtest
fi
if [ -n "$bootflag" ]; then
echo
echo -n "Loading Memtest86+ via PXE..."
linux16 $path/memtest86+.bin
boot
fi
}
menuentry 'Rescatux (PXE-Boot)' --class os {
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
set path=(tftp)/pxeboot/rescatux/live
fi
if [ -n "$bootflag" ]; then
echo
echo -n "Loading Rescatux via PXE..."
linux16 $path/vmlinuz1 live-media-path=(tftp)/pxeboot/rescatux/live/ boot=live apm=power-off nomce noswap noprompt noeject fetch=tftp://10.16.1.1/pxeboot/rescatux/live/filesystem.squashfs
initrd16 $path/initrd1.img
boot
fi
}
Damit hat man einen schönen Werkzeugkasten in der Hinterhand, wenn es irgendwo klemmt … es gibt auch diese Rettungs-CD für Win10 von der c’t. Da wird eine WinPE-Umgebung gebootet. Das wäre als Sahnehäubchen per PXE auch noch ganz schick…