I have a MS-DOS 7.10 install on my SATA hard drive (BIOS set to IDE compat mode), and so I copied over the Windows 2000 install files and ran i386/winnt.exe
. It copies over the files fine, but when it restarts and runs setup, it stops for a few seconds at ‘Setup is Starting Windows 2000’, before BSODing with code 0x00007B: INACCESSIBLE_BOOT_DEVICE
. What’s going on? I think it may have to do with drivers and it not having the proper drivers to read the hard drive, but I’m not sure.
-
5I don't see how this is off-topic. It's a question about Windows 2000.– wizzwizz4 ♦Aug 30, 2022 at 11:28
-
1This is not about retrocomputing.– AnixxAug 2 at 5:23
-
2@wizzwizz4 this is obviously off-topic. This OS while unsupported, can run on modern hardware and the question specifically asks about modern hardware.– AnixxAug 2 at 5:29
-
1@Anixx So can Windows 98 (if you reduce the OS-accessible memory / modify the memory manager), but that's on-topic.– wizzwizz4 ♦Aug 2 at 13:06
-
@wizzwizz4 for one, pointing to an only marginally related OS does not make a point, more important, It already requires, as you mention, additional steps to do so, which is not the case for W2k (AFAICT).– RaffzahnAug 3 at 17:27
3 Answers
Most likely the problem is that your SATA HDD is larger than ~128GB, therefore necessitating LBA48 addressing. Windows 2000 supports LBA48 as of Service Pack 3, but it's NOT enabled by default.
If your installation medium is at least Service Pack 3, you can manually enable LBA48 support by adding/editing this registry key:
HKLM\System\CurrentControlSet\Services\Atapi\Parameters\EnableBigLba
It is a DWORD value which needs to be set to '1'.
In order to make registry changes on a non-booting OS, you'll need another machine which can run a registry editor such as REGEDT32.EXE. The relevant registry hive to be edited in this case is WINNT\SYSTEM32\CONFIG\SYSTEM
.
Be aware that you can also modify the installation files themselves, so that your fresh install of Windows 2000 will have LBA48 support enabled from the beginning. To do this you would use REGEDT32 to open SETUPREG.HIV in the i386 directory from the Windows 2000 CD, and add the same registry entry there.
-
2In this case, is it the partition that setup is running from that the size matters or the whole drive itself? Sep 1, 2022 at 23:27
-
3@the_electro_bros - The partition size is the main issue, as the entire thing needs to be addressable using LBA28 if you want to use that. Creating a small partition at the beginning of a large disk can work, but sometimes there are obscure issues that still foul it up.– DamageXSep 2, 2022 at 7:38
Win 2K has no support for sata devices, so when it switches to protected mode, the device becomes inacessable, and cant boot.
The same is true for XP, you must supply the sata driver via a floppy disk, (usb floppy drive ok since at this point the bios will emulate a floppy, but usb sticks will not work) or slipstream it onto the installation cd, this true for all controllers.
You need to hit the appropriate key during the installation, when it asks about mass storage devices. Annoyingly the prompt is just before it starts copying files and only available for a few seconds.
Win XP drivers and win2k are sometimes interchangable, if win2k drivers are not available.
If the boaard manufacturer does not have sata drivers, intel has reference ones for many chipsets.
Otherwise you are out of luck
-
1The asker mentioned IDE compatibility mode is enabled in BIOS settings; isn’t that provided at the controller level usually? Why wouldn’t it work? Aug 29, 2022 at 17:37
-
2it will work only until the protected mode switch, hence the first part of the installer will run, and win 98 could run aince it can do disk access bia bios calls. 32 bit os, nt 2k xp and later cant– camelcccAug 29, 2022 at 17:47
-
1once you are in 32 bit mode, the bios can perform no further action. Its not as if win2k will fit on any actual IDE drive, as opposed to an ata one. win2k must operate in ata mode, or it cant see the device. This is unfortunate if it cant detect the ata controller– camelcccAug 29, 2022 at 18:38
-
2I also dont know how even in principle this could be emulated - anything over 128gb needs lba48, and that didnt come out until 2002, im pretty sure win2k doesnt support that either In the days of win2k we used scsi if we needed a high capacity drive. Sure a controller could in principle support emulation, but ive never seen it.– camelcccAug 29, 2022 at 19:18
-
1I'm not sure if this is right. Disk size, yes, but in all computers I've used that had an "IDE/AHCI" switch, the emulated IDE interface remained visible the entire time, even within a 32-bit or 64-bit OS (while the AHCI interface disappeared from lspci) – so it's definitely not BIOS-level emulation, but rather the BIOS telling the controller itself to switch into a different mode, or something such. (That is, Windows 10 would see an IDE disk and wouldn't use its StorAhci driver, etc.)– grawityAug 30, 2022 at 18:14
Yes, I believe you have answered your own question here. Apart from an actual failed boot device, which seems unlikely here, the usual reason is that the required device driver is no loaded for Windows.
Many common (in the day) devices were inherently supported by Windows or the devices had a "compatibility" mode to allow them to operate, often at a lower performance level, in order to boot Windows. But there were devices then, and probably more now, where there is no compatibility mode and there was no built-in support in Windows 2000.
You will need to find a driver for this device, assuming one exists, and install it into your boot image so that Windows can find it during initialization.
Note that it could be either the SATA hard drive itself or it could be the hard drive controller/interface which is likely on the motherboard. I'd start with the motherboard manufacturer. A big problem now is that newer hardware rarely has support for obsolete systems like Windows 2000. So you may be out-of-luck on this one.