Booten via Netzwerk

19.05.2004 von STEFAN RUBNER 
Ob zentrale Wartung der Clients, Remote-Backup oder Start eines Rescue-OS - das Booten eines PCs via LAN ist in vielen Fällen hilfreich. Wie das unter Windows und Linux funktioniert, erläutert dieser Artikel.

Falls Sie einen Desktop-Rechner jüngeren Baujahrs oder ein Notebook besitzen, sind Sie beim Stöbern in den BIOS-Einstellungen vielleicht schon mal über den Eintrag "LAN" unter Boot-Optionen gestolpert. Allerdings: Wenn Sie diese Einstellung aktivieren, tut sich recht wenig. Zwar erscheinen ein paar zusätzliche Zeilen während des Bootvorgangs, aber das war es dann auch schon. Offensichtlich fehlen noch ein oder zwei Dinge, ehe sich ein Rechner erfolgreich über die Netzwerkkarte booten lässt.

Bevor wir uns diesen Details widmen, zunächst eine Antwort auf die Frage, wozu das Booten via LAN-Adapter überhaupt eingesetzt werden kann. Ein augenfälliges Einsatzgebiet sind Umgebungen, in denen die einzelnen Anwender eine genau vordefinierte Arbeitsumgebung erhalten sollen. Die Arbeitsstationen werden quasi zu Terminals umfunktioniert, lokale Laufwerke können entfallen.

Eine andere Nutzung stellt die Sicherung lokaler Datenträger dar (beispielsweise mithilfe von Ghost oder Drive Image) sowie die Untersuchung auf Virenbefall ohne Start des lokal installierten Betriebssystems. Spätestens wenn das Betriebssystem eines Subnotebooks ohne Floppy oder anderes bootbares Wechselmedium die Arbeit verweigert, weiß man es zu schätzen, wenn per Remote-Boot wenigstens noch eine Sicherung der Daten durchzuführen ist.

Dieser Artikel stammt von tecCHANNEL-Leser Stefan Rubner. Der freiberufliche IT-Experte muss des Öfteren Lösungen für Probleme im Netzwerk entwickeln und umsetzen, die auch für andere tecCHANNEL-Leser interessant sind. Freundlicherweise stellt er uns gelegentlich entsprechende Manuskripte zur Verfügung.

Lassen auch Sie andere Leser an den von Ihnen entwickelten Praxislösungen teilhaben. Dazu müssen Sie weder Romane schreiben, noch zu stilistischer Höchstleistung auflaufen: Beschreiben Sie einfach in einer kurzen Mail an die Redaktion, zu welchem Thema Sie einen Beitrag liefern möchten. Wir beraten Sie gerne bei der Umsetzung des Artikelkonzepts und übernehmen die redaktionelle Nachbearbeitung.

Neben "Ruhm und Ehre" winkt als Belohnung auch noch ein finanzielles Zuckerl: Je nach Aufwand für die redaktionelle Umsetzung erhalten Sie bei Veröffentlichung Ihres Artikels ein Autorenhonorar zwischen 100 und 300 Euro.

Voraussetzungen

Wenn Sie schon mal probiert haben, Ihren Rechner über die Netzwerkkarte zu booten, ist Ihnen sicher aufgefallen, dass diese erst eine Weile versucht, per DHCP eine IP-Adresse zu beziehen, und schließlich nach einiger Zeit aufgibt.

Für einen erfolgreichen Bootvorgang per Netzwerk sollte also zumindest ein DHCP-Server im Netz vorhanden sein. Dieser kann aber lediglich Basisinformationen für das Netzwerk bereitstellen, wie etwa die zu verwendende IP-Adresse, Netzmaske, DNS-Server und Standard-Gateway.

Auf irgendeinem Weg muss darüber hinaus ein wie auch immer gearteter Bootcode, quasi ein Mini-Betriebssystem, den Weg zur Netzwerkkarte finden. Für diese Aufgabe ist ein TFTP-Server erforderlich. Idealerweise befindet sich dieser auf dem Rechner, der auch den DHCP-Server beherbergt - zwingend ist dies allerdings nicht.

