VOGONS


First post, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

It seems Windows 2000's NTLDR is the last to support booting earlier Windows like NT 3.51, and it's being used to enable booting NT3.51/4 outside 1024 cylinder boundary. As such it's very trivial to create a 2000/NT3.51 dual boot environment.

Windows XP's NTLDR will not boot Windows NT 3.51, citing NTOSKRNL.EXE being corrupt, even if it's on a FAT16 partition (or FAT32 using updated fastfat driver). I tried replacing the NTLDR and NTDETECT.COM using those from Win2K then Windows XP would refuse to boot, citing this file (which after some googling revealed it's one of the registry files) being missing or corrupt:

C:\WINDOWS\SYSTEM32\CONFIG\SYSTEM

So it looks like there are some major changes to the boot sequence between 2000's and XP's NTLDR, that created the incompatibility. Is there a way to actually dual-boot Windows XP and NT 3.51?

PS: During install, both Windows 2000 and XP would warn users that Windows earlier than NT4.0 SP3 will not boot properly (corresponding to the NTFS upgrade). In this case, with a FAT16/32 partition, the statement is not true for Windows 2000 but is true for XP.

Reply 1 of 5, by chinny22

User metadata
Rank l33t++
Rank
l33t++

My first thought when reading this was also a Fat16 partition but you already did that.
What about if you keep NT3.51 within the 1024 boundary? say a 400mb drive. I'm doubtful this will work but if it did I'd assume you could make a second "data" partition outside the boundary.
I'd assume a 3rd party boot manager would work but again have never tried.

Reply 2 of 5, by TrashPanda

User metadata
Rank l33t
Rank
l33t

I was thinking that a Linux bootloader might be the only way to get NT3.51 and WinXP/2K to dualboot.

Reply 3 of 5, by dr.zeissler

User metadata
Rank l33t
Rank
l33t

XFDISK no Problem.

Retro-Gamer 😀 ...on different machines

Reply 4 of 5, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

Use the XP NTLDR/NTDETECT to boot XP and the 2000 NTLDR/NTDETECT to boot 3.51. Rename the second pair to NTLD2/NTDETEC2 so you can have all of them in C:\ at the same time. Make a copy of your boot sector that boots NTLD2 instead of NTLDR (simply alter the string with a hex editor) and add it to your BOOT.INI menu. Patch NTLD2 so it uses NTDETEC2 instead of NTDETECT. This is how my laptop is setup.

GBAJAM 2024 submission on itch: https://90soft90.itch.io/wreckage

Reply 5 of 5, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
bakemono wrote on 2022-09-30, 10:14:

Use the XP NTLDR/NTDETECT to boot XP and the 2000 NTLDR/NTDETECT to boot 3.51. Rename the second pair to NTLD2/NTDETEC2 so you can have all of them in C:\ at the same time. Make a copy of your boot sector that boots NTLD2 instead of NTLDR (simply alter the string with a hex editor) and add it to your BOOT.INI menu. Patch NTLD2 so it uses NTDETEC2 instead of NTDETECT. This is how my laptop is setup.

Hmmm, this looks like an interesting idea. Thanks for the advice.

On the other hand, as I also consider booting DOS I think making a batch script to seamlessly switch between the two sets of boot loader files might also work.