Where does the Boot-loader reside?

Where does the Boot-loader reside? Is it in the MBR (Master Boot Record) or the Partition Boot sector?

Neither, really, by a strict interpretation of "boot loader" as "operating system loader". Both by a more lax definition as merely "program involved in the bootstrap process somehow".

In the old PC/AT and PC98 boot process, there's a bootstrap program in the MBR that looks for a "startable" (a.k.a. "active") volume, and there's a second bootstrap program in the VBR, of that volume, that is loaded and run by the first bootstrap program. On Windows NT 6.x, this second program loads Microsoft Boot Manager, which in turn, finally, gets around to loading the Windows operating system boot loader, WINLOAD. It's WINLOAD that's the Windows NT 6.x operating system boot loader, and that lives in an ordinary file on the Windows boot volume, in the "System" directory.

The Windows boot loader used to be NTLDR on the system partition, but is now WINLOAD on the boot partition.

Suppose I installed Windows OS in my "D" drive, then where will the Boot-loader get installed? Is it in the Partition Boot sector of D drive or MBR?

It is not necessarily in any boot sector at all; and "D" is meaningless.

"D" is meaningless, firstly, because Windows NT has never installed into just a single volume. It always installs in terms of two. This has been the way that Windows NT has always worked. It isn't DOS.

Non-x86 flavours of Windows NT have always, going back to Windows NT version 3, had separate boot and system partitions by default. The system partition is where the boot loader program lived, in a file on that partition. There are no bootstrap programs in MBRs and VBRs on such platforms. The Windows NT boot loader program is loaded from file and run directly by the machine firmware.

On x86 platforms, in contrast, up until Windows NT 6.1 ("Windows 7"), the installation default, for a blank disc, was to still have boot and system partitions, but to combine them into one, and not use the designated partition types for true system partitions. (For installing to a non-blank disc, containing a prior version of Windows NT, one actually gets separate system and boot partitions, as the new version of Windows NT adds its own boot partition but re-uses the existing system partition.) Rather, the combined boot+system volume would be a Microsoft Data partition acting as a Poor Man's system partition, and this would be alright because the firmwares on x86 systems (up until roughly 2005) didn't mandate the presence of true system partitions.

From Windows NT version 6.1 ("Windows 7") the installation default for x86 is now to always create separate boot and system partitions, even when installing to blank discs. So now the behaviour is the same for x86 as it always was for non-x86 and things are uniform. The x86 world is finally coming into the fold. There now exist x86-64 systems (at least) with UEFI firmware, that boot Windows NT 6.1 in the same way that Windows NT 3.1 bootstrapped on ARC machines all of the way back in 1993, using a true system partition, with no VBRs or MBRs at all.

On x86 machines with old PC/AT and PC98/PC99 firmwares, the startable partition, for Windows NT going back to version 3, is always the system partition. The system partition is always required to be marked "active". (Be aware that this is not how it is identified.) The system partition's VBR contains a bootstrap program that:

  • on Windows NT up to and including version 5.2 loads the Windows operating system loader, NTLDR.
  • on Windows NT from version 6.0 ("Windows Vista") onwards, loads the Microsoft Boot Manager, BOOTMGR, which in turn loads the Windows operating system loader, WINLOAD, from the boot partition

So on such systems in addition to the boot loader (NTLDR or WINLOAD), there are bootstrap programs in MBRs and VBRs, and possibly Microsoft's Boot Manager as well.

"D" is meaningless, secondly, because Windows NT 6.1, when installed from within an earlier version of Windows NT, tries to keep the same drive letters, and so will gain a new drive letter for its boot volume; but when installed on top of an earlier version of Windows NT by booting from the installation disc, will always give itself drive letter "C" for the boot volume (and in either case no drive letter for the system volume, of course). In general it is meaningless to speak of these things in terms of drive letters. Multiple versions of Windows NT could be installed, each with their own sets of arbitrary drive letter assignments different to the others. What is "D" to one could be "C" or even "S" to another.

I have read many articles, but I am still confused.

In part this confusion will have resulted from people thinking that the operating systems that they use now are like the ones that they used to use. Windows NT isn't DOS, and isn't even like DOS. Cast off your DOS Think. Windows NT's design philosophy includes some ideas about operating system bootstraps that are based in the world of the high-end workstation and server rather than the world of the personal computer. For a few years, because of limitations of x86 personal computer firmware, it had to ape DOS a little bit, but now that the x86 world is finally catching up in terms of firmware capability, how Windows NT is designed to work, and has really worked for some eighteen years at this point, is starting to shine through even in the personal computer world.


Here are two great links on the boot process:

http://www.mywindowsclub.com/resources/4150-Windows-booting-procedure.aspx (the only change for Windows Vista/Windows 7/Server 2008 is that they now use the BCD store instead of the boot.ini file).

http://www.slideshare.net/dominiquec/understanding-the-boot-process

I could not do either of those links justice by trying to regurgitate the information here. They presented it very well.