Unter Linux sind diese beiden Dienste bereits vorhanden. Windows-Anwender können die Freeware Tftpd32 einsetzen, deren aktuelle Version 2.73 auf der Homepage des Entwicklers zum kostenlosen Download verfügbar ist.

Was nun noch fehlt, ist besagter Bootcode, der das eigentliche Betriebssystem nachlädt. Für diesen Zweck finden sich im Internet mehrere Angebote. Mit Abstand am komfortabelsten ist jedoch das schon etwas betagte Produkt Bpbatch. Je nach verwendetem Betriebssystem laden Sie sich am besten gleich den Tarball für Linux oder die Zip-Datei für Windows herunter. Damit sind vorerst alle notwendigen Komponenten vorhanden und Sie können an die Konfiguration der diversen Server gehen.

Vorarbeiten unter Linux

Die erste Aufgabe unter Linux ist, den DHCP-Server passend vorzubereiten. Soll jeder Client per Netz starten, genügt das Einfügen von vier Optionszeilen am Anfang der globalen Konfigurationsdatei /etc/dhcpd.conf:

option option-135 code 135 = text;
next-server = 192.168.27.1;
filename = "bpbatch.B";
option option-135 = "-i";

Dieses Verfahren hat allerdings einen Nachteil: Nach einem Neustart des DHCP-Servers per /etc/init.d/dhcpd restart erhalten alle Clients im Netz diese Konfigurationsdaten und versuchen gegebenenfalls, den Bootvorgang über das Netz vorzunehmen. Besser ist es daher, die relevanten Informationen in eine eigene Sektion für den per LAN-Adapter zu bootenden Rechner zu packen. Eine vollständige DHCP-Konfiguration dafür sieht beispielsweise so aus:

ddns-update-style none;
option domain-name "mydomain.home";
option routers 192.168.27.254;
option domain-name-servers 192.168.27.1;
option option-135 code 135 = text;
subnet 192.168.27.0 netmask 255.255.255.0 {
ddns-domain-name "mydomain.home";
range 192.168.27.100 192.168.27.119;
}
host netboot {
hardware ethernet 00:10:dc:94:67:3e;
fixed-address 192.168.27.66;
next-server 192.168.27.1;
filename "bpbatch.B";
option option-135 "-i";
}

Wie Sie sehen, sind nun drei der Befehlszeilen in eine eigene Sektion gewandert, die nur für einen bestimmten Rechner gültig ist. Dieser wird über die MAC-Adresse seiner Netzwerkkarte identifiziert - im Beispiel also die 00:10:dc:94:67:3e. Statt dieser Hexfolge müssen Sie die MAC-Adresse eintragen, die die Netzwerkkarte Ihres Rechners beim Hochfahren ausgibt.

Der Befehl "next-server" teilt der Netzwerkkarte mit, unter welcher IP-Adresse der Server mit dem eigentlichen Bootcode zu finden ist. Hier tragen Sie daher die IP-Adresse des Rechners ein, auf dem Sie den TFTP-Server installieren. In der Regel ist das der Computer, auf dem auch der DHCP-Server arbeitet.

Die Option "filename" schreibt der Karte vor, welche Datei als Bootcode zu laden ist. Die Zeile mit der Zuweisung des Werts "-i" an die Variable "option-135" ist spezifisch für Bpbatch. Sie weisen den Bpbatch-Bootcode damit an, eine interaktive Kommandozeile zu öffnen.

TFTP-Server einrichten

Um nun den Bootcode selbst zur Netzwerkkarte übertragen zu können, müssen Sie noch den TFTP-Server einrichten und aktivieren. Unter SuSE Linux erledigen Sie dies am besten mithilfe von YaST2. Hier erreichen Sie über den Punkt "Netzwerkdienste" die Option "TFTP-Server". Ist die benötigte Software nicht auf dem Rechner vorhanden, fordert YaST2 Sie auf, die korrekte CD oder DVD einzulegen, und richtet anschließend den TFTP-Server ein.

