Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:pxe]] 

PXE-Boot auf dem linuxmuster-Server erweitern

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

Änderung in pxelinux.cfg

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.

Getestete Programme

  • memtest86
  • supergrubdisk2
  • clonezilla
  • grml

Programme, die kein NFS benötigen

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+

clonezilla

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/

Programme, die NFS benötigen

Manche Programme gehen davon aus, dass sie ein NFS-Share im NEtzwerk mounten können. Die Änderungen am System sind so gravierend, dass davon abgeraten wird, dies auf dem linuxmuster.net Server zu tun, sondern besser ein eigener (virtueller) Server erstellt wird, der NFS mounts anbieten kann.

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.

Sollte beim PXE-Boot keine Verbindung zum linuxmuster-Server aufgebaut werden können, liegt dies vermutlich daran, dass das NFS-Protokoll von der Firewall auf dem linuxmuster-Server geblockt wird. Die interne Firewall läßt sich zu Testzwecken kurzzeitig abschalten (s.o.). Alternativ kann man den NFS-Server auch auf einen anderen Rechner auslagern und die Images darüber bereitstellen.
 [[anwenderwiki:pxe]] anwenderwiki/pxe.txt · Zuletzt geändert: 2016/02/12 22:57 (Externe Bearbeitung)