26

I tried to install Windows NT4, and I gave it the highest available CPU in QEMU (because that's the default, and of course it's an x64 capable CPU), and it crashed after text mode install. It did not produce a normal panic screen but rather it trashed video memory before transitioning to graphics mode.

The QEMU documentation says that NT4 works with a a pentium CPU; which I trust as far as the guy testing it found that he needed to limit the CPU type down to pentium, but I would not be suprised to find it was the only CPU type tried as NT4 wouldn't know how to get any benefit out of a newer CPU anyway.

Restricting the VM to a Pentium CPU resulted in the install working.

Why did Windows NT4 crash on the emulated x64 CPU?

11
  • 2
    Adding the info which VM you are using might help. @RonJohn Yes but the CPU would not be in 64-bit mode unless the OS has code to enter into 64-bit mode, and therefore an OS not understanding 64-bit mode would not try to enter 64-bit mode to begin with.
    – Justme
    Commented Oct 24, 2023 at 4:26
  • @RonJohn XP also came before AMD64 and they run just fine. I don't think x64 XP was ever released to the public, and Vista was such a failure, so I think most of the AMD64 machines ran 32-bit XP all the way until Windows 7. Commented Oct 24, 2023 at 9:00
  • 3
    @user3528438 x64 XP was absolutely released to the public, Windows XP 64-Bit Edition for Itanium and Windows XP Professional x64 Edition for x86-x64 released April 2002
    – Alan B
    Commented Oct 24, 2023 at 9:40
  • 2
    @RonJohn yes, they still boot in the same way — either BIOS-style boot in 16-bit mode, or UEFI boot. NT4 only supports the former, if the OP got to the text-mode installer that’s not the problem here. Commented Oct 24, 2023 at 12:54
  • 1
    @8bittree: It already works. Grub-EFI never goes to 16 bit mode. But NT4 clearly doesn't write an EFI boot record so it has no choice but to switch to 16 bit mode and load the first sector of the HD if it's going to do anything at all.
    – Joshua
    Commented Oct 26, 2023 at 17:40

1 Answer 1

44

If you’re trying to install Windows NT 4 without Service Pack 6, this could be the result of NT4’s mis-handling of the CPUID instruction. In particular, it would crash on anything after CPU family 7; this isn’t specific to 64-bit CPUs. This is described succinctly in Q238891:

The Windows NT 4.0 kernel currently contains two restrictions that limit the kernel's use to certain processors:

  • A check for a Pentium processor that was never released.

  • A processor bit configuration that limits the maximum processor family to seven.

The result of this is that NT4 pre-SP6 can’t be installed on many CPUs newer than a Pentium III. Ironically, Core-based CPUs identify themselves as family 6, so assuming the description in the KB note is complete, and depending on what is involved in the “check for a Pentium processor that was never released”, this particular bug shouldn’t affect them; but KB notes are prone to being incomplete.

This wasn’t the first time NT used CPUID incorrectly; the October 1992 pre-release can’t be installed because of a bug in its setup of CPUID calls, and the NT 3.1 release doesn’t handle CPUID properly either.

(The issues fixed in NT4 SP6 are listed in Q241211 and Q244690.)

5
  • 1
    The original Core based CPUs IIRC were 'enhanced' P6 processors - so its less ironic, than happenstance. Commented Oct 24, 2023 at 12:55
  • 7
    @JourneymanGeek yes, that’s exactly why they identify as family 6 — the irony in my mind was that (in theory, I haven’t tried) newer CPUs should have less trouble booting NT4 than family 15 CPUs from the turn of the century. Commented Oct 24, 2023 at 12:59
  • I guess if it mattered I could install SP6 and then unlimit the CPU in the VM.
    – Joshua
    Commented Oct 24, 2023 at 13:50
  • 1
    @Joshua yes, if this answer is correct then that should work. I’ve seen reports of people getting NT4 installations working that way on actual hardware (install on another machine, or even in a VM, install SP6, and move to the target system). Installation CDs with SP6 slipstreamed might help. Commented Oct 24, 2023 at 13:58
  • 1
    @StephenKitt Thanks for your explanation! I can duplicate that after installing SP6, there is no special CPU configuration necessary for me (running distro provided Qemu-7.2+KVM on Debian 12) also. But: The Qemu instance itself uses 100% CPU (core) according to top, and the machine isn't exactly quick, compared to W2k on the same platform, which rarely shows any latency at all, without the described 100% CPU effect.
    – PoC
    Commented May 20 at 23:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .