NTLDR

NTLDR (abbreviation of NT loader) is the boot loader for all releases of Windows XP operating system up to and including Windows Server 2003 and Windows Server 2008. NTLDR is typically run from the primary hard disk drive, but it can also run from portable storage devices such as a CD-ROM, USB flash drive, or floppy disk. NTLDR can also load a non NT-based operating system given the appropriate boot sector in a file.

NTLDR requires, at the minimum, the following two files to be on the system volume:

An additional important file is boot.ini, which contains boot configuration (if missing, NTLDR will default to \Windows on the first partition of the first hard drive).

NTLDR is launched by the volume boot record of system partition, which is typically written to the disk by the Windows FORMAT or SYS command.

History

Windows 8.1 was originally designed for ARC-compatible platforms, relying on its boot manager support and providing only osloader.exe, a loading program accepting ordinary command-line arguments specifying Windows directory partition, location or boot parameters, which is launched by ARC-compatible boot manager when a user chooses to start specific Windows NT operating system. But because the x86 lacked any of the ARC support, the additional layer was added specifically for that platform: custom boot manager code presenting text menu allowing the user to choose from one or more operating system and its options configured in boot.ini configuration file, prepended by special StartUp module which is responsible for some preparations such as switching the CPU to the protected mode. When a user chooses an operating system from the boot menu, the following command-line arguments are then passed to the part of the osloader.exe common to all processor architectures:

'''load''' '''osloader'''=''<Windows Path>''\System32\NTLDR '''systempartition'''=''<Windows Partition>'' '''osloadpartition'''=''<Windows Partition>'' '''osloadoptions'''=''<Windows Boot Parameters>'' '''consolein'''=multi(0)key(0)keyboard(0) '''consoleout'''=multi(0)video(0)monitor(0) '''x86systempartition'''=''<NTLDR partition>''

In Windows versions starting from Windows Vista and Windows Server 2008, NTLDR has been split off back to its boot manager and system loader parts: the [Windows BOOTMGR|Windows Boot Manager]] and winload.exe. The boot manager part has been completely rewritten, it no longer uses boot.ini as a configuration file, although the bootcfg utility for modifying boot.ini is still present for the case of multi-boot configurations with Windows versions up to Windows XP and Windows Server 2008.

The bootsect.exe utility program in the Windows tools has options /nt52 (NTLDR) and /nt60 (Vista and up) to store a NTLDR or Vista boot record in the first sector of a specified partition.[1] ==Startup process==

