[syslinux] xorriso or genisoimage syntax assistance

Mattias Schlenker ms at mattiasschlenker.de
Mon Feb 3 07:27:31 PST 2014


Am 03.02.2014 15:50, schrieb Dean Graff:
>   
>
> p.s. I am still interested in making some freebsd booting HOWTOs, but i
> maybe need more hardware. And the whole thing seems to be a disaster with
> freebsd9. For now I really want to use the power of debian debootstrap, (or
> perhaps pacstrap), to bootstrap a qemu/kvm based system, that would in
> return serve a pxelinux based image to a second qemu/kvm isntallation. My
> grandest hope is that the user has this with less than 30 or 40 lines of
> code. If any of you have some articles that will help, it would be much
> appreciated.

More on LessLinux might be found at http://blog.lesslinux.org/ The 
distribution is LFS based and relatively easy to build (there are two or 
three derivatives not assembled be me).

I attached an old article written by me on the topic of netbooting 
Linux, this might help you even if you do not understand german, most of 
the config is still valid, but pxelinux needs some more c32 files to 
work now.

Regards,
Mattias


-- 
Mattias Schlenker - Redaktion + EDV-Beratung + Linux-CD/DVD-Konzepte
August-Bebel-Str. 74 - 04275 LEIPZIG - GERMANY

Telefon (VoIP "ueberall"), geschaeftlich: +49 341 39290767
Telefon (Festnetz), privat und Fax:       +49 341 30393578
Mobil:                                    +49 163  6953657
Mobil (SIM in Testgeraeten):              +49 1578 3499550

Bitte fuer geschaeftliche Telefonate vorzugsweise die VoIP-Telefonnummer
+49 341 39290767 verwenden, da ich diese aufs Mobiltelefon routen kann!

-------------- next part --------------
((screen01_bios.png))
@bu: PXE als temporäres Bootdevice: Bei VMware per "ESC", bei den meisten anderen BIOSE per F8 oder F11.

((screen02_baton.png))
@bu: Das PXE-ROM sendet eine DHCP-Anfrage und erhält daraufhin eine IP-Adresse zugewiesen.

((screen00_tftp.png))
@bu: Mit dem Kommandozeilenclient "tftp" prüfen Sie, oder der TFTP-Daemon des Bootservers erreichbar ist.

((screen03_baton.png))
@bu: Hier fehlt die Konfigurationsdatei. Gut zu sehen: Die Suchreihenfolge für die Konfigurationsdatei.

((screen04_menu.png))
@bu: Mit Konfigurationsdatei "pxelinux.cfg/default": Das Auswahlmenü wird geladen.

((screen05_suse.png))
@bu: Eine per PXE gestartete openSUSE-Installation...

((screen06_suse.png))
@bu: ...ist per VNC vom Schreibtisch des Administrators aus durchführbar.


@d:Zauberhaft gebootet
@u:Per PXE Linux aus dem Netz starten
@v:Wer häufig mit verschiedenen Rechnern hantiert, ab und zu mit Knoppix-CDs Daten retten muss oder einfach eine elegante Bootmethode für plattenlose Clients sucht, sollte sich mit dem PXE-Boot via Ethernet vertraut machen, das jeder moderne Rechner beherrscht. Linuxlife zeigt, wie der Bootloader PXELINUX künftig die Jongliererei mit CDs erspart.

@n:Bereits in den späten 1980ern waren Festplattenlose Terminals en Vogue: von einem Novell- oder Unix-Server mit einem simplen DOS versorgt dienten einfache PCs als Terminals an Kassen oder in Bibliotheken. Der größte Vorteil der zentralen Wartbarkeit wurde damals jedoch mit aufwendig herzustellenden Boot-EPROMs erkauft, die für jeden Rechner individuell zugeschnitten sein mussten. Das Verfahren geriet in den 1990ern wieder etwas ins Hintertreffen weil Windows eine lokale Festplatte erforderte. Mit dem Trend zum Thin-Client-Computing erlebte das Booten aus dem Netzwerk aber wieder eine Renaissance. Heutzutage haben praktisch alle Onboard-Netzwerk-Karten PXE-Funktionalität, welche das Brennen eines EPROMs erspart und dennoch den Start aus dem Netz erlaubt. Das Geheimnis: Bereits die PXE-Komponente des BIOS fordert via DHCP ihre Booteinstellungen an. So genügt auf Clientseite die Aktivierung von PXE in der Bootreihenfolge des BIOS. Dennoch ist der Start per PXE bislang nur in großen Rechenzentren (z.B. für die Rettungssysteme von Rootservern) und Firmennetzen, in denen der Admin auch aus der Ferne Betriebssysteme installieren möchte, üblich. Dabei bietet PXE auch im Heimnetz oder in kleinen Firmen ernsthafte Vorteile für Wartungs- und Installationsarbeiten.

@z:Konfiguriert per DHCP

@n:Da bei PXE keine Möglichkeit mehr existiert, eigene IP-Adresse und die Adressen und Masken von Bootserver, Nameserver und Gateway fix einzustellen, sondern diese Daten immer per DHCP angefragt werden, muss ein DHCP-Server im lokalen Netz vorhanden sein. Die "kleinen" DHCP-Daemonen der meisten DSL-Router sind für diese Aufgabe nicht geeignet, da Sie keine Vergabe von Bootdateien zulassen. Schalten Sie den DHCP-Server im DSL-Router deshalb zunächst ab. Sie können später ausprobieren, ob bei gleicher MAC-IP-Adresstabelle Ihre Clients korrekt eine zweite Anfrage stellen, wenn sie die unvollständige Antwort des Routers erhalten haben. Ist dies der Fall können Sie beide DHCP-Server parallel im Betrieb haben. Quasi-Standard ist der hochgradig konfigurierbare Server des Internet Software Consortiums, ISC-DHCP in der aktuellen Version 3.0. Unter Ubuntu ist er im Paket "dhcp3-server" vorhanden. 

