Microsoft Windows 98 SE in Virt-Manager

Mit den Standardeinstellungen von Virt-Manager funktioniert klappt die Installation von Windows 98 SE leider nicht: Es bleibt beim Booten stehen. Oft lässt sich Windows zum Starten bewegen, wenn man beim Booten schnell „F8“ drückt und dann alle Fragen mit „J“ bestätigt. Aber selbst dann fehlen alle emulierten PCI-Geräte. Und es ist langsam. Sehr langsam. Außerdem funktioniert der Sound nicht. Auch gibt es keine Netzwerkunterstützung und die Bildschirmauflösung ist auf 640×480 Pixel bei 16 Farben beschränkt. Alles in allem nicht sehr zufriedenstellend.

Aber es geht ein bisschen besser:

Virtuelle Maschine vorbereiten

Windows 98 SE unterstützt nur eine einzige CPU, maximal 512 MByte RAM und 128 GByte große Festplatten. Beim Anlegen der Virtuellen Maschine also innerhalb dieser Grenzen bleiben

Als Soundkarte empfiehlt sich bei Windows 98SE ein Soundblaster 16. Virt-Manager bietet mir im Drop-Down-Menü nur AC97 und zwei Varianten HDA an. Etwas seltsam, werden doch von libvirt erheblich mehr Soundkarten unterstützt. Zum Glück kann man auch selbst „sb16“ in das Soundkarten-Feld eintippen. Die virtuelle Soundblaster-Karte wird von Windows brav automatisch richtig erkannt und belegt die Ressourcen Port 220, IRQ 5, DMA 1.

Als Grafikkarte können zwar sowohl die in Virt-Manager auswählbaren Modelle „QXL“ als auch „VGA“ zusammen mit dem Grafiktreiber „Universal VESA/VBE Video Display Driver“ (VBEMP 9x) von hier benutzt werden, mit diesem Treiber wird aber beim Starten der MS-DOS-Eingabeaufforderung unter Windows Müll angezeigt (Abhilfe: ALT-Enter drücken).
Besser als Grafikkartenmodell per Hand „cirrus“ eintippen. Damit gibt’s keine Probleme mit der MS-DOS-Eingabeaufforderung. Windows erkennt die Grafikkarte später automatisch als „Cirrus Logic 5446 PCI“ und bringt auch einen funktionierenden Treiber mit.

Als Netzwerkkarte „rtl8139“ wählen. Den passende Treiber kann man hier herunterladen.

Die Treiber für die Grafik- und die Netzwerkkarte entzippen und auf ein ISO-Image „brennen“.

Normalerweise benutzt Virt-Manager KVM zur Virtualisierung. Mit KVM funktioniert aber die Windows 98 SE-Installation nicht, Windows bleibt beim Booten mit schwarzem Bildschirm stehen. Da es in Virt-Manager keinen Knopf gibt um zwischen den Virtualisierungsmethoden umzuschalten, muss die XML-Beschreibungsdatei der Virtuellen Maschine editiert werden. Das geht zum Glück auch in Virt-Manager: „Einstellungen“, „Allgemein“, „Allow XML editing“, und dann in der Detailansicht der VM, Abschnitt „Übersicht“, auf den Reiter „XML“ wechseln und gleich in der ersten Zeile den „Domain Type“ von „kvm“ abändern auf „qemu“. Die Installation verläuft dadurch zwar viel langsamer, aber zumindest erfolgreich.

Windows 98 SE installieren

Die Installation jetzt nach alten Erinnerungen aus der Jugend oder diversen Youtube-Tutorials durchführen. Recht viel falsch machen kann man eigentlich nicht.

Nach der Installation

PCI-Geräte

Der aufmerksamen Installateur wird bemerkt haben, dass während der Installation kein einziges PCI-Gerät erkannt wurde. Um diesen Missstand zu beheben in „Systemsteuerung“, „System“, „Gerätemanager“ bei den „Systemkomponenten“ mit der rechten Maustaste auf das gelb markierte „Plug & Play BIOS“ klicken, „Eigenschaften“, „Treiber aktualisieren“, „Eine Liste der Treiber in einem bestimmten Verzeichnis zum Auswählen anzeigen“, „Weiter“, „Alle Modelle anzeigen“, und dann bei den Modellen „ACPI-Bus (Advanced Configuration and Power Interface)“ auswählen. Nach dem nächsten Neustart werden eine ganze Menge neuer Geräte erkannt, darunter auch alle am PCI-Bus, z.B. die Netzwerkkarte.

Zwei Geräte werden im Gerätemanager nach wie vor als „unbekannt“ angezeigt: Eine „PCI Card“ und ein „PCI Communication Device“. Ersteres ist der Virtio memory balloon, zweiteres die Virtio console. Beide werden unter Windows 98 SE nicht unterstützt.

DMA-Modus von Festplatte und CD-ROM aktivieren

„Systemsteuerung“, „System“, „Gerätemanager“, „Laufwerke“ ausklappen, rechte Maustaste auf die „GENERIC IDE DISK“, „Einstellungen“, Haken bei „DMA“ setzen. Das Ganze dann bei CD-ROM wiederholen.

Windows patchen und Virtualisierung wieder auf „kvm“ stellen

Die Startprobleme mit KVM werden durch zwei Bugs in Windows verursacht. Einen Patch und mehr Infos gibt es hier: https://github.com/JHRobotics/patcher9x. Den Patch am Besten mit dem dort zum Download angebotenen Disketten-Bootimage einspielen. Danach funktioniert Windows 98 SE auch mit KVM problemlos – in der XML-Beschreibung der VM kann der Domain Type“ also wieder von „qemu“ zu „kvm“ zurückgeändert werden. Dabei auch gleich sicherstellen, dass weiter unten, bei „devices“, „emulator“ auf „/usr/bin/kvm“ steht.

Bestehende Probleme

Beim Herunterfahren bleibt Windows 98 SE mit schwarzem (oder buntem) Bildschirm stehen. Dieses nervige Verhalten tritt auch auf echter Hardware sehr häufig auf, somit wird die Qualität der Emulation dadurch eigentlich sogar erhöht…