HowTo: PXE-Boot (grub2) -- Ergänzungen sind möglich!

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 :slight_smile:. 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/grubmcedit 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.

7.) Vielleicht kann das ja jemand gebrauchen?

Viele Grüße,
Michael

2 „Gefällt mir“