Nun legen Sie noch fest, in welchem Verzeichnis der TFTP-Server nach den von den Clients angeforderten Dateien suchen soll. Übernehmen Sie hier einfach die Standardvorgabe /tftpboot. Nachdem YaST2 die Systemaktualisierung erfolgreich beendet hat, müssen Sie nur noch die von Bpbatch benötigten Dateien in den Zugriffsbereich des TFTP-Servers bringen. Dazu genügen einige wenige Kommandos, die als Superuser auszuführen sind:

cd ~
wget www.bpbatch.com/downloads/bpb-exe.tar.gz
cd /tftpboot
tar -xvzf /root/bpb-exe.tar.gz
cp bpbatch.P bpbatch.B

Die letzte Zeile mutet etwas seltsam an. Der Grund für diesen scheinbar sinnlosen Befehl ist, dass Bpbatch anhand der Namenserweiterung der Bootcode-Datei unterschiedliche interne Arbeitsweisen verwendet. In unseren Tests hat die auf "B" endende Variante immer funktioniert, die Standardvorgabe mit der Datei-Namenserweiterung "P" hingegen so gut wie nie.

Um das angepasste Setup zu aktivieren, starten Sie nun noch den DHCP-Server sowie den globalen Dienste-Daemon Xinetd neu. Die dazu notwendigen Kommandos lauten /etc/init.d/dhcpd restart und /etc/init.d/xinetd restart.

Vorarbeiten unter Windows

Windows-Anwender müssen zur Konfiguration von DHCP- und TFTP-Server nur die Einstellungen eines einzigen Programms editieren. Die Freeware Tftpd32 von Philippe Jounin bietet beide Funktionen in einem Paket.

Schon die Installation gestaltet sich einfach: Laden Sie das Zip-Archiv mit der aktuellsten Version des Programms von der Homepage herunter. Entpacken Sie den Inhalt in ein beliebiges Verzeichnis Ihrer Festplatte, beispielsweise nach D:\\tftpd. Wechseln Sie mit dem Datei-Explorer in dieses Verzeichnis und starten Sie die Software per Doppelklick auf tftpd32.exe.

Die Software zeigt Ihnen nun einen Eingangsbildschirm, der für jeden bereitgestellten Dienst einen eigenen Reiter aufweist. Am unteren Rand des Fensters findet sich die Schaltfläche "Settings". Hier können Sie einstellen, aus welchem Verzeichnis der TFTP-Server die angeforderten Dateien beziehen soll. Gut geeignet ist hier ein Unterverzeichnis des Programm-Directorys, also etwa D:\\tftpd\\files.

DHCP-Server konfigurieren

Haben Sie die Einstellung Ihren Wünschen entsprechend angepasst, müssen Sie im nächsten Schritt den DHCP-Server konfigurieren. Wechseln Sie dazu zur entsprechenden Karteikarte und tragen hier die Werte für Startadresse des IP-Pools, Anzahl der zu vergebenden IP-Adressen, DNS-Server, Default Router und Netzmaske ein.

Von besonderem Interesse sind die Felder "Boot File" und "Additional Option". Als Wert für Ersteres geben Sie bpbatch.B an, in die zwei Eingabefelder hinter "Additional Option" tragen Sie die Werte "135" und "-i" ein. Vergessen Sie nicht, Ihre Angaben durch einen Klick auf die hochkant neben den Optionen platzierte Schaltfläche "Save" zu sichern.

Jetzt benötigen Sie von der Bpbatch-Homepage nur noch das Zip-Archiv mit dem Bootcode. Dessen Inhalt entpacken Sie in das Verzeichnis, das Sie zuvor in den Einstellungen von Tftpd32 als Wurzelverzeichnis des TFTP-Servers festgelegt haben.