@n:Nach der Installation muss die Konfigurationsdatei <I>/etc/dhcp3/dhcpd.conf<I> angelegt/modifiziert werden. Unser Beispielserver residiert auf dem Host 192.168.1.250, Nameserver und Gateway ist eine unter 192.168.1.252 verortete FRITZbox. Den Adressbereich zwischen 192.168.180 und 192.168.1.199 haben wir für Clients vorgesehen, deren IP-Adresse egal ist. Damit wir unsere per SSH erreichbaren PCs immer schön unter der gleichen IP-Adresse wieder finden, vergeben wir fixe Zuordnungen zwischen MAC-Adresse und IP-Adresse. Auf die Option <I>filename<I> für die Bootdatei gehen wir später näher ein:

@l:authoritative;
@l:default-lease-time 600;
@l:max-lease-time 7200;
@l:ddns-update-style none;
@l:
@l:filename "pxelinux.0";
@l:
@l:subnet 192.168.1.0 netmask 255.255.255.0 {
@l:  option domain-name-servers 192.168.1.252;
@l:  option routers 192.168.1.252;
@l:  option domain-name "meinnetz.test";
@l:  range 192.168.1.180 192.168.1.199;
@l:  option subnet-mask 255.255.255.0;
@l:  next-server 192.168.1.250;
@l:
@l:  host amd64-test {
@l:    hardware ethernet 00:13:d4:fd:eb:49;
@l:    fixed-address 192.168.1.50;
@l:  }
@l:}

@n:Wenn Sie jetzt den PC mit der angegebenen MAC-Adresse starten und im BIOS den Boot-Agent einstellen (oder ihn temporär beispielsweise mit F8 oder F11 auswählen), wird dieser eine IP-Adresse und den Namen der Boot-Datei vom DHCP-Server anfordern und dies anzeigen. Er wird per TFTP versuchen, die Datei "pxelinux.0" anzufordern, aber irgendwann abbrechen und normal starten.

@z:Bootdateien per TFTP

@n:Für die Auslieferung der Bootdateien kommt das "Trivial File Transfer Protocol" zum Einsatz. Es hat nicht viel mit seinem großen Bruder "FTP" gemeinsam außer dass es zur Übertragung von Dateien dient. Im Gegensatz zu FTP nutzt TFTP das verbindungslose UDP statt TCP. Was gegenüber der vollständigen NFS-Implementierung in der Firmware früher SPARCs als Rückschritt erscheint, hat PXE erst möglich gemacht: Der Code für TFTP ist kompakt, was dem Kostenargument entgegenkam. Auf dem Testsystem installierten wir den <I>Advanced TFTP Daemon atftp<I>. Da wir beim Start per Meta-Daemon <I>inetd<I> auf Schwierigkeiten stießen, veranlassten wir den Start als gewöhnlichen Daemon, der immer im Hintergrund läuft. Hierfür muss die Konfigurationsdatei <I>/etc/default/atftpd<I> angepasst werden. "OPTIONS=..." ist eine einizige Zeile:

@l:USE_INETD=false
@l:OPTIONS="--daemon --port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 192.168.1.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /tftpboot"

@n:Die augenfälligsten Änderungen gegenüber der vom System mitgebrachten Version dieser Datei ist die Deaktivierung des Inetd und die Änderung der Multicast-Adresse auf das eigene Netz. Legen Sie das Verzeichnis <I>/tftpboot<I> und ein Unterverzeichnis <I>/tftpboot/pxelinux.cfg<I> an und achten Sie darauf, dass beide für normale Nutzer les- und betretbar sind (chmod 0755). In das Verzeichnis <I>/tftpboot<I> kopieren Sie den Bootloader <I>pxelinux.0<I> und das Bootmenü <I>menu.c32<I> (beide aus dem Syslinux-Tarball von "http://www.kernel.org/pub/linux/utils/boot/syslinux/"), sowie dem Speichertester Memtest86+ (von "http://www.memtest.org/"). Wir legten zudem Kernel und initiale Ramdisk des selbstgebauten Minilinunx aus dem letzten Heft hier ab. Beide Dateien finden Sie auf der Heft-DVD. Der Bootloader benötigt nun noch eine Konfigurationsdatei <I>/tftpboot/pxelinux.cfg/default<I>. Deren Aufbau erinnert stark an die Isolinux-Konfiguration des Minilinux:

@l:DEFAULT menu.c32
@l:PROMPT 0
@l:TIMEOUT 450
@l:
@l:MENU TITLE Linux aus dem Netz
@l:
@l:LABEL local
@l:MENU LABEL Von Festplatte starten
@l:MENU DEFAULT
@l:LOCALBOOT 0
@l:
@l:LABEL memtest
@l:MENU LABEL Speichertest
@l:KERNEL memtest
@l:APPEND foo
@l:
@l:LABEL minlinux
@l:MENU LABEL Minilinux
@l:KERNEL minilinux.bzi
@l:APPEND initrd=minilinux.dsk rw vga=791

@n:Die vollständige Konfigurationsdatei befindet sich auf der Heft-DVD. Bevor Sie den Start aus dem Netzwerk testen sollten Sie prüfen, ob der TFTP-Server Dateien korrekt ausliefert. Das machen Sie mit dem Kommandozeilenclient <I>tftp<I>:

@l:tftp 192.168.1.250

@n:In der TFTP-Shell können Sie nun eine Datei anfordern:

@l:get /pxelinux.cfg/default

@n:Wenn die Datei in weniger als einer Sekunde übertragen wird, können Sie den ersten Test mit einem "richtigen Client" wagen und den Speichertest oder das Minilinux aus dem Netzwerk booten. Weil das Bootmenü als DEFAULT <I>localboot<I> eingetragen hat, kann es für das gesamte Netzwerk aktiv bleiben -- achtet der Benutzer nicht auf das Bootmenu, wird nach 45 Sekunden von der Festplatte gestartet. Dennoch mag es wünschenswert sein, für einzelne Clients bestimmte Standardwerte zu setzen. Um dies zu gewährleisten sucht <I>pxelinux.0<I> zunächst nach einer Konfigurationsdatei, die nach der MAC-Adresse mit vorangestelltem "01" benannt ist, dann nach der in Hexadezimal-Code (!) umgerechneten IP-Adresse, anschließend nach den ersten 7, 6, 5 Ziffern dieser. Die hexadezimal kodierte IP-Adresse macht nur in Rechenzentren Sinn, in denen ganze Cluster mit gleichen Kerneln versorgt werden müssen. Wollen wir den in der DHCP-Konfiguration erwähnten Athlon 64 mit Hardwareadresse "00:13:d4:fd:eb:49" per Default von Festplatte booten, genügt als Konfigurationsdatei "01-00-13-d4-fd-eb-49":

@l:DEFAULT local
@l:PROMPT 0
@l:TIMEOUT 1
@l:
@l:LABEL local
@l:LOCALBOOT 0

@n:Analog ist die Konfiguration eines hypothetischen Thin-Client, der ohne Bootmenü immer den gleichen Kernel und die gleiche Initrd bekommt:

@l:DEFAULT thin
@l:PROMPT 0
@l:TIMEOUT 1
@l:
@l:LABEL thin
@l:KERNEL thinclient.bzi
@l:APPEND initrd=thinclient.dsk weitere parameter

@n:Soll für Wartungsarbeiten das umfangreiche Bootmenü geladen werden, genügt es, die Datei "01-00-13-d4-fd-eb-49" temporär nach "suspended-01-00-13-d4-fd-eb-49" zu verschieben und nach getaner Arbeit zurück.

@z:Fernsteuerinstallation

@n:Bereits die simple Kombination aus DHCP-Server, TFTP-Server und PXELINUX erlaubt vielfältige Einsatzmöglichkeiten: So ist es möglich, standardmäßig eine Konfigurationsdatei zu verwenden, die von Festplatte starten lässt und diese per Cronjob kurz vor Feierabend gegen eine auzutauschen, welche ein Minilinux zur Datensicherung (beispeilsweise Imaging per "ntfsclone") startet. Der Anwender muss nun nur seinen PC neu starten, um eine Datensicherung durchzuführen. Nach getaner Arbeit fährt das Minilinux den PC wieder herunter. Ein zweiter Cronjob am frühen morgen stellt wieder den Start von Festplatte als Default ein. Außerdem können dieser Konfiguration Sie bereits die Remote-Installation von openSUSE veranlassen. Die ist in zwei Modi möglich: Per VNC vom Schreibtisch des Administrators oder lokal am Arbeitsplatz-PC, der installiert werden soll. Bei openSUSE genügen Installationskernel und -Ramdisk von der DVD oder aus dem Bootverzeichnis, für das Beispiel haben wir diese nach "osuse32.bzi" (Kernel) und "osuse32.dsk" (ramdisk) kopiert. Alle Einstellungen zur Ferninstallation werden per Bootparameter vorgenommen, was in den folgenden Einträgen resultiert:

@l:LABEL osuse32
@l:MENU LABEL openSUSE Netinstall 32 Bit (lokal)
@l:KERNEL osuse32.bzi
@l:APPEND initrd=osuse32.dsk splash=silent showopts vga=791 install=serverpfad
@l:
@l:LABEL osu32vnc
@l:MENU LABEL openSUSE Netinstall 32 Bit (VNC)
@l:KERNEL osuse32.bzi
@l:APPEND initrd=osuse32.dsk splash=silent showopts vga=791 vnc=1 vncpassword=geheim1234 install=serverpfad

@n:Geringfügig mehr Aufwand ist für die Installation von Ubuntu aus dem Netz notwendig, da das Installationssystem auf einige zusätzliche, per TFTP angeforderte Dateien angewiesen ist. Immerhin bringen aktuelle Ubuntu-Versionen im Verzeichnis <I>netboot/386<I> eine komplette Beispielkonfiguration mit. Verschieben Sie die Datei <I>pxelinux.cfg/default<I> nach <I>pxelinux.cfg/ubuntu<I> und kopieren Sie dann den gesamten Inhalt von <I>netboot/386<I> nach <I>/tftpboot<I>. Sie können dann die Einträge für Ubuntu per Copy und Paste in Ihr PXE-Bootmenü übernehmen.

@z:Knoppix herangebeamt

@n:Für den Start kompletter Linux-Distributionen aus dem Netz genügt der TFTP-Server zur Datenübertragung nicht, stattdessen kommt in der Regel ein NFS-Server zum Einsatz, der das Wurzeldateisystem ausliefert. Auf die Details der Konfiguration von dünnen und dicken Clients werden wir in dieser Ausgabe noch nicht eingehen, wollen aber Knoppix als Ausblick verwenden, wie die Konfiguration aussehen kann. Dabei hilft der Knoppix Terminal-Server, der eine komplette TFTP-Boot-Umgebung erzeugt. Starten Sie Knoppix von CD oder DVD und rufen Sie im KDE-Menü "Knoppix | Dienste | Terminalserver" auf und konfigurieren Sie den Dienst mit einer großzügigen Anzahl unterstützter Netzwerkkarten. Wenn Sie Knoppix als Wartungssystem verwenden wollen, sollten Sie die Option "secure: Root-Zugang auf den Clients abschalten" deaktivieren. Sie können jetzt aus dem Verzeichnis <I>/tftpboot<I> den Kernel (<I>vmlinuz<I>), die modifizierte Ramdisk (<I>miniroot.gz<I>) "ernten" und auf Ihren regulären Bootserver kopieren. Wie der Eintrag für die Knoppix-PXE-Clients aussehen muss, zeigt ein Blick in <I>/tftpboot/pxelinux.cfg/default<I>.

@n:Auf dem Bootserver muss anschließend der Inhalt einer Knoppix-CD in ein Verzeichnis kopiert werden:

@l:rsync -avHP /cdrom/ /exports/knoppix/

@n:Dieses Verzeichnis geben Sie per NFS frei. Der passende Eintrag in der /etc/fstab lautet für das Netzwerk 192.168.1.250:

@l:/exports/knoppix 192.168.1.0/24(ro,no_root_squash)

@n:Auf diesen Pfad muss noch der Parameter "nfsroot" in Knoppix' PXELINUX-Konfiguration angepasst werden, damit das Live-Linux regulär im Netzwerk verfügbar ist. Starten Sie den Dienst "nfs-kernel-server" und probieren Sie den Start von Knoppix per PXE aus.

@z:Fazit

@n:PXE verhilft jedem Netz zu einer enormen Flexibilität. Die Vorteile des praktisch überall vorhandenen Netzwerkboots kommen nicht nur großen Firmen zu Gute, wo sie dem Admin lange Wege ersparen, es profitieren auch PC-Händler, die häufig mit Memtest oder Knoppix Diagnosen fahren müssen oder unser Testlabor, in dem häufig verschiedene Linux-Distributionen auf realer Hardware oder in einer VMware-Instanz benötigt werden. Im nächsten Heft erklären wir die Erweiterung des Prinzips auf plattenlose Clients, die auch ihr Root-Dateisystem aus dem Netzwerk beziehen.

(((BOX)))
((screen07_vmware.png))
@bu:Wie ein richtiges BIOS: Eine VMware im Bridge-Mode ist ideale Testumgebung

@xu:VMware als Testumgebung

@x:Beim Testen einer PXE-Konfiguration ist es äußerst lästig, ständig zwischen zwei Rechnern hin und her zu rennen. Deutlich komfortabler geht es mit virtuellen PCs wie VMware. Letztere bringt ein gewöhnliches Phoenix-BIOS mit und implementiert den vollständigen PXE-Standard. Um einen echten PC auch auch Link-Ebene zu simulieren, muss der Netzwerkmodus allerdings auf "Bridged" eingestellt sein. Die VMware erscheint dann mit einer automatisch generierten MAC-Adresse an der physisch im Rechner vorhandenen Netzwerkkarte. Den Start per PXE initiieren Sie durch einen Tastendruck "F12" oder "Esc" während das VMware-BIOS den Selbstttest durchführt. Die PXE-Boot-Funktion ist auch beim kostenlosen VMware-Player vorhanden. Für diesen haben wir eine Beispielkonfiguration auf DVD beigelegt, die auch ein maximal 16GB großes Festplattenimage enthält, auf das Sie per PXE Betriebssysteme installieren können.

(((BOX)))

@xu:Achtung: Feinheiten!

@x:Die LABELs in der PXELINUX-Konfigugarionsdatei dürfen maximal acht Zeichen lang sein. Wer besonders viele Einträge im Menü unterbringen muss, ist deshalb gut beraten, einfach durchzunummerieren. Bei der VNC-Installation von openSUSE muss das verwendete Passwort mindestens zehn Zeichen lang sein.

(((BOX)))

@xu:Auf DVD

@x:Sie finden folgende Dateien zum Artikel auf der DVD:

\1 tftpboot.tgz: Tarball mit dem kompletten Inhalt des Ordners "/tftpboot" unseres Testsystems. Sie können ihn in "/tftpboot" entpacken und als Ausgangspunkt für eigene Experimente Verwenden. Der Start von Memtest, des Mini-Linuxes und der Installation von openSUSE und Ubuntu sollte ohne Anpassungen funktionieren.

\1 dhcpd.conf: Minimale Konfigurationsdatei für den DHCP-Server

\1 pxevmware.tgz: VMware-Image für den Start per PXE und die Netzwerkinstallation eines Linux.

\1 syslinux-3.51.tar.bz2: Originaldateien von SYSLINUX und PXELINUX

\1 PDF-Dateien zur Konfiguration des verwandten Bootloaders EXTLINUX und zum Selbstbau eines Minilinuxes, das alleine aus der Initrd läuft

(((BOX)))

@xu:Drahtlos aus dem Netz booten?

@x:Noch geht reines PXE nur mit drahtgebundenen Netzen. Der Grund ist, dass für den DHCP-Request eine Verbindung auf Link-Ebene vorhanden sein muss, der beim WLAN die Assoziierung mit dem Accesspoint vorangeht. An einer PXE-kompatiblen Nachrüstung arbeitet das Etherbootprojekt (derzeitiger Name der Software Etherboot, demnächst gPXE), dessen kompatible Bootsoftware vielseitiger als die in Standard-PXE-ROMs enthaltene ist.

Eine einfache Alternative zum direkten Boot per WLAN sind WLAN-Brücken, die mehrere Ethernet-Segmente verbinden und die Authentifizierung und Assoziierung erledigen. In Unternehmen, in denen mobile Arbeitsplätze (im groß geratenen Rollcontainer) zum Einsatz kommen, dürfte diese Option auch hinsichtlich des so möglichen Zugriffs auf Fernwartungsfunktionen des BIOS sinnvoll sein. Einfache Brücken für ein bis vier Rechner sind ab 60 Euro erhältlich.

(((BOX, WWW)))

http://syslinux.zytor.com/
Die Syslinux-Familie stellt Bootloader für EXT2, ISOs und den Start aus dem Netzwerk zur Verfügung.

http://www.etherboot.org/
Bootet ein Rechner nicht per PXE kann mit Etherboot ein Diskettenimage mit einem PXE kompatiblen Bootloader erzeugt werden.

http://de.wikipedia.org/wiki/Preboot_Execution_Environment
Der Wikipedia-Eintrag beschreibt den Bootvorgang per PXE im Detail.




-------------- next part --------------
Zauberhaft gebootet

Per PXE Linux aus dem Netz starten

Wer h?ufig mit verschiedenen Rechnern hantiert, ab und zu mit Knoppix-CDs Daten retten muss oder einfach eine elegante Bootmethode f?r plattenlose Clients sucht, sollte sich mit dem PXE-Boot via Ethernet vertraut machen, das jeder moderne Rechner beherrscht. Linuxlife zeigt, wie der Bootloader PXELINUX k?nftig die Jongliererei mit CDs erspart.

Bereits in den sp?ten 1980ern waren Festplattenlose Terminals en Vogue: von einem Novell- oder Unix-Server mit einem simplen DOS versorgt dienten einfache PCs als Terminals an Kassen oder in Bibliotheken. Der gr??te Vorteil der zentralen Wartbarkeit wurde damals jedoch mit aufwendig herzustellenden Boot-EPROMs erkauft, die f?r jeden Rechner individuell zugeschnitten sein mussten. Das Verfahren geriet in den 1990ern wieder etwas ins Hintertreffen weil Windows eine lokale Festplatte erforderte. Mit dem Trend zum Thin-Client-Computing erlebte das Booten aus dem Netzwerk aber wieder eine Renaissance. Heutzutage haben praktisch alle Onboard-Netzwerk-Karten PXE-Funktionalit?t, welche das Brennen eines EPROMs erspart und dennoch den Start aus dem Netz erlaubt. Das Geheimnis: Bereits die PXE-Komponente des BIOS fordert via DHCP ihre Booteinstellungen an. So gen?gt auf Clientseite die Aktivierung von PXE in der Bootreihenfolge des BIOS. Dennoch ist der Start per PXE bislang nur in gro?en Rechenzentren (z.B. f?r die Rettungssysteme von Rootservern) und Firmennetzen, in denen der Admin auch aus der Ferne Betriebssysteme installieren m?chte, ?blich. Dabei bietet PXE auch im Heimnetz oder in kleinen Firmen ernsthafte Vorteile f?r Wartungs- und Installationsarbeiten.

Konfiguriert per DHCP

Da bei PXE keine M?glichkeit mehr existiert, eigene IP-Adresse und die Adressen und Masken von Bootserver, Nameserver und Gateway fix einzustellen, sondern diese Daten immer per DHCP angefragt werden, muss ein DHCP-Server im lokalen Netz vorhanden sein. Die "kleinen" DHCP-Daemonen der meisten DSL-Router sind f?r diese Aufgabe nicht geeignet, da Sie keine Vergabe von Bootdateien zulassen. Schalten Sie den DHCP-Server im DSL-Router deshalb zun?chst ab. Sie k?nnen sp?ter ausprobieren, ob bei gleicher MAC-IP-Adresstabelle Ihre Clients korrekt eine zweite Anfrage stellen, wenn sie die unvollst?ndige Antwort des Routers erhalten haben. Ist dies der Fall k?nnen Sie beide DHCP-Server parallel im Betrieb haben. Quasi-Standard ist der hochgradig konfigurierbare Server des Internet Software Consortiums, ISC-DHCP in der aktuellen Version 3.0. Unter Ubuntu ist er im Paket "dhcp3-server" vorhanden. 

Nach der Installation muss die Konfigurationsdatei "/etc/dhcp3/dhcpd.conf" angelegt/modifiziert werden. Unser Beispielserver residiert auf dem Host 192.168.1.250, Nameserver und Gateway sind eine unter 192.168.1.252 verortete FRITZbox. Den Adressbereich zwischen 192.168.180 und 192.168.1.199 haben wir f?r Clients vorgesehen, deren IP-Adresse egal ist. Damit wir unsere per SSH erreichbaren PCs immer sch?n unter der gleichen IP-Adresse wieder finden, vergeben wir fixe Zuordnungen zwischen MAC-Adresse und IP-Adresse. Auf die Option "file" f?r die Bootdatei gehen wir sp?ter n?her ein:

authoritative;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;

filename "pxelinux.0";

subnet 192.168.1.0 netmask 255.255.255.0 {
  option domain-name-servers 192.168.1.252;
  option routers 192.168.1.252;
  option domain-name "meinnetz.test";
  range 192.168.1.180 192.168.1.199;
  option subnet-mask 255.255.255.0;
  next-server 192.168.1.250;

  host amd64-test {
    hardware ethernet 00:13:d4:fd:eb:49;
    fixed-address 192.168.1.50;
  }

}

