home Sonstiges Linux OpenBSD Links

DOS Bootdiskette ohne Diskettenlaufwerk nutzen

1. Vorwort
Um einen Fehler zu beseitigen, musste ich bei meinen Linuxserver ein BIOS Update durchführen. Ein Diskettenlaufwerk hat der Server aber noch nie besessen. Da ich zu faul war, extra eins zu kaufen und einzubauen, habe ich eine andere Lösung gesucht.

Die Benutzung dieser Anleitung geschieht auf eigene Gefahr, ich
übernehme keine Haftung für einen abgeschossenen Rechner oder sonstiges!

2. DOS Bootdiskette auftreiben
Im Internet gibt es einige Anleitungen, die auf FreeDOS basieren. Leider funktioniert aber bei mir das Flashprogramm nicht mit FreeDOS. Also musste ich doch auf eine MS-DOS oder Windows 9x Startdiskette zurückgreifen.
Im Idealfall hat mal schon ein Image einer solchen Disketten rumliegen. Wenn nicht, kann man im Internet danach suchen (ob man diesen Images allerdings vertrauen will, ist eine andere Sache) oder man hat noch irgendwo einen Rechner mit Windows und einen Diskettenlaufwerk rumstehen, um dort eine Startdiskette zu erstellen. Dann muß man von dieser Diskette ein Image erstellen, unter Windows gibt es da diverse Programme - Google hilft.

3. Image unter Linux mounten
Um die config.sys und autoexec.bat unter Linux zu bearbeiten, muß das Image unter Linux gemountet werden. Dazu müssen im Kernel der Loopback device support und die FAT Dateisystemfamilie aktiviert werden. Man kann die Optionen fest einkompilieren oder auch nur als Modul erstellen. Beim Kernel 2.6.18.1 finden sich die Optionen hier:

Device Drivers  --->
 Block Devices  --->
  <*> Loopback device support
File systems  --->
 DOS/FAT/NT Filesystems  --->
  <*> MSDOS fs support
  <*> VFAT (Windows-95) fs support
Das Diskimage liegt bei mir im Verzeichnis /auktion/temp/dosbootdisk und hat den Namen dosfloppy.img. Gemountet wird es bei mir auf den freien Mountpoint /mnt:
root@pd6000:~ # mount -o loop /auktion/temp/dosbootdisk/dosfloppy.img /mnt
root@pd6000:~ # df -h /mnt
Dateisystem          Größe Benut  Verf Ben% Eingehängt auf
/auktion/temp/dosbootdisk/dosfloppy.img
                      1,4M  469K  955K  33% /mnt
Weiter geht es mit dem Ausmisten. Da ein Flashprogramm samt BIOS etwas Platz auf der Diskette benötigt, müssen eventuell einige Sachen gelöscht werden. Nicht löschen sollte man folgende Dateien:
autoexec.bat  command.com  config.sys  emm386.exe  himem.sys  io.sys  msdos.sys
Die autoexec.bat und config.sys müssen angepaßt werden. Ein allgemeines Rezept kann ich hier nicht geben, man sollte aber alles raushauen, was einen irgendwie die Platte formatieren oder eine Neuinstallation starten will.
Nachdem man das Flashtool und das neue BIOS kopiert hat, wird das Image ungemountet:
root@pd6000:/mnt # cd
root@pd6000:~ # umount /mnt
3. das Image in GRUB einbinden
GRUB kann nicht direkt das Image starten, dafür braucht man eine kleine Datei aus dem Syslinux Projekt. Finden tut man dieses auf http://www.kernel.org/pub/linux/utils/boot/syslinux/. Am besten wählt man dort die aktuellste Version zum Download aus. Man entpackt das Archiv gleich im /tmp Verzeichnis, kopiert die eine Datei und nach dem nächsten Booten wird das /tmp Verzeichnis wieder bereinigt:
root@pd6000:~ # cd /tmp
root@pd6000:/tmp # tar xfj /von/wo/auch/immer/syslinux-3.31.tar.bz2
root@pd6000:/tmp # cd syslinux-3.31/memdisk
root@pd6000:/tmp/syslinux-3.31/memdisk # cp memdisk /boot/
Die dosfloppy.img muß auch in das /boot Verzeichnis:
root@pd6000:/tmp/syslinux-3.31/memdisk # cp /auktion/temp/dosbootdisk/dosfloppy.img /boot/
GRUB braucht jetzt nur noch den passenden Menüeintrag und dann steht dem (hoffentlich erfolgreichen) Flashen nichts im Wege. Folgende drei Zeilen müssen (meistens am Ende) in die Datei /boot/grub/menu.lst:
title DOS BOOTDISKETTE
kernel /boot/memdisk
initrd /boot/dosfloppy.img
Jetzt wird es Zeit, den Rechner neu zu starten und im Bootmenü die DOS Diskette zu booten. Wenn alles klappt, sieht man ein wohlbekanntes A:\>

4. eine bootfähige CD erstellen
Als ich einen neuen Rechner zusammenbaute, verzichtete ich auch hier auf das Diskettenlaufwerk. Der Rechner hatte ein MSI Mainboard und eigentlich sollten damit BIOS Updates dank dem LiveUpdate unter Windows kein Problem sein. Nur leider funktionierte das Programm bei mir nicht. Extra GRUB und Linux installieren wollte ich auf diesen Rechner auch nicht, also habe ich den Umweg über eine bootfähige CD-ROM gewählt.
Um ein bootfähiges ISO-Image zu erstellen, braucht man das Programm mkisofs aus dem cdrtools Paket. Ich habe die Version 2.01 von ftp://ftp.berlios.de/pub/cdrecord/ verwendet. Installieren tue ich die cdrtools nicht, da ich keinen Brenner in meinen Server habe:

root@pd6000:~ # cd /usr/src
root@pd6000:/usr/src # tar xfj /von/wo/auch/immer/cdrtools-2.01.tar.bz2
root@pd6000:/usr/src # cd cdrtools-2.01
root@pd6000:/usr/src/cdrtools-2.01 # make
Das fertig kompilierte Programm mkisofs versteckt sich einige Verzeichnisse tiefer:
root@pd6000:/usr/src/cdrtools-2.01 # cd mkisofs/OBJ/i686-linux-cc
root@pd6000:/usr/src/cdrtools-2.01/mkisofs/OBJ/i686-linux-cc # mkdir BOOTCD
root@pd6000:/usr/src/cdrtools-2.01/mkisofs/OBJ/i686-linux-cc # cp /auktion/temp/dosbootdisk/dosfloppy.img BOOTCD/
root@pd6000:/usr/src/cdrtools-2.01/mkisofs/OBJ/i686-linux-cc # ./mkisofs -r -b dosfloppy.img -c boot.catalog -o bootcd.iso BOOTCD/
Die Datei bootcd.iso habe ich dann mittels einer Nero OEM Version unter Windows auf einen RW-Rohling gebrannt. Anschließend konnte ich die CD booten und das BIOS flashen.

zurück zur Linux-Übersicht
Letzte Aktualisierung dieser Seite: 18. Oktober 2006