Damit sind die Vorarbeiten unter Windows abgeschlossen. Wenn Sie möchten, können Sie Tftpd32 der Autostart-Gruppe hinzufügen. So gewährleisten Sie, dass der Remote-Boot-Dienst auch nach einem Neustart des Server-Rechners automatisch wieder zur Verfügung steht.

Erster Bootvorgang

Sind die Vorarbeiten erledigt, kann es an den ersten Start des Clients über das Netzwerk gehen. Wenn alles richtig konfiguriert ist und die Netzwerkkarte mitspielt, dann sollte sich schon kurz nach dem Erscheinen der Meldungen des PXE-ROM der Bootcode von Bpbatch melden. Nach der Ausgabe einiger Copyright- und Statushinweise lädt schließlich ein munter blinkender Cursor zum Experimentieren mit der Kommandozeile ein.

Durch die Eingabe von "help" rufen Sie eine Liste der verfügbaren Kommandos ab. Seien Sie bei Ihren ersten Schritten mit Bpbatch äußerst vorsichtig. Der Bootloader beinhaltet Befehle, mit denen Sie leicht den Inhalt Ihrer Festplatte ins Daten-Nirwana befördern können. Wenn Sie sich genug umgesehen haben, verlassen Sie per "quit" oder "exit" die Kommandozeile von Bpbatch. Daraufhin sollte der Rechner wie gewohnt von der Festplatte booten.

Das ist zwar schon ganz nett, aber so richtig sinnvoll ist es noch nicht. Vielleicht sind Sie beim Stöbern in der Hilfe von Bpbatch ja bereits darauf gestoßen: Dieses Tool kann weitaus mehr, als nur eine Kommandozeile zur Verfügung stellen. Unter anderem ist es in der Lage, eine Image-Datei eines bootfähigen Mediums in eine RAM-Disk zu laden und dort zu starten. Mit dieser Funktion lässt sich beispielsweise eine DOS-Umgebung starten, von der aus Zugriff auf die Netzlaufwerke eines Servers und die dort hinterlegten Hilfsprogramme besteht. Genau das werden wir jetzt realisieren.

Bootimage erstellen

Erfahrene Anwender wenden jetzt sicher ein, dass das Erstellen einer DOS-Bootdiskette mit allen notwendigen Netzwerktreibern kein triviales Unterfangen ist. Recht haben sie. Zum Glück hat sich mit Bart Lagerweij bereits ein findiger Entwickler die Mühe gemacht und auch gleich passende Tools für Windows entwickelt. Alles, was Sie zum Erzeugen der Bootdiskette benötigen, ist das Archiv mit dem Hilfsprogramm BFD 1.07. Dieses erstellt fast vollautomatisch eine bootfähige Diskette mit den gängigsten Netzwerktreibern. Zur Installation entpacken Sie das Zip-Archiv in ein beliebiges Verzeichnis auf der lokalen Festplatte, beispielsweise nach D:\\bfd.

Damit Sie sich auch gleich das lästige Hantieren mit Disketten ersparen, sollten Sie sich vorab den virtuellen Floppy-Treiber von VMware's Back für Windows NT, 2000 und XP herunterladen. Auch hier erfolgt die Installation durch Entpacken der Zip-Datei in ein Verzeichnis auf der Festplatte, etwa D:\\vfd. Um ein virtuelles Floppy-Laufwerk zu erzeugen, starten Sie zunächst das Hilfsprogramm vfdwin.exe. Es erscheint der Startbildschirm, in den Sie zuerst in das Feld "Image File" einen Namen für die Image-Datei eintragen, zum Beispiel netboot.img.

Im nächsten Schritt installieren Sie den Treiber durch einen Klick auf die Schaltfläche "Install" und aktivieren ihn mithilfe der Schaltfläche "Start". Klicken Sie nun auf die Schaltfläche "Mount" und kurz darauf steht ein neues, virtuelles Diskettenlaufwerk zur Verfügung. Besitzt Ihr Rechner bereits ein integriertes Floppy-Laufwerk, ist das virtuelle Medium unter dem Laufwerkbuchstaben B: anzusprechen, anderenfalls trägt es den Bezeichner A:, wie auf unserem Testsystem.