Wenn Sie jetzt den PC mit der angegebenen MAC-Adresse starten und im BIOS den Boot-Agent einstellen (oder ihn tempor?r beispielsweise mit F8 oder F11 ausw?hlen), wird dieser eine IP-Adresse und den Namen der Boot-Datei vom DHCP-Server anfordern und dies anzeigen. Er wird per TFTP versuchen, die Datei "pxelinux.0" anzufordern, aber irgendwann abbrechen und normal starten.

Bootdateien per TFTP

F?r die Auslieferung der Bootdateien kommt das "Trivial File Transfer Protocol" zum Einsatz. Es hat nicht viel mit seinem gro?en Bruder "FTP" gemeinsam au?er dass es zur ?bertragung von Dateien dient. Im Gegensatz zu FTP nutzt TFTP das verbindungslose UDP statt TCP. Was gegen?ber der vollst?ndigen NFS-Implementierung in der Firmware fr?her SPARCs als R?ckschritt erscheint, hat PXE erst m?glich gemacht: Der Code f?r TFTP ist kompakt, was dem Kostenargument entgegenkam. Auf dem Testsystem installierten wir den "Advanced TFTP Daemon" "atftp". Da wir beim Start per Meta-Daemon "inetd" auf Schwierigkeiten stie?en, veranlassten wir den Start als gew?hnlichen Daemon, der immer im Hintergrund l?uft. Hierf?r muss die Konfigurationsdatei "/etc/default/atftpd" angepasst werden. "OPTIONS=..." ist eine einizige Zeile:

USE_INETD=false
OPTIONS="--daemon --port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 192.168.1.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /tftpboot"

Die augenf?lligsten ?nderungen gegen?ber der vom System mitgebrachten Version dieser Datei ist die Deaktivierung des Inetd und die ?nderung der Multicast-Adresse auf das eigene Netz. Legen Sie das Verzeichnis "/tftpboot" und ein Unterverzeichnis "/tftpboot/pxelinux.cfg" an und achten Sie darauf, dass beide f?r normale Nutzer les- und betretbar sind (chmod 0755). In das Verzeichnis "/tftpboot" kopieren Sie den Bootloader "pxelinux.0" und das Bootmen? "menu.c32" (beide aus dem Syslinux-Tarball von "http://www.kernel.org/pub/linux/utils/boot/syslinux/"), sowie dem Speichertester Memtest86+ (von "http://www.memtest.org/"). Wir legten zudem Kernel und initiale Ramdisk des selbstgebauten Minilinunx aus dem letzten Heft hier ab. Beide Dateien finden Sie auf der Heft-DVD. Der Bootloader ben?tigt nun noch eine Konfigurationsdatei "/tftpboot/pxelinux.cfg/default". Deren Aufbau erinnert stark an die Isolinux-Konfiguration des Minilinux:

DEFAULT menu.c32
PROMPT 0
TIMEOUT 450

MENU TITLE Linux aus dem Netz

LABEL local
MENU LABEL Von Festplatte starten
MENU DEFAULT
LOCALBOOT 0

LABEL memtest
MENU LABEL Speichertest
KERNEL memtest
APPEND foo

LABEL minlinux
MENU LABEL Minilinux
KERNEL minilinux.bzi
APPEND initrd=minilinux.dsk rw vga=791

Die vollst?ndige Konfigurationsdatei befindet sich auf der Heft-DVD. Bevor Sie den Start aus dem Netzwerk testen sollten Sie pr?fen, ob der TFTP-Server Dateien korrekt ausliefert. Das machen Sie mit dem Kommandozeilenclient "tftp":

tftp 192.168.1.250

In der TFTP-Shell k?nnen Sie nun eine Datei anfordern:

get /pxelinux.cfg/default

Wenn die Datei in weniger als einer Sekunde ?bertragen wird, k?nnen Sie den ersten Test mit einem "richtigen Client" wagen und den Speichertest oder das Minilinux aus dem Netzwerk booten. Weil das Bootmen? als DEFAULT "localboot" eingetragen hat, kann es f?r das gesamte Netzwerk aktiv bleiben -- achtet der Benutzer nicht auf das Bootmenu, wird nach 45 Sekunden von der Festplatte gestartet. Dennoch mag es w?nschenswert sein, f?r einzelne Clients bestimmte Standardwerte zu setzen. Um dies zu gew?hrleisten sucht "pxelinux.0" zun?chst nach einer Konfigurationsdatei, die nach der MAC-Adresse mit vorangestelltem "01" benannt ist, dann nach der in Hexadezimal-Code (!) umgerechneten IP-Adresse, anschlie?end nach den ersten 7, 6, 5 Ziffern dieser. Die hexadezimal kodierte IP-Adresse macht nur in Rechenzentren Sinn, in denen ganze Cluster mit gleichen Kerneln versorgt werden m?ssen. Wollen wir den in der DHCP-Konfiguration erw?hnten Athlon 64 mit Hardwareadresse "00:13:d4:fd:eb:49" per Default von Festplatte booten, gen?gt als Konfigurationsdatei "01-00-13-d4-fd-eb-49":

DEFAULT local
PROMPT 0
TIMEOUT 1

LABEL local
LOCALBOOT 0

Analog ist die Konfiguration eines hypothetischen Thin-Client, der ohne Bootmen? immer den gleichen Kernel und die gleiche Initrd bekommt:

DEFAULT thin
PROMPT 0
TIMEOUT 1

