Files
Workstation/qemu_win98.md
2023-01-22 10:23:32 -05:00

2.3 KiB

Windows 98

The installation process is quite different since Windows 98 will be incompatible with most of the defaults in virt-manager.

Install

https://en.wikibooks.org/wiki/QEMU/Windows_98

https://wiki.gentoo.org/wiki/QEMU/Options#Display_options

You'll need to install from command line like so:

qemu-system-x86_64 \
    -cdrom /var/lib/libvirt/iso/windows98se.iso \
    -boot order=d \
    -drive file=/var/lib/libvirt/images/win98.qcow2 \
    -m 512 \
    -device sb16 \
    -display sdl
  • cdrom allows us to use the ISO image. It's also possible to use virsh to forward a physical drive to a file, but reading the data from the hard drive is usually faster.

  • boot allows us to specify the order to d, which is the CD.

  • drive allows us to use the image we just created.

  • enable-kvm turns on hardware acceleration in x86 using the kernel VM. KVM causes problems on Windows hosts when shutting down the guest and can even prevent it from starting in some cases. If this occurs, you can safely remove it from the command.

  • m allocates the guest's RAM. In this case we use 512, but going above it can be dangerous for Windows 9x.

  • device allows us to add a device driver, in this case, the Creative SoundBlaster 16 sound card (sb16) to get audio. Standard Windows 98 discs ship with drivers for it, and if you haven't used this flag while installing, it would need to scan for it.

  • display allows us to use an alternative display engine rather than GTK+. In this case, we use Simple DirectMedia Layer because it doesn't conflict as much with fullscreen support. You can press Ctrl+Alt+F to enter and exit fullscreen mode and Ctrl+Alt to have QEMU grab or ungrab the keyboard input and invoke the monitor as usual.

Boot

We'll boot with the same command we used to install but without the boot parameters

qemu-system-x86_64 \
    -drive file=/var/lib/libvirt/images/win98.qcow2 \
    -m 512 \
    -device sb16 \
    -display sdl
sudo qemu-system-i386 \
    -name "Windows 98" \
    -L pc-bios -nodefaults -no-hpet -no-reboot -display sdl \
    -M pc,accel=tcg -cpu pentium3 -m 1024 \
    -drive file=/var/lib/libvirt/images/win98.qcow2 \
    -device VGA -device sb16 -device rtl8139,netdev=net0 \
    -netdev user,id=net0,hostfwd=tcp::8080-:80,hostfwd=tcp::2222-:22 \
    -rtc base=localtime,clock=host