Virtuelle Floppy

Öffnen Sie nun eine Kommandozeile und wechseln Sie in das Verzeichnis, in das Sie das BFD-Archiv entpackt haben.

Dort ist zunächst die mitgelieferte Beispielkonfiguration durch Umbenennen der Datei bfd.sam in bfd.cfg "scharf" zu schalten und anschließend die Generierung der Bootdiskette mit den Netzwerktreibern zu starten:

d:
cd \\bfd
ren bfd.sam bfd.cfg
bfd msnet

Es folgen zwei Sicherheitsabfragen, die Sie beide mit einem Druck auf die Taste [C] quittieren. Sofort legt BFD los und erzeugt die Bootdiskette.

DHCP und TFTP anpassen

Hat BFD seine Arbeit erledigt, wechseln Sie wieder zu VFD und betätigen dort die Schaltfläche "Unmount". Anschließend kopieren Sie die Image-Datei netboot.img in das Dateiverzeichnis des TFTP-Servers. Befindet sich diese auf einem anderen Rechner, ist es ratsam, für diese Aufgabe ein Netzlaufwerk anzulegen.

Unter Windows geben Sie dazu einfach das betreffende Directory frei. Wie Sie das Entsprechende unter Linux realisieren, erfahren Sie im Beitrag "Linux als Windows-Server mit Samba 3".

Jetzt sind noch ein paar Änderungen auf dem DHCP- und dem TFTP-Server notwendig. Als Erstes sorgen Sie dafür, dass der Bootcode von Bpbatch nicht die Kommandozeile darstellt, sondern eine Befehlsdatei ausführt. Dazu ändern Sie die Option 135 von "-i" auf "netboot".

Linux-Anwender editieren also die Datei /etc/dhcpd.conf und starten den DHCP-Server per /etc/init.d/dhcpd restart neu. Windows-Anwender ändern einfach das zweite Feld des Parameters "Additional Option" und klicken auf die Schaltfläche "Save".

Anschließend erzeugen Sie im Dateiverzeichnis des TFTP-Servers die Datei netboot.bpb mit folgendem Inhalt:

set cachenever = "on"
loadramdisk "netboot.img"
floppyboot

Booten vom Netz

Wenn Sie jetzt den per Netzwerk zu startenden Rechner booten, werden Sie vom Menü der Bootdiskette begrüßt. Hier haben Sie vier Optionen: DOS mit EMM386 im kompatibelsten Modus starten; eine Variante, die möglichst viel Speicher zur Verfügung stellt; eine Version komplett ohne Speichermanager und schließlich die Möglichkeit, ein System komplett ohne Netzwerktreiber zu booten.

In den allermeisten Fällen ist die erste Option die beste Wahl. Sie funktioniert meistens und lässt genügend freien Speicher für DOS-Anwendungen übrig. Einige Netzwerktreiber nehmen es allerdings übel, wenn sie in hohe Speicherbereiche geladen werden. Sollte sich also Ihr Client während des Bootvorgangs aufhängen, probieren Sie es einfach noch einmal mit der dritten Variante.

Die ausgeklügelte Technik, die Bart Lagerweij auf der Bootdisk untergebracht hat, sorgt dafür, dass die meisten PCI-Netzwerkkarten automatisch erkannt und eingerichtet werden. Selbst um die richtige IP-Adresse brauchen Sie sich nicht zu kümmern, schließlich haben Sie ja einen DHCP-Server im Netzwerk.

Einzig die Benutzerdaten für die Authentifizierung an einem Server sind von Hand einzutragen. Hier ist Schnelligkeit gefragt, denn wie alle anderen Funktionen ist auch dieses Menü mit einem Time-out versehen. Am Ende der Prozedur landen Sie auf einer DOS-Kommandozeile, von wo aus Sie sich mit den Netzlaufwerken Ihres Servers verbinden können.