LABEL thin
KERNEL thinclient.bzi
APPEND initrd=thinclient.dsk weitere parameter

Soll f?r Wartungsarbeiten das umfangreiche Bootmen? geladen werden, gen?gt es, die Datei "01-00-13-d4-fd-eb-49" tempor?r nach "suspended-01-00-13-d4-fd-eb-49" zu verschieben und nach getaner Arbeit zur?ck.

Fernsteuerinstallation

Bereits die simple Kombination aus DHCP-Server, TFTP-Server und PXELINUX erlaubt vielf?ltige Einsatzm?glichkeiten: So ist es m?glich, standardm??ig eine Konfigurationsdatei zu verwenden, die von Festplatte starten l?sst und diese per Cronjob kurz vor Feierabend gegen eine auzutauschen, welche ein Minilinux zur Datensicherung (beispeilsweise Imaging per "ntfsclone") startet. Der Anwender muss nun nur seinen PC neu starten, um eine Datensicherung durchzuf?hren. Nach getaner Arbeit f?hrt das Minilinux den PC wieder herunter. Ein zweiter Cronjob am fr?hen morgen stellt wieder den Start von Festplatte als Default ein. Au?erdem k?nnen dieser Konfiguration Sie bereits die Remote-Installation von openSUSE veranlassen. Die ist in zwei Modi m?glich: Per VNC vom Schreibtisch des Administrators oder lokal am Arbeitsplatz-PC, der installiert werden soll. Bei openSUSE gen?gen Installationskernel und -Ramdisk von der DVD oder aus dem Bootverzeichnis, f?r das Beispiel haben wir diese nach "osuse32.bzi" (Kernel) und "osuse32.dsk" (ramdisk) kopiert. Alle Einstellungen zur Ferninstallation werden per Bootparameter vorgenommen, was in den folgenden Eintr?gen resultiert:

LABEL osuse32
MENU LABEL openSUSE Netinstall 32 Bit (lokal)
KERNEL osuse32.bzi
APPEND initrd=osuse32.dsk splash=silent showopts vga=791 install=serverpfad

LABEL osu32vnc
MENU LABEL openSUSE Netinstall 32 Bit (VNC)
KERNEL osuse32.bzi
APPEND initrd=osuse32.dsk splash=silent showopts vga=791 vnc=1 vncpassword=geheim1234 install=serverpfad

Geringf?gig mehr Aufwand ist f?r die Installation von Ubuntu aus dem Netz notwendig, da das Installationssystem auf einige zus?tzliche, per TFTP angeforderte Dateien angewiesen ist. Immerhin bringen aktuelle Ubuntu-Versionen im Verzeichnis "netboot/386" eine komplette Beispielkonfiguration mit. Verschieben Sie die Datei "pxelinux.cfg/default" nach "pxelinux.cfg/ubuntu" und kopieren Sie dann den gesamten Inhalt von "netboot/386" nach "/tftpboot". Sie k?nnen dann die Eintr?ge f?r Ubuntu per Copy und Paste in Ihr PXE-Bootmen? ?bernehmen.

Knoppix herangebeamt

F?r den Start kompletter Linux-Distributionen aus dem Netz gen?gt der TFTP-Server zur Daten?bertragung nicht, stattdessen kommt in der Regel ein NFS-Server zum Einsatz, der das Wurzeldateisystem ausliefert. Auf die Details der Konfiguration von d?nnen und dicken Clients werden wir in dieser Ausgabe noch nicht eingehen, wollen aber Knoppix als Ausblick verwenden, wie die Konfiguration aussehen kann. Dabei hilft der Knoppix Terminal-Server, der eine komplette TFTP-Boot-Umgebung erzeugt. Starten Sie Knoppix von CD oder DVD und rufen Sie im KDE-Men? "Knoppix | Dienste | Terminalserver" auf und konfigurieren Sie den Dienst mit einer gro?z?gigen Anzahl unterst?tzter Netzwerkkarten. Wenn Sie Knoppix als Wartungssystem verwenden wollen, sollten Sie die Option "secure: Root-Zugang auf den Clients abschalten" deaktivieren. Sie k?nnen jetzt aus dem Verzeichnis "/tftpboot" den Kernel ("vmlinuz"), die modifizierte Ramdisk ("miniroot.gz") "ernten" und auf Ihren regul?ren Bootserver kopieren. Wie der Eintrag f?r die Knoppix-PXE-Clients aussehen muss, zeigt ein Blick in "/tftpboot/pxelinux.cfg/default".

Auf dem Bootserver muss anschlie?end der Inhalt einer Knoppix-CD in ein Verzeichnis kopiert werden:

rsync -avHP /cdrom/ /exports/knoppix/

Dieses Verzeichnis geben Sie per NFS frei. Der passende Eintrag in der /etc/fstab lautet f?r das Netzwerk 192.168.1.250:

/exports/knoppix 192.168.1.0/24(ro,no_root_squash)

Auf diesen Pfad muss noch der Parameter "nfsroot" in Knoppix' PXELINUX-Konfiguration angepasst werden, damit das Live-Linux regul?r im Netzwerk verf?gbar ist. Starten Sie den Dienst "nfs-kernel-server" und probieren Sie den Start von Knoppix per PXE aus.

Fazit

PXE verhilft jedem Netz zu einer enormen Flexibilit?t. Die Vorteile des praktisch ?berall vorhandenen Netzwerkboots kommen nicht nur gro?en Firmen zu Gute, wo sie dem Admin lange Wege ersparen, es profitieren auch PC-H?ndler, die h?ufig mit Memtest oder Knoppix Diagnosen fahren m?ssen oder unser Testlabor, in dem h?ufig verschiedene Linux-Distributionen auf realer Hardware oder in einer VMware-Instanz ben?tigt werden. Im n?chsten Heft erkl?ren wir die Erweiterung des Prinzips auf plattenlose Clients, die auch ihr Root-Dateisystem aus dem Netzwerk beziehen.








