Blue screen in Windows XP
Host environment
- Operating system: Ubuntu 24.04.1 LTS (GNU/Linux )
- OS/kernel version: 6.8.0-45-generic
- Architecture: x86_x64
- QEMU flavor: qemu-system-x86_64
- QEMU version: 9.1.0
- QEMU command line:
./qemu-system-x86_64
-nodefaults
-cpu host,kvm=on,l3-cache=on,+hypervisor,migratable=no,-vmx,+invtsc
-smp 2,sockets=1,dies=1,cores=2,threads=1
-m 4G
-machine type=q35,smm=on,graphics=off,vmport=off,dump-guest-core=off,hpet=off,accel=kvm
-enable-kvm
-global kvm-pit.lost_tick_policy=discard
-display vnc=:0,websocket=5700
-vga std
-monitor telnet:localhost:7100,server,nowait,nodelay
-serial pty
-device usb-ehci,id=ehci
-device usb-tablet
-drive file=/storage/windows_xp.iso,id=cdrom9,format=raw,cache=unsafe,readonly=on,media=cdrom
-drive file=/storage/data.img,id=data3,format=raw,cache=none,aio=native,discard=on,detect-zeroes=on,if=none
-device virtio-blk-pci,drive=data3,bus=pcie.0,addr=0xa,iothread=io2,bootindex=3
-object iothread,id=io2
-rtc base=localtime
-global ICH9-LPC.disable_s3=1
-global ICH9-LPC.disable_s4=1
-object rng-random,id=objrng0,filename=/dev/urandom
-device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,addr=0x1c
- Operating system: Windows XP
- OS/kernel version: NT
- Architecture: x86
Description of problem
When starting the installation of Windows XP when using a virtioblk device you immediately get a bluescreen: STOP: 0x000000A5 (0x00000002, 0x8A1A6008, 0xE1018808, 0x8A1B7F00). I think this happens even before it loads the SATA drivers that are slipstreamed in the ISO.
After a lot of Googling about this error 0x000000A5 I found some posts suggesting that changing the machine type from q35 to pc-q35-2.10 solves the issue. And it worked. Anything above 2.10 (for example 2.11) and the bluescreens return.
So I always used this solution, but in QEMU 9.1.0 it warns that pc-q35-2.10 will be removed soon. This would mean there is no way anymore to install XP to a SATA disk unattendly.
Steps to reproduce
- Use a virtioblk disk and SATA drivers
- Start the Windows XP installer
- Bluescreen will appear