Bootimage optimieren

Selbstverständlich besteht auch Zugriff auf die lokalen Festplatten - sofern diese in einem der diversen FAT-Formate vorliegen. Sicher, zum Erstellen eines Partitionsabbildes, beispielsweise mithilfe von Ghost, stört es wenig, wenn kein Zugang zu Daten auf NTFS-Partitionen besteht. Möchte man aber nur einige Dateien auf einem Netzlaufwerk sichern, wäre es schon schön, zumindest Lesezugriff auch auf die von Windows NT, 2000 oder XP verwalteten Festplattenbereiche zu haben.

Genau dies ermöglicht der Treiber NTFSDOS von Sysinternals. Problematisch bleibt nur, diesen in die Architektur der Bootdiskette zu integrieren. Hilfreich ist, dass es sich bei NTFSDOS um eine ausführbare Datei handelt. Somit kann die Unterstützung von NTFS-Dateisystemen bei Bedarf gestartet werden und muss nicht direkt als Treiber geladen werden.

Eine Untersuchung der vom Bootimage erzeugten DOS-Umgebung zeigt, dass die Hilfsprogramme alle im Verzeichnis Q:\\BIN der beim Start angelegten RAM-Disk abgelegt sind. Überhaupt sind auf der RAM-Disk wesentlich mehr Programme vorhanden, als auf einer Diskette Platz finden.

Damit liegt die Lösung auf der Hand: Die später in der RAM-Disk vorhandenen Treiber und Programme liegen auf der Diskette in komprimierter Form vor und werden erst während des Bootvorgangs entpackt. Um also den NTFS-Treiber automatisch mit einzurichten, reicht es aus, diesen in eines der Archive zu packen.

Umpacken des Treibers

Allerdings liegen diese im Microsoft-eigenen CAB-Format vor. Zum Glück liefert BFD hierfür ein passendes Werkzeug mit: cabarc. Es findet sich im Verzeichnis \\bin, das unterhalb des Directorys angelegt wurde, in das Sie BFD entpackt haben. Nun ist es nur noch ein wenig Tipparbeit, den NTFS-Treiber zum Archiv utils.cab hinzuzufügen, das sich im Verzeichnis /cabs unterhalb des BFD-Speicherorts befindet.

Entpacken Sie auf dem Windows-Rechner zuerst das Zip-Archiv ntfs30r.zip in ein beliebiges Verzeichnis, zum Beispiel nach D:\\ntfsdos. Öffnen Sie nun eine Kommandozeile und geben dort folgende Befehle ein:

d:
cd bfd
md temp
cd temp
..\\bin\\cabarc -p X ..\\cabs\\util.cab
copy \\ntfsdos\\ntfsdos.exe bin
..\\bin\\cabarc -r -p N ..\\cabs\\util.cab *.*

Wiederholen Sie nun die Schritte zum Erstellen der Bootdisk, wie sie weiter oben beschrieben wurden. Dabei dürfen Sie durchaus die bereits vorhandene Image-Datei verwenden, da BFD stets eine Formatierung des Datenträgers durchführt. Es besteht also keine Gefahr, dass sich alte Fragmente störend auf den Ablauf auswirken.

Deutsche Tastaturbelegung aktivieren

Deutlich störender ist, dass die DOS-Umgebung noch mit der amerikanischen Tastaturbelegung arbeitet. Abhilfe: Installieren Sie einen deutschen Tastaturtreiber. Eine gute Alternative zur offiziellen DOS-Variante ist der Shareware-Treiber Kdrive von Martin Austermeier. Gegenüber dem Original zeichnet es sich nicht nur durch mehr Features, sondern auch durch geringeren Hauptspeicherbedarf aus. Die Integration gestaltet sich allerdings etwas aufwändiger.

Nachdem Sie das Zip-Archiv heruntergeladen und in das Verzeichnis D:\\kdrive entpackt haben, genügt es nicht, die notwendigen Daten einfach zu einer CAB-Datei - genauer gesagt zu dos.cab im Verzeichnis \\cabs\\os\\md701 im BFD-Directory - hinzuzufügen. Sie müssen auch die in diesem CAB-Archiv enthaltene Startdatei autorun.bat anpassen. Also entpacken Sie zunächst das alte Originalarchiv und fügen die neuen Daten hinzu:

d:
cd bfd
mkdir temp2
cd temp2
..\\bin\\cabarc -p -X ..\\cabs\\os\\md701\\dos.cab
copy \\kdrive\\kdrive.exe bin
copy \\kdrive\\kdtable.dat bin
edit autorun.bat

Der letzte Befehl startet den Editor und lädt die Datei autorun.bat. In dieser sind die vier folgenden Befehlszeilen nach der ersten Zeile einzufügen:

if not exist %ramdrv%\\bin\\kdrive,exe got :_nokdrv
echo DOS: Loading Kdrive
lh kdrive /N-
:_nokdrv

Der Parameter "/N-" hinter dem Aufruf von Kdrive bewirkt, dass das normalerweise von Kdrive automatisch aktivierte Numlock ausgeschaltet wird - eine Erleichterung vor allem für Notebook-Anwender. Ist die Änderung gespeichert, geht der Rest wieder wie gehabt vonstatten:

..\\bin\\cabarc -r -p -N ..\\cabs\\os\\md701\\dos.cab *.*

Alles, was jetzt zu tun bleibt, ist das erneute Mounten des Diskettenimages sowie der Aufruf von BFD. Sobald Sie das so erstellte Image in das Dateiverzeichnis des TFTP-Servers kopiert haben, steht den Anwendern die deutsche Tastaturbelegung zur Verfügung.

Weitere NICs unterstützen

BFD bringt schon von Haus aus eine ganze Reihe von Treibern für gängige Netzwerkkarten mit. Dabei handelt es sich jedoch vorwiegend um Software für Fast-Ethernet-Produkte. Aber die Entwicklung schreitet ja voran und so sind heute Gigabit-Ethernet-Adapter in Notebooks und Desktop-Rechnern keine Seltenheit mehr. Auch für diese finden sich Treiber auf den Webseiten von Bart Lagerweij. Allerdings müssen Sie diese von Hand an die richtige Stelle des Verzeichnisbaums von BFD kopieren.

Achten Sie darauf, dass Sie nicht zu viele Treiber in das Directory \\cabs\\drivers\\ndis packen, da sonst der Platz auf der Diskette nicht ausreicht. Über Versuch und Irrtum ist zwar oft eine passende Lösung zu finden, die alle benötigten Treiber beinhaltet. Was aber, wenn das mal nicht klappt? Ein Ansatz wäre, statt eines normalen Images einer Diskette mit 1,44 MByte ein Diskettenabbild im erweiterten Format mit 2,88 MByte zu erzeugen. VFD bietet diese Option zwar an, doch Bpbatch unterstützt dieses Format leider nicht.

Dafür weist es aber einen anderen Ausweg aus der Misere: Über seine integrierte Skriptsprache besteht die Möglichkeit, dem Anwender ein einfaches Bootmenü zu präsentieren, über das dieser unterschiedliche Bootimages auswählen kann. Eine beispielhafte Startdatei netboot.bpb für die Bootimages netboot1.img, netboot2.img und netboot3.img könnte etwa so aussehen:

set cachenever = "on"
showlog
:again
echo ""
echo "Bootmenu:"
echo ""
echo "boot1 - Startet Boot-Image 1"
echo "boot2 - Startet Boot-Image 2"
echo "boot3 - Startet Boot-Image 3"
echo ""
input toboot
if "$toboot" == "boot1" goto boot1
if "$toboot" == "boot2" goto boot2
if "$toboot" == "boot3" goto boot3
goto again
:boot1
loadramdisk "netboot1.img"
floppyboot
:boot2
loadramdisk "netboot2.img"
floppyboot
:boot3
loadramdisk "netboot3.img"
floppyboot

