Freitag, 13. Februar 2015

Windows 3.1 mit Virtualbox 5

Windows 3.1 mit MS-DOS 6.22 auf Virtualbox 5

Übersicht


Kürzlich bin ich auf einer alten Harddisk über ein Windows 3.1 Image für Virtualbox gestolpert. Da ich gerade ein bisschen in Nostalgie-Laune war, startete ich es und begann ein bisschen damit zu spielen. Schnell wurde mit wieder bewusst, was arbeiten unter MS-DOS 6 und Windows 3.1 bedeutete: kein Netzwerk, Sound, CD-ROM (zumindest nicht ohne weitere Anstrengung), kein USB. Also alleine Daten Ein- und Ausgabe wird so zum Experiment.
Ich habe mich dann entschlossen, eine Schritt-für-Schritt Anleitung zu machen, was man benötigt um Windows 3.1 unter Virtualbox zum laufen zu bringen.

Floppy-Images

 Windows 3.1 und MS-DOS 6.22 wurden (zumindest so viel ich weiss) nur über Floppy-Disks ausgeliefert. Will man nun MS-DOS auf Virtualbox installieren braucht man entweder einen Rechner mit Floppy-Laufwerk oder aber Images der Installations-Disketten.
Images von Disketten erstellt man unter Linux mit folgendem Befehl:
# dd if=/dev/fd0 of=floppy.img bs=512
 Wobei im Beispiel die Bezeichnung für das Floppy-Laufwerk fd0 ist - das kann auf anderen Distributionen anders sein. Das ergibt dann eine Image-Datei, die man im Virtualbox einbinden kann.

Virtualbox VM erzeugen und MS-DOS 6.22 installieren

Nun wird in Virtualbox die VM erzeugt. Ist eigentlich selbsterklärend. Als OS Windows und im Untermenü Windows 3.1 auswählen. Sonst habe ich folgende Eckdaten:
  • RAM 64MB (32 würden auch völlig genügen)
  • Harddisk 2GB (siehe Bemerkung über FAT16)
  • Audio "Sound Blaster 16" (ich bin halt ein Nostalgiker)
  • Netzwerk "PCNet-PCI II"
  • Seriell "nicht aktiviert" (habe gerade keine Geräte dafür)
  • USB "nicht aktiviert" (nicht unterstützt)
 Nun die erste MS-DOS Installations-Diskette einbinden, VM starten und MS-DOS installieren. Während der Installation müssen die Floppys gewechselt werden. Einfach in der Menüleiste auf [Geräte] klicken und die weiteren Images auswählen.

Bemerkungen:

  • MS-DOS hat kann nur FAT-16 - demzufolge können maximal ca. 2GB grosse Partitionen verwaltet werden - und selbst das nur zu Clustern mit 32KByte (Cluster = Schnitze, in die der Datenbereich aufgeteilt wird. Somit braucht eine Datei von z.B. 2KB auf der Harddisk aber effektiv 32KByte, weil nur ganze Schnitze zugeordnet werden können)
  • Diesem Problem kann man gegegnen, in dem man mehrere Partitionen macht. Einfach im ersten Screen (siehe unten) die Installation abbrechen mit F3 und dann mit dem Befehl "fdisk" zwei oder mehr Partitionen machen. Dabei gibt es eine primäre Partition mit dem ersten Laufwerksbuchstaben (C:) und eine erweiterte Partition mit allen weiteren (D: E: F:.....). Möchte man also die Harddisk vierteln, müsste man 25% in die primäre und 75% in die erweiterte Partition verteilen. Anschliessen die erweiterte Partition in drei Teile unterteilen.



Anschliessend noch neu starten und nach ein paar Sekunden ist das frisch installierte MS-DOS schon gestartet.

CD-Laufwerk installieren

