aptosid über ein netzwerk booten (network block device - nbd)

Warnung: dnsmasq inkludiert einen dhcp-Server, der mit einem bereits auf dem System existierenden dhcp-Server (Ihr Router kann einen zur Verfügung stellen) in Konflikt stehen kann. Die sicherste Lösung ist immer, in einem Netzwerk nur einen dhcp-Server zu nutzen. Dies bedeutet, dass jeder weitere dhcp-Server im gleichen Netzwerk stillgelegt werden soll. Die weiter unten beschriebenen dnsmasq-Proxy-Optionen sollten es ermöglichen, mit jedem weiteren dhcp-Server im Netzwerk zu koexistieren. Sie sollten dies nicht durchführen, falls Sie nicht selbst der Administrator des Netzwerks sind, und bereit sein, mit unvorhergesehenen Folgen konfrontiert zu sein.

Grundlagen

Das Booten über ein Netzwerk benötigt zunächst einen Computer, der fähig ist, über ein Netzwerk gestartet zu werden und der über ein bestehendes Netzwerk mit einem Computer verbunden werden kann, welcher die Netzwerk-Boot-Dienste anbietet.

Dies sollte nicht in einem Netzwerk durchgeführt werden, das Sie nicht kontrollieren (z.B. an Ihrem Arbeitsplatz), sondern nur in einem Netzwerk, das Sie selbst administrieren oder für das Sie vom Netzwerkadministrator die benötigten Rechte erhalten haben. Falls Sie Ko-Administrator in einem größeren Netzwerk sind, studieren Sie alle Optionen von dnsmasq (Beschränkung der Schnittstellen, die abgehört werden, oder der Clients, die antworten sollen), um die Auswirkungen Ihrer Einstellungen auf das Netzwerk so gering wie möglich zu halten.

Voraussetzungen

Eine aptosid.iso 2009-04 (oder neuer), und sobald diese gebootet ist, dient sie als Netzwerk-Boot-Server. Die Anweisungen sollten für jeden aktuellen aptosid- oder Debian-Sid-Computer gültig sein und alle Informationen enthalten, die benötigt werden, um sie auf anderen Systemen anzuwenden (Linux ist vorausgesetzt, um nbd-Geräte ansprechen zu können).

dnsmasq wird benötigt, um den Bootvorgang initiieren zu können.

Installation
apt-get install nbd-server dnsmasq

Aufsetzen eines nbd-Servers

Vorausgesetzt die iso ist unter /dev/scd0 zu finden (bei einem Boot von einer CD, ansonsten wird der Pfad zur gegebenen Datei oder zum Gerät gesetzt), kann eine Konfigurationsdatei für einen nbd-Server mit dem Namen nbd-aptosid.conf erstellt werden. Diese beinhaltet eine Sektion namens aptosid-iso, um die CD zu exportieren. Dies erfolgt mit diesem Befehl:

echo '[generic]' > nbd-aptosid.conf
nbd-server 0.0.0.0:10809 /dev/scd0 -o aptosid-iso >> nbd-aptosid.conf

Der Header "generic" wird immer benötigt. Falls Sie jedoch einen automatisch funktionierenden nbd-Server auf einem realen System aufsetzen wollen, sollte stattdessen eine Datei /etc/nbd-server.conf erstellt werden. Um alle Optionen für nbd-Server kennenzulernen, lesen Sie bitte man nbd-server.

Um den Server als normaler Nutzer und ohne Aufsetzen von /etc/nbd-server.conf zu starten, kann dieser Befehl ausgeführt werden:

nbd-server -C nbd-aptosid.conf

Das Ziel des nbd-Servers muss keine ISO oder CD/DVD/USB-Stick sein, es muss nur eine geeignete Dateisystem-Abbilddatei haben.

dnsmasq

Das folgende Beispiel einer funktionierenden Konfiguration geht davon aus, dass ein einfaches Netzwerk installiert ist, in dem Ihr Computer eine Ethernet-Verbindung besitzt, die via DHCP von einem anderen Computer angesprochen wird und welche die Netzwerk-Boot-Clients nutzen können, um deren Schnittstellen via DHCP angesprochen zu haben.

Die wichtigsten Optionen für dnsmasq, um aptosid über ein Netzwerk zu booten, sind die Bestimmung des Pfads für den tftp-Server und die Konfigurationsdatei, um von diesem Ort aus booten zu können.

Zunächst wird ein für das Booten notwendiges tftp-Verzeichnis in /home/ erstellt (der Ort ist beliebig, Sie können dieses Verzeichnis erstellen, wo Sie wollen). Der Pfad ist nun /home/tftp.

Als nächstes wir die Datei pxe-aptosid.conf in $HOME erstellt:

dhcp-range=0.0.0.0,proxy
pxe-service=x86PC, "boot linux", pxelinux
enable-tftp
tftp-root=/home/tftp
tftp-secure

Wenn ein DHCP-Proxy verwendet wird, muss ein pxe-Menü mit pxelinux als einzigen Eintrag zur Verfügung gestellt werden, damit das System automatisch gestartet wird. Dafür sorgt die Zeile mit dem Eintrag "pxe-service" in obigem Beispiel.

Als root wird die neu erstellte Datei pxe-aptosid.conf nach /etc/dnsmasq.d/ verschoben:

su
mv pxe-aptosid.conf /etc/dnsmasq.d/

Anmerkung: Für ein Netzwerk (z.B. 192.168.0.*) ohne DHCP-Server können die ersten beiden Zeilen so aussehen:

dhcp-range=192.168.0.100,192.168.0.199,1h
dhcp-boot=pxelinux.0

Dies vergibt IP-Adressen von 192.168.0.100 bis 192.168.0.199 mit einer Lease-Time von einer Stunde und den Dateinamen, um nur pxelinux.0 als Teil der DHCP-Anfrage laufen zu lassen (falls der Proxy benutzt wird, wird nur ein pxe-Menüpunkt mit dem Eintrag pxlinux gesetzt, der dann automatisch startet). Diese Vorgehensweise setzt wahrscheinlich das Netzwerk nicht wie gewünscht auf, wenn der dnsmasq-Server nicht gleichzeitig DNS-Server und Gateway für die Boot-Clients ist.

Um die neue Datei zu aktivieren, muss die Zeile conf-dir=/etc/dnsmasq.d am Ende der Datei /etc/dnsmasq.conf freigeschaltet (keine Raute # am Zeilenbeginn) und dnsmasq neu gestartet werden.

dnsmasq besitzt sehr viele Optionen und kann sowohl als DNS-Server wie auch als DHCP-, PXE- und TFTP-Server dienen. Obige Erläuterungen sind nur Minimalangaben, um pxelinux mit gfxboot zu nutzen, um aptosid zu booten.

tftp

tftp ist das Netzwerkäquivalent des Bootverzeichnisses. Um das Beispielverzeichnis /home/tftp zu nutzen, muss es "bevölkert" werden. Vorausgesetzt, die CD-ROM ist unter /fll/scd0 eingebunden:

cp /fll/scd0/boot/isolinux/* /home/tftp
mkdir /home/tftp/pxelinux.cfg
mv /home/tftp/isolinux.cfg /home/tftp/pxelinux.cfg/default
mkdir /home/tftp/boot
cp /fll/scd0/boot/vmlin* /fll/scd0/boot/initr* /fll/scd0/boot/memtest* /home/tftp/boot/
cp /usr/lib/syslinux/pxelinux.0 /home/tftp/
# required for the tftp-secure option to dnsmasq
chown -R dnsmasq.dnsmasq /home/tftp/*

Nun können die Boot-Optionen unter /home/tftp in den Dateien pxelinux.cfg/default und gfxboot.cfg nach Belieben bearbeitet werden.

Im besonderen wird vorgeschlagen, dass in der Sektion [install] folgende Parameter auf die angegebenen Werte gesetzt wird: install= auf install=nbd, install.nbd.server auf die IP des Netzwerk-Servers und install.nbd.port auf den Namen der NBD-Export-Sektion, zum Beispiel aptosid-iso (NBD-Exporte besitzen eher Namen als nur Port-Nummern).

Auch kann das F3-Menü gänzlich deaktiviert und die Kernel-Befehlszeile mit einem Befehl ähnlich diesem ausgestattet werden:

fromhd=/dev/nbd0 root=/dev/nbd0 nbdroot=192.168.1.23,aptosid-iso nonetwork
toram Boot-Code

Falls toram den Bootoptionen hinzugefügt wird, geben Computer mit genügend RAM den Server frei, sobald sobald die Datei ins RAM kopiert ist. Computer ohne ausreichenden RAM booten normal. Mindestvoraussetzung für toram sind 1GB RAM, empfohlen sind 2GB oder mehr.

Booten über das Netzwerk

Stellen Sie sicher, dass der Client-PC die BIOS-Option Boot from Network aktiviert hat.

Wenn das BIOS ein Booten via Netzwerk unterstützt und der Computer mit dem Netzwerkserver (aptosid-Kernel mit Unterstützung von initrd.img) verbunden ist, sollte die Netzwerkkarte aptosid über das Netzerk booten können.

Einige Netzwerkkarten können nicht freie Firmeware benötigen. In diesem Falle muss das initrd-Abbild neu gebaut werden, um die Firmware einzugliedern.

Page last revised 11/06/2011 1305 UTC