Einrichten eines virtualisierten MS-DOS Systems

Erst einmal eine Sache vorweg: Auch wenn ich bei der Lösungserstellung VMWare Fusion für Mac als Desktop-Virtualisierung verwendet habe, wird diese aber auch mit VMWare Desktop für Linux oder Windows, den Virtualisierungslösungen Parallels Desktop oder Oracle VirtualBox, und sogar mit diversen x86-Emulatoren funktionieren.

Der Hintergrund warum ich diesen Artikel erstellt habe ist, dass ich mich vor einigen Tagen in ein Gespräch mit zwei mir mehr und weniger bekannten Personen dazu gesellt habe, wo es um eine Software zur Erstellung von Partituren im MIDI-Format ging. Ich berichtete, dass ich im Alter von 15 bis 17 Jahre selber eine Windows-Software besaß, mit der es möglich war in Form einer Partitur MIDI-Songs zu erstellen, um die musikalischen Partner für das Üben zu ersetzen. Die Software die ich damals einsetzte – und auch heute auf Diskette noch habe, heißt „MIDI Recording Session“. Auch wenn es sich bei dieser um ein 16-bittige Windows 3.x Anwendung handelt, so konnte ich sie dennoch ohne Probleme in einer bestehenden virtuellen Maschine mit Windows XP starten und benutzen. Allerdings kam mir bereits bei dem ersten Gedanken das Programm nach so langer Zeit mal wieder zu Starten auch die Idee, nach recht langer Zeit ein MS-DOS mit Windows 3.11 mal wieder zu virtualisieren.
So habe ich meine Disketten-Images aus dem Schrank geholt und das Microsoft DOS 6.2 in eine virtuelle Maschine installiert. Um das Windows for Workgroups in der Version 3.11, sowie das Microsoft Works für Windows Version 2 von CD-ROM in die DOS-VM installieren zu können, bedarf es allerdings auch noch einen Treiber um überhaupt auf das optische Laufwerk zugreifen zu können.

Bei meiner Recherche nach einem adäquaten DOS-Treiber für das virtualisierte MS-DOS bin ich auf das Technology Blog von Werner Ziegelwanger gestoßen. Dieser hatte es sich zu seinem Hobby gemacht einen DOS-PC zusammen zu bauen und ist bereits auf das selbe Problem gestoßen wie ich, nur mit der zusätzlichen Schwierigkeit im Gegensatz zu mir, dass er eben kein virtualisiertes System verwendet, wo sich die (Pseudo-) Hardware immer gleich verhält, sondern dass er mit den Herstellereigenen Besonderheiten der Laufwerke zu kämpfen hatte, die immer für Fummelarbeiten bei den Treibern unter einem nativ ausgeführten DOS sorgten.
Ziegelwanger hat die Arbeitsschritte sehr schön dokumentiert, so dass es mir ohne Probleme möglich war das optische Laufwerk aus der virtualisierten DOS-Umgebung ansprechen zu können. Ich habe sie als Anleitung nochmals in mein Wiki übernommen.

Links:
Anleitung im eigenen Dokuwiki
Technology Blog – DOS CD Rom Treiber installieren

Darüber hinaus stand ich vor dem Problem, Dateien, wie zum Beispiel eben die Treiber für den Zugriff auf das CD-Laufwerk, von meinem Host-System (macOS) in die virtuelle Maschine zu übertragen. Der Trick ist für das erste aber recht einfach.:

  1. Über das Terminal unter macOS (Linux, BSD) ein leeres Disketten-Image mit dem Konsolenprogramm dd erstellen.
    dd if=/dev/zero bs=512 count=2880 of=msdos-floppy.img
  2. Das erstellte Disketten-Image mit dem Virtualisierungsprogramm als Diskettenlaufwerk verbinden und mit dem Befehl format a: mit dem Dateisystem FAT12 unter DOS formatieren.
  3. Image von der VM wieder lösen und im Dateimanager (macOS Finder oder dem jedes anderen Host-Systems) wieder mounten und dann die Dateien hineinkopieren.
  4. Zuletzt das Image wieder aus dem Dateimanager auswerfen und mit der virtuellen Maschine verbinden. Die Dateien können gelesen beziehungsweise wenn nötig verändert werden.

Auf Dauer ist dies aber natürlich keine Lösung und ziemlich umständlich sowie nervend.

DOSBox vs. DOS-EMU

Seit meinem Umstieg auf Ubuntu 8.04 (Hardy Heron) macht das Spielen mit DOSBox auch nicht mehr so recht Spaß. Denn irgendwie lassen sich die Cursortasten nicht richtig ansprechen. Jeder Versuch das Tastenlayout im DOSBox eigenem Keymapper neu zu gestalten bringt keine Besserung. Der Keymapper interpretiert weiterhin die Pfeil-nach-links-Taste mit der Funktion der ‚Alt-Gr‘-Taste und diese wiederum mit der ‚Return‘-Taste. An der dem Tastaturlayout von Ubuntu und dem DOS-Treiber für eine deutsche Tastatur innerhalb von DOSBox liegt es auch nicht. Einzige Abhilfe, damit es nicht langweilig wird, schafft die Installation von DOS-EMU, auch wenn dieser Emulator durch das Fehlen einiger Features bei den Spielen nicht so rockt wie DOSBox. Ein solches Verhalten hat aber bisher auch noch niemand in einem Forum geschildert.
Damit man aber dennoch seine DOS-Programme benutzen kann, hier mal eine kleine Anleitung wie beide Emulatoren auf die selben Daten zugreifen können. In meinem Beispiel habe ich sämtliche Ordner, Programme und Daten, auf die ausschließlich beide Emulatoren zugegriffen werden soll, in ein eigenes Verzeichnis mit dem Namen DOS im ~/.dosbox -Verzeichnis gelegt. Dieses wiederum wird sowohl durch das entsprechende editieren der dosbox.conf unter DOSBox als und durch dem im Beispiel angegebenen Link im ~/.dosemu -Verzeichnis direkt in beiden Emulatoren als DOS-Laufwerk C: gemountet.

~$ cd .dosemu/drive_c
~$ cp autoexec.bat config.sys ~/.dosbox/DOS
~$ cd.. && mv drive_c drive_bak
~$ ln -s ~/.dosbox/DOS/ drive_c