ISA PC doesn't boot any Windows version past NT 4, even with UniATA

Host environment

  • Operating system: Arch Linux, updated about 2 weeks ago
  • OS/kernel version: Linux kluchStation 6.12.58-1-lts #1 SMP PREEMPT_DYNAMIC Fri, 14 Nov 2025 05:38:58 +0000 x86_64 GNU/Linux
  • Architecture: AMD64 (17h, Zen+)
  • QEMU flavor: qemu-system-i386
  • QEMU version: 10.1.2
  • QEMU command line:
    # variant 1
    qemu-system-i386 -M isapc -m 32 -cpu base,vendor=GenuineIntel,model-id="OverDrive PODP5V83",family=5,model=3,stepping=2,fpu,vme,pse,tsc,msr,cx8 -cdrom EN_WIN2000_PRO_SP4.ISO
    # variant 2
    qemu-system-i386 -M isapc -m 32 -cpu 486,vendor=GenuineIntel -cdrom EN_WIN2000_PRO_SP4.ISO

Emulated/Virtualized environment

  • Operating system: any Windows NT version, starting from Windows 2000 RTM
  • OS/kernel version: 2000 RTM - XP SP3
  • Architecture: P4/P5 class

Description of problem

Out of curiosity, I wanted to see how far I could stretch the ISA PC emulation target. As it turns out, it's much less reliable than real hardware or 86Box. The bugcheck returned by versions beyond NT 4 is, in fact, INACCESSIBLE_BOOT_DEVICE. I attempted to bypass that by using UniATA drivers which are supposed to support ISA-only devices, but that didn't work. Same with the NT SP4 IDE/ATAPI driver, doesn't recognise the boot device. I'm not quite sure what the issue is here.

Steps to reproduce

  1. Download a Windows version newer than NT 4.
  2. Download UniATA.
  3. Create a TXTSETUP floppy disk image for it.
  4. Spam F6 until you get the prompt to load said driver.
  5. Wait for Windows to load the kernel and bugcheck due to 0x7B.

Additional information

Windows 2000 BSoD showing error 0x0000007B (INACCESSIBLE_BOOT_DEVICE)