2009
07.27

Im Internet gibt es bereits tausende von Anleitungen, wie man einen bootbaren DOS USB Stick erstellt. Meistens hat das was mit einer DOS Startdiskette und dem kopieren des Bootsektors sowie dem USB Disk Format Tool von HP zu tun.

Das alles konnte aber meine Bedürfnisse nach einem bootbaren USB Stick, der die volle Kapazität nutzen kann, nicht erfüllen und deshalb habe ich mich andersweitig umgeschaut und eine Lösung auf Basis von SYSLINUX erstellt. Dafür gibts leider recht wenige Tutorials, und man muss sich da einfach selbst etwas einarbeiten, oder eben hier lesen ;)

So, dann gehts los:

  1. Zuallererst benötigen wir einige Dateien aus dem Netz: Das bereits erwähnte Syslinux (ich habe Version 3.82 (direkter Download als ZIP) vom 09.06.2009 benutzt) sowie eine Startdiskette der DOS Version die wir booten wollen. Ich habe mich hier für FreeDOS und die Balder1.0 Startdiskette (Download als IMG Datei) entschieden.
    Syslinux sollte nach dem Download dann schonmal entpackt werden.
  2. Steckt jetzt euren USB Stick an und begebt euch dann über ein Kommandofenster in den Syslinux\win32 Ordner, den ihr gerade entpackt habt. Wer möchte kann den USB Stick vorher noch formatieren, das ist aber nicht nötig.
  3. Mit dem Kommando
    syslinux.exe -m -a -d /boot/syslinux X:

    wobei ihr X: natürlich mit dem passenden Laufwerksbuchstaben zu eurem USB Stick ersetzt, macht ihr euren USB Stick für Syslinux bootbar. Durch den Befehl wird außerdem die Datei ldlinux.sys in den Stammordner des USB-Sticks kopiert. Diese Datei muss auf jeden Fall dort bleiben!

  4. Nun, da der USB Stick bootbar ist müssen wir Syslinux nur noch sagen, was es denn booten soll. Dafür erstellen wir auf dem USB Stick den Pfad X:\boot\syslinux. Hier sucht das System dann nach der Syslinux Konfigurationsdatei syslinux.cfg, die wir einfach als Textdatei erstellen und im einfachsten Fall einfach mit Notepad editieren, damit der Inhalt wie folgt aussieht:
    DEFAULT FreeDOS
    LABEL FreeDOS
    KERNEL memdisk
    APPEND initrd=balder10.img

    Durch das Keyword DEFAULT legen wir fest, welche Befehl Syslinux im Standardfall abarbeiten soll.
    LABEL legt den Namen einer Konfiguration, in diesem Fall FreeDOS, fest.
    Unter KERNEL steht ein beliebiges Kernel-File, z.B. ein linux Kernel, das gebootet werden soll. Memdisk ist ein in Syslinux enthaltener Kernel der das Booten von Disketten-Images erlaubt (mehr Informationen zu Memdisk).
    Über APPEND werden dem Kernel Parameter mitgegeben. In diesem Fall erhält Memdisk über den Parameter initrd den Namen des Diskettenimages, das gebootet werden soll. Die Art des Images erkennt Memdisk normalerweise von selbst, wenn es sich nicht um exotische Größen handelt.

  5. Wer gut aufgepasst hat fragt sich jetzt vielleicht, wo dieser memdisk Kernel denn überhaupt ist, und dass wir ein Disketten-Image laden, das bisher noch nicht auf unserem USB Stick liegt. Das ist richtig, also müssen wir jetzt noch aus dem SYSLINUX/memdisk Verzeichnis die Datei “memdisk” nach X:\boot\syslinux kopieren genauso wie das FreeDOS Disketten-Image balder10.img.
    Die Images, auf die über Memdisk zugegriffen werden soll, müssen zwingend in diesem Syslinux Verzeichnis liegen.
  6. Damit ist eigentlich schon alles abgeschlossen und ihr könnt den Boot vom USB Stick versuchen. Unter A: wird immer das geladene Disketten-Image erscheinen und je nachdem ob euer USB Stick als Removable oder Fixed Device konfiguriert ist erscheint dieser dann als B: oder C:.

So, ich hoffe das Howto hat euch geholfen. Ich freue mich über jegliche Anregungen und Kritiken.

3 comments so far

Add Your Comment
  1. Der Name der Konfigurationsdatei ist syslinux.cfg!!!

  2. Danke, da hast du Recht. ich habe es im Artikel editiert.

    In Version 3.83 von syslinux wurde übrigens ein Bug behoben den ich auf einigen Maschinen gesehen habe. (Invalid Opcode). Am vorgehen hat sich nichts geändert, einfach die neueste Syslinux Version herunterladen.

    Grüße
    Stefan

  3. An sich ne gute Sache, ich frag mich nur, ob das auch dauerhaft brauchbar bleibt.