Andere Bootloader aufrufen

Ein weiterer Nachteil von Bpbatch ist, dass es nur Diskettenimages ausführen kann, nicht aber beispielsweise einen in einer RAM-Disk lauffähigen Linux-Kernel. Der alternative Bootloader PXE-Linux könnte ebendies, beherrscht dafür aber den Start von Diskettenabbildern nicht.

Die Lösung: Bpbatch übergibt auf Wunsch den Bootvorgang an PXE-Linux. Die notwendige Installationsarbeit ist schnell erledigt. Laden Sie das aktuelle Syslinux-Archiv herunter und entpacken Sie die Datei in das Dateiverzeichnis des TFTP-Servers. Kopieren Sie anschließend einen Linux-Kernel in dasselbe Verzeichnis und notieren Sie sich dessen Namen. Für das SuSE Linux 9.0 aus dem tecCHANNEL-Compact 02/2004 wäre das zum Beispiel vmlinuz-2.4.21-199-default. Legen Sie nun im Dateiverzeichnis des TFTP-Servers das Directory pxelinux.cfg an und erzeugen Sie darin die Datei default mit folgendem Inhalt:

prompt 1
timeout 100
implicit 0

kbdmap de.ktl

label linux
kernel vmlinuz-2.4.21-192-ru
append root=/dev/hda4

label local
localboot 0

Nun ist noch die Datei netboot.bpb passend zu ändern:

set cachenever = "on"
showlog
:again
echo ""
echo "Bootmenu:"
echo ""
echo "dos - Startet DOS-Boot-Image"
echo "linux - Startet Linux-Kernel"
echo ""
input toboot
if "$toboot" == "dos" goto dos
if "$toboot" == "linux" goto linux
goto again
:dos
loadramdisk "netboot.img"
floppyboot
:linux
tftpboot "pxelinux.0"

Wählen Sie beim Booten über das Netzwerk nun "linux" aus, gelangen Sie in das Bootmenü von PXE-Linux. Hier geben Sie dann entweder erneut "linux" an, um den Linux-Kernel zu starten, oder alternativ "local", um das auf der Festplatte installierte Betriebssystem abzurufen.

Fazit

Wie Sie sehen: Es gibt unzählige Möglichkeiten, mit dem Bootvorgang per Netzwerk zu spielen. Sicher finden auch Sie die eine oder andere Variante, die Ihnen das Leben leichter macht.

Speziell zur Datensicherung oder zur Datenrettung ist das Booten über das Netz eine unschätzbare Hilfe. Aber auch bei der Installation von Rechnern erleichtern zentral abgelegte Images die Arbeit erheblich. Experimentieren Sie ruhig ein wenig mit dem System - Sie werden schnell begeistert sein von den neuen Möglichkeiten. (jlu)

Neu: Leser schreiben für tecCHANNEL

Dieser Artikel stammt von tecCHANNEL-Leser Stefan Rubner. Der freiberufliche IT-Experte muss des Öfteren Lösungen für Probleme im Netzwerk entwickeln und umsetzen, die auch für andere tecCHANNEL-Leser interessant sind. Freundlicherweise stellt er uns gelegentlich entsprechende Manuskripte zur Verfügung.

Lassen auch Sie andere Leser an den von Ihnen entwickelten Praxislösungen teilhaben. Dazu müssen Sie weder Romane schreiben, noch zu stilistischer Höchstleistung auflaufen: Beschreiben Sie einfach in einer kurzen Mail an die Redaktion, zu welchem Thema Sie einen Beitrag liefern möchten. Wir beraten Sie gerne bei der Umsetzung des Artikelkonzepts und übernehmen die redaktionelle Nachbearbeitung.

Neben "Ruhm und Ehre" winkt als Belohnung auch noch ein finanzielles Zuckerl: Je nach Aufwand für die redaktionelle Umsetzung erhalten Sie bei Veröffentlichung Ihres Artikels ein Autorenhonorar zwischen 100 und 300 Euro.