NTLDR(的缩写)是微软的Windows NT系列操作系统(直至Windows XP和Windows Server 2003)的引导程序。NTLDR可以从硬盘以及CD-ROM、U盘等移动存储器运行并引导Windows NT系统的启动。如果要用NTLDR启动其他操作系统,则需要将该操作系统所使用的启动扇区代码保存为一个文件,NTLDR可以从这个文件加载其它引导程序。
NTLDR主要由两个文件组成,这两个文件必须放在系统分区(根据微软的定义,为在MBR中标识为活动分区的分区,一般为第一个分区/C分区):
boot.ini也是比较重要的文件。它是引导程序的配置文件。当boot.ini丢失时,NTLDR会启动第一块硬盘第一个分区上的\Windows目录中的系统。
在安装、维护Windows NT系统时,可以使用fixmbr命令在硬盘中写入启动NTLDR引导程序的代码。
Windows Vista、Windows Server 2008及以后版本的操作系统中,NTLDR被BOOTMGR替代。
NTLDR由两个可执行文件构成:
使用WinHex或者类似的二进制处理软件,在NTLDR中搜索“MZ”,并将其前的部分截去,即可以获得OSLOADER.EXE。在Windows安装文件中也可以找到压缩后的OSLOADER.EX_文件。
Windows NT最初是为ARC(一类RISC系统架构)设计的,因此只有OSLOADER.EXE,即系统加载器,通过接受指定的系统文件路径和其他启动参数引导对应目录下的Windows NT系统,而指定这些参数的工作交给ARC自带的启动管理器进行。x86架构缺乏启动管理器:BIOS只会调用第一启动设备的MBR中列明的活动分区的卷引导记录。因此启动管理器的功能被包括在OSLOADER部分中,直至微软在2003年引入了自己的启动管理器。ARC的启动管理器的保护模式切换和PE文件识别运行功能则交给STPBOOT完成。boot.ini中的列表项也被设计为类似于ARC的格式,以便直接传给OSLOADER.EXE。
在确认系统为冷启动,即非休眠模式后,NTLDR所做的第一件事为读取boot.ini。
以下是boot.ini的一个示例:
timeout=30default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWSmulti(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetectC:\grldr="Ubuntu"C:\="Previous Version of Windows"