NTLDR
NTLDR(NT loader
NTLDR
- NTLDR,这是引导
程 序 本身 - NTDETECT.COM,
用 于检测基础硬件 信 息 ,以便系 统正常 启动。
boot.ini也是
Windows Vista、Windows Server 2008及以
结构
[编辑]NTLDR
第 一部分是一个标准二进制文件,用 于切换系统至保 护模式 ,使 得 系 统能识别并运行 可 移植 可 执行(PE)文 件 ,并运行 第 二 部分 。一般 被 称 为STPBOOT.BIN第 二部分是一个可移植可执行文件,被 称 为OSLOADER.EXE
Windows NT
启动步 骤
[编辑]与 一般的系统启动进程一致,BIOS调用MBR,然 后 调用活 动分区 的 卷 引导记录,该卷引导记录被 设计为搜索 NTLDR,并执行 之 。- NTLDR
的 第 一 部分 被 调用。此时系 统进入 保 护模式 ,并可以识别并运行PE格式 的 可 执行文 件 。 - NTLDR
的 第 二 部分 ,OSLOADER.EXE被 调用。OSLOADER.EXE中内 嵌 有 FAT、NTFS和 ISO 9660三种文件系统的驱动,启动管理 器 ,以及INI文 件 读取器 的 CAB文 件 解 压缩器 。OSLOADER中 附 带的文 件 系 统驱动通过BIOS中断 直接 访问磁盘,因 为内核 和 HAL此时都 没 有 被 加 载。此时系 统可以访问磁盘内的 文 件 。 - 如果Windows
被 置 于休眠 模 式 ,读取hiberfil.sys中 的 内容 并将其写入内 存 ,然 后 恢复系 统的运行。 - OSLOADER
使用 内 置 的 INI文 件 读取器 ,试图读取boot.ini文 件 的 内容 ,并配置 启动菜 单。如果boot.ini不 存在 ,OSLOADER将 视为boot.ini中有 且仅有 一 个指向 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS且没有 参 数 的 启动项目。如果boot.ini中 只 存在 一 个启动项目 ,则忽略 timeout的 时间设置(视为0)。 向 用 户显示 启动菜 单,并按照 timeout的 时间设置倒 计时。如果用 户按下 按键,则停止 倒 计时。(这样即 使 只 有 一 个启动项目 ,当用 户在自 检结束 后 狂 按F8键,也可以进入 高 级开机 菜 单)- 如果
一 个非NT的 系 统被选择,OSLOADER加 载列表 项中指定 的 启动扇 区 代 码文件 ,并移交控制 权。此时系 统回到 实模式 。如果没 有 指定 文 件 (常 见于Windows 9x和 Windows NT共存 ),则加载bootsect.dos,然 后 移 交控制 权,由 其搜索 并加载IO.SYS。 - 如果
一 个NT系 统被选择,OSLOADER调用NTDETECT.COM。NTDETECT将 检测系 统硬件 相 关的信 息 ,决定系 统将使用 的 硬 件 配置 文 件 ,并将以上 信 息 交给OSLOADER。 - OSLOADER
根 据 NTDETECT返 回 的 系 统硬件 相 关信息 ,加 载列表 项中指定 的 文 件 夹中的 Windows NT内 核 态管理 程 序 (Windows Executive),包括 NTOSKRNL.EXE及HAL.DLL。此外尚 有 KDCOM.DLL及BOOTVID.DLL也在这个阶段加 载。 - OSLOADER
加 载注 册 表 的 SYSTEM配置 单元,其中包含 数 个系统配置 集 ,每 个配置 集 都 包括 应当加 载的驱动程 序 和服 务等;以及一 系列 指示 标志,指向 默 认配置 集 、上 次 启动失 败的配置 集 及“最 后 一 次 正 确的配置 ”对应的 配置 集 。OSLOADER根 据 用 户选择及上 次 启动情 况选择配置 集 ,读取对应的 应当加 载的驱动程 序列 表 。 - OSLOADER
将 NTDETECT检测到的 硬 件 信 息 及驱动程序列 表 交给Windows NT内 核 态管理 程 序 ,并移交控制 权。[1]
boot.ini
[编辑]示 例
[编辑]
[boot loader]
timeout=30
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
C:\grldr="Ubuntu"
C:\="Previous Version of Windows"
解 释
[编辑]- [boot loader]节:
配置 启动菜 单的细节。 - timeout=30:timeout选项
控 制 启动菜 单显示 的 时间长度,单位为秒,最短 为0,此时启动菜 单不显示。 - default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS:default选项
控 制 启动菜 单的默 认选项。 - [operating systems]节:
列 举启动项目 。 - multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect:
基 于Windows NT的 系 统的启动项目。 - C:\grldr="Ubuntu":
基 于非Windows NT的 系 统的启动项目。 - C:\="Previous Version of Windows"
多 语言支持
[编辑]NTLDR
常 见问题
[编辑]NTLDR
参考 来 源
[编辑]- ^ Microsoft. Windows 2000 Professional Resource Kit 1st. Redmond, WA: Microsoft Press. 2000. ISBN 1-57231-808-2.
- ^ Rick Maybury, Startup and Shutdown Problems, part 1 (页面
存 档备份,存 于互联网档案 馆), Bootcamp, 2009, accessed 25 April 2012 - ^ 3.0 3.1 3.2 Russinovich, Mark. Boot INI Options Reference. Windows Sysinternals Library on TechNet. Microsoft. November 1, 2006 [August 19, 2009]. (
原始 内容 存 档于2008-04-30). - ^ How to Triple Boot to Windows NT, Windows 95/98, and MS-DOS. Microsoft Support. 2007-01-19 [2019-10-12]. (
原始 内容 存 档于2015-06-02). - ^ NTLDR
文 件 丢失的 解 决方案 . [2010-11-26]. (原始 内容 存 档于2010-11-25).
|