Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:pxe]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:pxe [2016/02/12 22:57] (aktuell)
Zeile 1: Zeile 1:
 +{{tag> PXE booten Server}}
 +
 +
 +
 +====== 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 [[http://​www.rrzn.uni-hannover.de/​anl-waikpxe.html|Win-PE
 +via PXE]], [[http://​www.damnsmalllinux.org/​|Damn Small Linux]], [[http://​www.gtkdb.de/​index_7_2596.html|PartedMagic]] u.v.a.
 +
 +Die [[http://​www.gtkdb.de/​index_7.html|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 -> [[anwenderwiki:​pxe-windows|Windows per PXE booten]]
 +
 +===== Änderung in pxelinux.cfg =====
 +Zunächst muss der Bootmechanismus von LINBO etwas erweitert werden. ​
 +Als Referenz: [[http://​www.linuxmuster.net/​wiki/​dokumentation:​handbuch:​linbo:​configuration.pxeboot|PXE-Konfiguration]]
 +
 +Als erstes muss der Bootprompt beim Systemstart aktiviert werden. Dazu öffnet man unter 
 +<​code>/​var/​linbo/​pxelinux.cfg/</​code>​ die entsprechende Konfiguration der gewünschten Hardwareklasse.
 +In diesem Beispiel gehen wir davon aus, dass das Image "​trusty714"​ erweitert werden soll.
 +Also 
 +<​code>​
 +cd /​var/​linbo/​pxelinux.cfg/​
 +mcedit trusty714
 +</​code>​
 +
 +Dort aktiviert man ganz oben den Bootprompt ​
 +<​code>​
 +PROMPT 1
 +</​code>​
 +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.
 +<​code>​
 +TIMEOUT 0
 +</​code>​
 +
 +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. ​
 +
 +<​code>​
 +cd /var/linbo
 +mkdir -p distri-pxe/​tools
 +cd distri-pxe/​tools
 +apt-get install memtest86+
 +cp /​boot/​memtest86+.bin ./
 +</​code>​
 +
 +Dann muss für //​memtest86+//​ nur noch die ''​pxelinux.cfg/<​hwk>''​ Datei editiert werden, und folgende Zeilen angefügt:
 +<​code>​
 +LABEL memtest
 +KERNEL distri-pxe/​tools/​memtest86+
 +</​code>​
 +
 +Unter //tools// wurden ein ISO für //​SuperGrubDisk2//​ und ein //​Pre-Compiled Bootable Binary// für //​memtest86+//​ abgelegt. Die Dateien sind hier verfügbar:
 +[[http://​www.supergrubdisk.org/​category/​download/​supergrub2diskdownload/​super-grub2-disk-stable/​|supergrub2.iso]] und
 +[[http://​www.memtest.org/#​downiso|memtest86+]]
 +
 +
 +==== clonezilla ====
 +Unter [[http://​grml.org/​|grml64]] und [[http://​clonezilla.org/​downloads.php|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:
 +  * [[http://​www.gtkdb.de/​index_7_2573.html | GRML]] ​
 +  * [[http://​www.gtkdb.de/​index_7_2612.html | Clonezilla]]
 +
 +Noch einfacher für Clonezilla ist es, die ZIP Datei statt der ISO Datei herunterzuladen und einfach zu entpacken.
 +
 +<​code>​
 +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/​
 +</​code>​
 +===== Programme, die NFS benötigen =====
 +
 +<note important>​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.
 +</​note>​
 +
 +Zudem müssen die ISOs noch //​vollständig//​ entpackt (oder nur gemountet) werden und die NFS-Exports vorbereitet werden: ​
 +Dazu:
 +<​code>​
 +cd /mnt/
 +mkdir pxe-boot
 +cd pxe-boot
 +Auch hier:
 +mkdir clonezilla64
 +mkdir grml64
 +...
 +</​code>​
 +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:
 +<​code>​
 +mcedit /​etc/​exports
 +</​code>​
 +
 +Neuer Eintrag (Freigabe für das komplette grüne Netz):
 +<​code>​
 +/​mnt/​pxe-boot/​grml64 10.16.1.0/​12(rw,​sync,​no_subtree_check)
 +</​code>​
 +
 +Auf dem linuxmuster-Server muss man die Ports für das NFS-Protokoll freigeben. Dazu editiert man
 +<​code>​
 +mcedit /​etc/​linuxmuster/​allowed_ports
 +</​code>​
 +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:
 +<​code>​
 +/​etc/​init.d/​linuxmuster-base restart
 +</​code>​
 +
 +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):
 +<​code>​
 +mount -t nfs4 10.16.1.1:/​mnt/​pxe-boot/​grml64 /​mnt/<​mountpoint>​
 +</​code>​
 +
 +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:
 +<​code>​
 +mcedit /​var/​linbo/​pxelinux.cfg/​trusty714
 +</​code>​
 +
 +und am Ende die entscheidenden Zeilen angefügt ​
 +(die Append-Zeilen müssen immer in EINE Zeile)
 +
 +<​code>​
 +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
 +
 +</​code>​
 +
 +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.
 +
 +<note important>​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. </​note>​
  
 [[anwenderwiki:pxe]] anwenderwiki/pxe.txt · Zuletzt geändert: 2016/02/12 22:57 (Externe Bearbeitung)