Möchte man nun Windows 3.1 installieren, könnte man entweder wie für MS-DOS Floppy-Images erzeugen (7 Stück, geht noch). Schneller geht es aber, wenn man unter MS-DOS CD-ROM Treiber installiert und anschliessend ein ISO-Image erzeugt, dass alles drin hat, was man möchte.
Um ein CD-Laufwerk unter MS-DOS zu betreiben, braucht man einerseits die MSCDEX.EXE (MS CD Extension) und einen Treiber für das Laufwerk. Grundsätzlich funktionieren alle IDE-CD-Treiber mit allen IDE-CD-Laufwerken. Ich habe dazu ein Image von einem CD-Laufwerk, dass ich mal hatte. Einfach diesen Treiber installieren, neu starten, und schon ist das CD-Laufwerk zugänglich.
Um nun Daten von der lokalen Harddisk in eine Image-Datei zu packen, nimmt man entweder ein CD-Brennprogramm (K3B, Nero...) und erzeugt ein ISO. Unter Linux auf der Kommandozeile genügt folgender Befehl:
$ genisoimage -o dateiname.iso ordner
Wobei der Dateiname der Name des ISO-Files ist, das erstellt wird und der Ordner der Ordner in dem sich die Dateien befinden, die man ins ISO packen möchte. "genisoimage" befindet sich unter Arch Linux im Paket "cdrkit", unter Debian im gleichnamigen Paket "genisoimage".
Ein so erstelltes ISO kann nun unter Virtualbox eingebunden werden und im MS-DOS über den Laufwerksbuchstaben (z.B. D:) abgerufen werden.

Edit: Funktioniert auch mit mkisofs - zumindest unter Arch Linux 

Datenaustausch mit Host über Floppy

Der Datenaustausch mit dem Host kann unter Linux auch über Floppy erfolgen.
  1. Leeres Floppy-Image erstellen
  2. # dd bs=512 count=2880 if=/dev/urandom of=floppy.img
  3. Floppy-Image formatieren
  4. # mkfs.msdos floppy.img
  5. Floppy-Image mounten 
  6. # mount -o loop floppy.img /mnt
  7. nun können Daten auf dem Host nach /mnt oder auf dem Gast nach A:\ kopiert werden
  8. um die Ansicht auf der "anderen Seite" zu aktualisieren, muss das Image neu geladen werden - auf Host-Seite umount/mount auf Gastseite unter [Geräte] [Medium entfernen] und wieder einbinden
Bemerkung:
  • mit 1.44MB Diskgrösse geht's in beide Richtungen, mit 2.88MB (oder vielleicht sogar noch grösser?) nur von Host nach Gast. 

 Soundkarte

Für den Sound Blaster 16 einfach den Treiber von hier herunterladen, die EXE aufs Gast-System bringen und installieren. Die EXE-Datei (sbbasic.exe) ist ein Archiv, das den Installer und Treiber für Sound Blaster 16 beinhaltet. Allenfalls diesen erst nach Windows installieren, da sonst Dateien fehlen und man den Treiber noch einmal installieren muss.

Windows 3.1 installieren

Windows installieren ist eigentlich selbsterklärend. Im Ordner der 1. Disk setup.exe ausführen und sich durchklicken. Am Ende erwartet einem ein altbekannter Windows 3.1 Desktop.
Startet man die VM auf, bleibt man jedoch im MS-DOS hängen. Um Windows zu starten gibt man einfach win ein und schon startet Windows.



Grafik

Es gibt einen universellen Grafiktreiber für Win9x, VBEMP 9x, der unter Virtualbox verwendet werden kann. Bei mir funktioniert er recht gut, ich musste allerdings bei der Installation ein paar Mal neu starten, die VM blieb mit schwarzem Bildschirm hängen, Hard-Reset (-> Tastatur > sende Ctrl-Alt-Del) war nötig. Damit kann man 32Bit Farben und 1024x768 fahren. 32-Bit Farben sei für Virtualbox am Besten (Quelle weiss ich gerade nicht, irgendwo im Support-Forum von Virtualbox gelesen). Laut der Homepage des Projekts sind auch andere und höhere Auflösungen möglich. Den Treiber gibts hier.

 

ToDo

  • Netzwerk
  • MIDI (liegt aber vielleicht an ALSA)


Fazit

Eine sehr nette Möglichkeit, sich ein bisschen Nostalgie auf den Rechner zu holen. Läuft eigentlich ziemlich flott und bis jetzt hatte ich keine Abstürze. Mal schauen, was ich noch so für Software finde... Ein Word 6.0a müsste ja schon noch sein, oder??


Keine Kommentare:

Kommentar veröffentlichen