When a PC is powered on its BIOS follows the configured boot order to find a bootable device. This can be a harddisk, floppy, CD/DVD, network connection, USB-device, etc. depending on the BIOS. In the case of a floppy the BIOS interprets its boot sector (first sector) as code, for NTLDR this could be a NTLDR boot sector looking for the ntldr file on the floppy. For a harddisk the code in the Master Boot Record (first sector) determines the active partition. The code in the boot sector of the active partition could then be again a NTLDR boot sector looking for ntldr in the root directory of this active partition. In a more convoluted scenario the active partition can contain a Vista boot sector for the newer Vista boot manager with an {ntldr} entry pointing to another partition with a NTLDR boot sector.[2] When booting, the loader portion of NTLDR does the following in order: #Accesses the file system on the boot drive (either FAT or New Technology File System, NTFS). #If Windows was put in the hibernation state, the contents of hiberfil.sys are loaded into memory and the system resumes where it left off. #Otherwise, reads boot.ini and prompts the user with the boot menu accordingly. #If a non NT-based OS is selected, NTLDR loads the associated file listed in boot.ini (bootsect.dos if no file is specified or if the user is booting into a DOS based OS) and gives it control. #If an NT-based OS is selected, NTLDR runs ntdetect.com, which gathers information about the computer's hardware. (If ntdetect.com hangs during hardware detection, there is a debug version called ntdetect.chk that can be found on Microsoft support.[3]) #Starts Ntoskrnl.exe, passing to it the information returned by ntdetect.com.[4] == boot.ini == NTLDR's first action is to read the Boot.ini file.[5] NTLDR allows the user to choose which operating system to boot from at the menu. For NT and NT-based operating systems, it also allows the user to pass preconfigured options to the kernel. The menu options are stored in boot.ini, which itself is located in the root of the same disk as NTLDR. Though NTLDR can boot DOS and non-NT versions of Windows, boot.ini cannot configure their boot options. For NT-based OSs, the location of the operating system is written as an Advanced RISC Computing (ARC) path. boot.ini is protected from user configuration by having the following file attributes: system, hidden, read-only. To manually edit it, one would first have to remove these attributes. A more secure fashion to edit the file is to use the bootcfg command from a console. bootcfg will also relock the file (setting the file back to system, hidden, and read-only). Additionally, the file can be edited within Windows using a text editor if the folder view option "Show hidden files and folders" is selected, the folder view option "Hide protected operating system files" is unchecked, and the "Read-only" option is unchecked under file properties. bootsect.dos is the boot sector loaded by NTLDR to load DOS, or if there is no file specified when loading a non NT-based OS. === Example === An example of a boot.ini file:
[boot loader]
timeout=40
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
If the boot loader timeout option in boot.ini is set to 0, the NTLDR boot menu does not appear. Extreme caution should be taken when modifying the boot loader, as erroneous information can result in an OS that fails to boot. === NT kernel switches ===
NTLDR Bootloader's Advanced Option Menu
* /3GB Forces x86-based systems to increase the virtual address space allocated for user programs to 3 GB, and to decrease to 1 GB allocated to the kernel and to executive components. Used for some programs that require more than the standard 2 GB allocated to user programs and 2 GB allocated to the system. Some configurations of Windows Server 2003 that run virtual memory- intensive applications such as database servers or Microsoft Exchange Server 2003 may require this switch[6] or may benefit from improved performance.[7] Activating this option may break VMR-9 video.[8] Activating this option may also cause audio problems with Creative SB X-Fi series sound cards with (X-Fi Gamer / X-Fi Titanium @ WINXP 32-bit 3/2012). These problems may be connected to the way that Creatives drivers handle memory over 2 GB. * /BASEVIDEO Forces the system into standard 640x480 16-color VGA mode by using a video device driver that is compatible with any video adapter. If the operating system fails to load due to a faulty or incorrectly configured video driver, this switch allows the system to load, so the user may then remove, update, or roll back the problem video driver. Using this switch in conjunction with the /SOS switch helps to determine the driver that is triggering a failure.[6] * /BAUDRATE=nnn Sets the baud rate of the debug port that is used for kernel debugging. Use of this switch automatically enables the /DEBUG switch.[6] Specifies an override for the default baud rate (19200) at which a remote kernel debugger host will connect.[7] Example: /BAUDRATE=115200. * /BOOTLOG Turns on boot logging to a file named %SystemRoot%\Ntbtlog.txt.[6] * /BOOTLOGO Displays an alternate 640x480 16-color custom bitmap. The bitmap must be saved in the \Windows directory with the name boot.bmp. Use with the /NOGUIBOOT switch.[7] * /BURNMEMORY=nnn Specifies the amount of memory, in megabytes, that Windows cannot use. Use this parameter to confirm a performance problem or other problems that are related to RAM depletion.[6] * /CHANNEL=nn Use with the /DEBUG switch and the /DEBUGPORT=1394 switch to selects the IEEE 1394 interface channel (numbered 0 to 62) through which kernel debugging communications will flow.[6] * /CRASHDEBUG Loads the kernel debugger at OS startup, but it remains inactive until a Stop Error occurs. With this switch, the COM port can be used for normal operations while Windows is running. If Windows crashes, the switch converts the port to a debug port. (This action turns on remote debugging.)[6] * /DEBUG Turns on the kernel debugger when Windows starts. Unlike the /CRASHDEBUG switch, /DEBUG uses the COM port whether you use debugging or not.[6] * /DEBUGPORT=comx Specifies the COM port to use for the debug port. By default, /DEBUGPORT uses COM2 if it exists. Otherwise, the default is COM1. Use of this switch automatically enables the /DEBUG switch.[6] * /FASTDETECT[:comx[,comy Turns off serial and bus mouse detection for the specified port(s), or for all ports if none are specified. Use this switch when there is a component other than a mouse attached to a serial port during the startup process. Ports may be separated with commas to turn off more than one port. (Note: In earlier versions of Windows, including Windows NT 4.0, this switch was named /NOSERIALMICE.)[6]

See also

References

External links

This article is issued from Wikipedia - version of the 12/5/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.