-------------- next part --------------
VMware als Testumgebung

Beim Testen einer PXE-Konfiguration ist es ?u?erst l?stig, st?ndig zwischen zwei Rechnern hin und her zu rennen. Deutlich komfortabler geht es mit virtuellen PCs wie VMware. Letztere bringt ein gew?hnliches Phoenix-BIOS mit und implementiert den vollst?ndigen PXE-Standard. Um einen echten PC auch auch Link-Ebene zu simulieren, muss der Netzwerkmodus allerdings auf "Bridged" eingestellt sein. Die VMware erscheint dann mit einer automatisch generierten MAC-Adresse an der physisch im Rechner vorhandenen Netzwerkkarte. Den Start per PXE initiieren Sie durch einen Tastendruck "F12" oder "Esc" w?hrend das VMware-BIOS den Selbstttest durchf?hrt. Die PXE-Boot-Funktion ist auch beim kostenlosen VMware-Player vorhanden. F?r diesen haben wir eine Beispielkonfiguration auf DVD beigelegt, die auch ein maximal 16GB gro?es Festplattenimage enth?lt, auf das Sie per PXE Betriebssysteme installieren k?nnen.








-------------- next part --------------
Achtung: Feinheiten!

Die LABELs in der PXELINUX-Konfigugarionsdatei d?rfen maximal acht Zeichen lang sein. Wer besonders viele Eintr?ge im Men? unterbringen muss, ist deshalb gut beraten, einfach durchzunummerieren. Bei der VNC-Installation von openSUSE muss das verwendete Passwort mindestens zehn Zeichen lang sein.





-------------- next part --------------
Auf DVD

Sie finden folgende Dateien zum Artikel auf der DVD:

* tftpboot.tgz: Tarball mit dem kompletten Inhalt des Ordners "/tftpboot" unseres Testsystems. Sie k?nnen ihn in "/tftpboot" entpacken und als Ausgangspunkt f?r eigene Experimente Verwenden. Der Start von Memtest, des Mini-Linuxes und der Installation von openSUSE und Ubuntu sollte ohne Anpassungen funktionieren.

* dhcpd.conf: Minimale Konfigurationsdatei f?r den DHCP-Server

* pxevmware.tgz: VMware-Image f?r den Start per PXE und die Netzwerkinstallation eines Linux.

* syslinux-3.51.tar.bz2: Originaldateien von SYSLINUX und PXELINUX

* PDF-Dateien zur Konfiguration des verwandten Bootloaders EXTLINUX und zum Selbstbau eines Minilinuxes, das alleine aus der Initrd l?uft





-------------- next part --------------
Drahtlos aus dem Netz booten?

Noch geht reines PXE nur mit drahtgebundenen Netzen. Der Grund ist, dass f?r den DHCP-Request eine Verbindung auf Link-Ebene vorhanden sein muss, der beim WLAN die Assoziierung mit dem Accesspoint vorangeht. An einer PXE-kompatiblen Nachr?stung arbeitet das Etherbootprojekt (derzeitiger Name der Software Etherboot, demn?chst gPXE), dessen kompatible Bootsoftware vielseitiger als die in Standard-PXE-ROMs enthaltene ist.

Eine einfache Alternative zum direkten Boot per WLAN sind WLAN-Br?cken, die mehrere Ethernet-Segmente verbinden und die Authentifizierung und Assoziierung erledigen. In Unternehmen, in denen mobile Arbeitspl?tze (im gro? geratenen Rollcontainer) zum Einsatz kommen, d?rfte diese Option auch hinsichtlich des so m?glichen Zugriffs auf Fernwartungsfunktionen des BIOS sinnvoll sein. Einfache Br?cken f?r ein bis vier Rechner sind ab 60 Euro erh?ltlich.




-------------- next part --------------
http://syslinux.zytor.com/
Die Syslinux-Familie stellt Bootloader für EXT2, ISOs und den Start aus dem Netzwerk zur Verfügung.

http://www.etherboot.org/
Bootet ein Rechner nicht per PXE kann mit Etherboot ein Diskettenimage mit einem PXE kompatiblen Bootloader erzeugt werden.

http://de.wikipedia.org/wiki/Preboot_Execution_Environment
Der Wikipedia-Eintrag beschreibt den Bootvorgang per PXE im Detail.




-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen00_tftp.png
Type: image/png
Size: 6452 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20140203/66510bfe/attachment-0008.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen01_bios.png
Type: image/png
Size: 11983 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20140203/66510bfe/attachment-0009.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen02_baton.png
Type: image/png
Size: 12970 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20140203/66510bfe/attachment-0010.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen03_baton.png
Type: image/png
Size: 20469 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20140203/66510bfe/attachment-0011.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen04_menu.png
Type: image/png
Size: 13791 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20140203/66510bfe/attachment-0012.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen05_suse.png
Type: image/png
Size: 19208 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20140203/66510bfe/attachment-0013.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen06_suse.png
Type: image/png
Size: 79654 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20140203/66510bfe/attachment-0014.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: screen07_vmware.png
Type: image/png
Size: 19696 bytes
Desc: not available
URL: <http://www.zytor.com/pipermail/syslinux/attachments/20140203/66510bfe/attachment-0015.png>


More information about the Syslinux mailing list