Aufmacher

System getankt

Live-System über Netzwerk booten

01.02.2008
Via PXE lassen sich auch Live-Systeme booten: Sie schalten einen plattenlosen Rechner einfach ein und er holt sein komplettes OS beim Server ab.

Vor zwei Ausgaben [1] beschrieben wir, wie Sie ein System auf einem Rechner installieren, der kein CD- oder DVD-Laufwerk besitzt. Die Client-Rechner müssen dazu lediglich in der Lage sein, über PXE zu booten. Das stellen Sie gewöhnlich im BIOS ein. Schalten Sie den Rechner ein, sucht er im Netzwerk nach dem PXE-Server und tankt dort sein System.

Auf dem Server läuft die eigentliche Show ab. Auf ihm richten Sie einen DHCP-Server ein, der IP-Adressen an die Clients verteilt. Zusätzlich installieren Sie einen TFTP-Server, der über ein spezielles Protokoll den Linux-Kernel (linux oder vmlinuz) und ein komprimiertes Dateisystem (die Initial Ramdisk initrd oder initrd.gz) an die Clients schickt. Diese laden den Kernel, der wiederum lädt die Initial Ramdisk. Im besagten Artikel installiert der Client-Rechner dann die komplette Distribution über das Internet per FTP oder HTTP.

Diesmal läuft das etwas anders: Die Clients sollen über das Netzwerk ein komplettes Live-System in den Arbeitsspeicher laden (Abbildung 1). Am Setting verändert sich im Vergleich zum letzten Mal – zumindest unter Ubuntu – nicht viel, bei OpenSuse sieht das schon anders aus. Wir gehen aber davon aus, dass sich die nötigen PXE-Dateien bereits im Verzeichnis /var/lib/tftpboot befinden. Um einen leichten Einstieg zu bieten, beschreiben wir zunächst, wie Sie Ubuntu 7.04 oder 7.10 fernbooten, dann soll es um Kiwi und OpenSuse gehen.

Abbildung 1: Schema des PXE-Boots eines Live-Systems: Der blaue Pfeil steht für das via NFS erreichbare Root-System.

Ubuntu Live-System booten

In beiden Fällen liefert ein aktuelles Ubuntu 7.10 die PXE-Images aus. Wollen Sie OpenSuse als PXE-Server einsetzen, müssen Sie auf Abweichungen in der Konfiguration achten, die der bereits erwähnte Artikel [1] ebenfalls anspricht.

Um Ubuntu auszuliefern, brauchen Sie zunächst eine Live-Distribution von Ubuntu 7.10 oder Ubuntu 7.04 (etwa unter [2]). Laden Sie sie über FTP oder Bittorrent herunter und speichern Sie das Image in Ihrem Home-Verzeichnis. Dann spielen Sie die Pakete dhcp3-server, tftpd-hpa sowie nfs-kernel-server ein und passen die Konfigurationsdateien /etc/default/tftpd-hpa und /etc/dhcp3/dhcpd.conf so an, wie im Artikel [1] erwähnt.

Im Unterschied zum letzten Artikel bietet der Server hier kein Netboot-Image an, sondern erlaubt via NFS den Zugriff auf die Dateien der Live-CD. Dafür muss der NFS-Server das Verzeichnis freigeben, in dem sich diese Dateien (die wir als Root-System bezeichnen) befinden. Im Beispiel hängen Sie die Live-CD in das Verzeichnis /var/lib/image ein. Angenommen, die Live-CD liegt nur in Form eines ISO-Images vor, "loopmounten" Sie das Image, um auf die darin enthaltenen Files zuzugreifen:

$ sudo mkdir /var/lib/image
$ sudo mount -o loop /Pfad/zum/Image.iso /var/lib/image

Auf diesem Weg hängt Linux das heruntergeladene Image wie eine herkömmliche CD in das Verzeichnis ein. Ein ls /var/lib/image zeigt Ihnen die zuvor noch im ISO eingemauerten Inhalte an (Abbildung 2). Im nächsten Schritte öffnen Sie mit administrativen Rechten die Datei /etc/exports und ergänzen sie um folgenden Eintrag:

/var/lib/image/ *(rw,no_root_squash,sync)

Anschließend starten Sie den NFS-Server über sudo /etc/init.d/nfs-kernel-server force-reload neu. Er bietet nun das Verzeichnis /var/lib/image mitsamt der gemounteten Live-CD als neuen Exportartikel an.

Abbildung 2: Wenn Sie das ISO-Image der Ubuntu-Live-CD in das Verzeichnis /var/lib/image via Loopback mounten, erscheinen die Inhalte wie bei einer gewöhnlichen Live-CD.

Meldet sich ein Client via PXE übers Netzwerk, liefert der Server bei Ubuntu ihm gewöhnlich die Dateien initrd.gz und vmlinuz aus. Damit das geht, kopieren Sie beide Dateien von der eben gemounteten ISO-Datei nach /var/lib/tftpboot.

$ sudo cp /var/lib/image/casper/initrd.gz /var/lib/tftpboot
$ sudo cp /var/lib/image/casper/vmlinuz /var/lib/tftpboot

Die angemeldeten Clients suchen zuerst in der Datei /var/lib/tftpboot/pxelinux.cfg/default nach den beiden Dateien. Öffnen Sie diese also mit Root-Rechten und übertragen Sie die Zeilen aus Listing 1.

Listing 1
DEFAULT  neu
LABEL neu
kernel vmlinuz
append initrd=initrd.gz boot=casper netboot=nfs nfsroot=192.168.33.1:/var/lib/image –
PROMPT 1
TIMEOUT 100

Die Datei können Sie beliebig anpassen, um etwa mehrere PXE-Systeme anzubieten. Hinter nfsroot tragen Sie die IP-Adresse des PXE-Servers ein, der dazu demgemäß eine feste IP-Adresse haben muss.

Nun steht die Konfiguration: Der DHCP-Server läuft, der NFS-Server exportiert fleißig – fehlt nur noch der TFTP-Server. Bearbeiten Sie die Datei /etc/default/tftpd-hpa wie im Artikel [1] beschrieben und starten Sie den Server über sudo /etc/init.d/tftpd-hpa start.Hängen Sie nun einen Client an das Netzwerk, sollte er ein Ubuntu-Live-System booten, wenn Sie die Boot-Reihenfolge ändern und beim Boot-Prompt neu eingeben (Abbildung 3).

Abbildung 3: Nach dem Boot des PXE-Systems erscheint ein Boot-Prompt. Hier geben Sie neu ein, um das Live-System von Ubuntu zu booten.

TIPP

Findet der Client beim Booten den TFTP-Server nicht, stoppen Sie diesen über sudo /etc/init.d/tftpd-hpa stop und geben ps aux | grep inet ein. Läuft dort ein Prozess, der inet im Namen trägt, killen Sie ihn über sudo kill PID und starten Sie den TFTP-Server neu.

OpenSuse 10.3

Etwas anders läuft es, wenn Sie ein Live-System von OpenSuse booten wollen. Dazu müssen Sie zunächst über ein System namens Kiwi die passenden Images erstellen, wozu Sie wiederum ein installiertes OpenSuse 10.3 benötigen. Hintergrundinformationen zu Kiwi finden Sie unter anderem in Ausgabe 01/08 von LinuxUser ([3],[4]).

Starten Sie YaST und binden das TOOLS-Repository von OpenSuse.org mit ein, indem Sie auf der Konsole folgenden Bandwurm eingeben:

# zypper sa http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_10.3/ Tools

Zuvor müssen Sie eventuell das Paket zypper einspielen. Dann installieren Sie die Pakete kiwi, kiwi-desc-netboot, kiwi-desc-misc und kiwi-desc-livesystem. Achten Sie darauf, genügend Platz auf der Festplatte zu haben: Kiwi baut nun die Initrd, den Kernel und das Root-System für das neue System. Desweiteren brauchen Sie auch eine OpenSuse-10.3-DVD oder ein DVD-ISO-Image. Im zweiten Fall hängen Sie das Image mit Root-Rechten per Loopmount ein, etwa über:

# mount -o loop /home/Benutzer/OpenSuse-10.3-DVD.iso /mnt

Im ersten Fall mountet OpenSuse die DVD ohnehin automatisch und hängt sie zum Beispiel unter /media/SU1030.001 ein. Geben Sie mount auf der Konsole ein, um den Mountpunkt zu erfahren. Von dieser DVD bedient sich Kiwi dann, um das neue Live-System zu bauen.

Als nächstes bearbeiten Sie eine XML-Datei, aus der Kiwi erfährt, welche Pakete und Treiber es in das Live-System einbauen soll. Dazu starten Sie als root einen Editor und öffnen die Datei /usr/share/kiwi/image/ctso-minimal-suse-10.3/config.xml, um ein minimales OpenSuse-System ohne grafische Oberfläche zu erzeugen. Wollen Sie ein System mit grafischer Oberfläche nutzen, wählen Sie die Config-Datei /usr/share/kiwi/image/ctso-suse-10.3/config.xml.

Suchen Sie die Zeile <packagemanager> und ersetzen Sie dort smart durch zypper, denn im Test machte der Paketmanager Smart Probleme. Dann müssen Sie Kiwi noch mitteilen, wo es seine Pakete suchen soll. Das ist dort, wo Sie die DVD eingehängt haben, zum Beispiel unter /mnt oder /media/SU1030.001. Tragen Sie den korrekten Pfad bei den Tags <repository type> ein oder ergänzen Sie alternativ ein Online-Repository wie es Listing 2 zeigt.

Listing 2
<repository type="yast2">
        <source path="http://download.opensuse.org/distribution/10.3/repo/oss/"/>
</repository>
<repository type="yast2">
        <source path="http://download.opensuse.org/distribution/10.3/repo/non-oss/"/>
</repository>

Im Abschnitt <preferences> sollte zudem folgende Zeile stehen:

<type filesystem="ext3" boot="netboot/suse-10.3">pxe</type>

Nun ist es an der Zeit, die zum Bauen nötigen Pakete einzusammeln. Speichern Sie die config.xml und geben Sie auf der Konsole mit Root-Rechten folgende Zeile ein:

# kiwi --prepare /usr/share/kiwi/image/ctso-minimal-suse-10.3 --root /tmp/kiwi_tmp --logfile terminal

Vorher legen Sie das Verzeichnis /tmp/kiwi_tmp an. Wollen Sie nicht das Minimalsystem, müssen Sie entsprechend das Image ctso-suse-10.3 angeben. Zusätzlich ergänzen Sie die Zeile um --add-profile KDE oder --add-profile GNOME, um den entsprechenden Desktop zu wählen. Kiwi sammelt nun die nötigen Pakete ein, überprüft die Abhängigkeiten und schließt mit der Meldung KIWI exited successfully. Das dauert eine Weile, dann folgt ein weiterer Schritt:

kiwi --create /tmp/kiwi_tmp --type pxe -d /tmp/kiwi_neu --logfile terminal

Kiwi baut mit Hilfe der eben gesammelten Dateien die nötigen Images inklusive der Initial Ramdisk und des Kernels – auch das braucht seine Zeit. Am Ende erhalten Sie mehrere Dateien, die Sie im Verzeichnis /tmp/kiwi_neu finden (Abbildung 4). Diese brennen Sie auf eine Daten-CD/DVD oder kopieren Sie via SSH auf den PXE-Server, also auf das Ubuntu-System.

Abbildung 4: Unter OpenSuse erstellt Kiwi die nötigen Dateien für den PXE-Server. Die kommen dann in die Verzeichnisse /var/lib/tftpboot und /var/lib/image.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

title_2014_09

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...