以下是我想问的两个问题。
引导加载程序位于何处? 是在 MBR(主引导记录)中还是在分区引导扇区中?
假设我将 Windows 操作系统安装在“D”盘中,那么引导加载程序将安装在哪里?是在 D 盘的分区引导扇区中还是在 MBR 中?
我读了很多文章,但还是很困惑。
答案1
引导加载程序位于何处? 是在 MBR(主引导记录)中还是在分区引导扇区中?
事实上,严格意义上来说,引导加载程序“作为“操作系统加载器”。 两个都更宽松的定义仅仅是“以某种方式参与引导过程的程序”。
在旧的 PC/AT 和 PC98 启动过程,MBR 中有一个引导程序,它会寻找“可启动”(又名“活动”)卷,并且该卷的 VBR 中还有第二个引导程序,该程序由第一个引导程序加载并运行。 在 Windows NT 6.x 上,第二个程序加载 Microsoft Boot Manager,它反过来最后,开始加载 Windows 操作系统引导加载程序WINLOAD
。 这是WINLOAD
Windows NT 6.x 操作系统的引导加载程序,它存在于在普通文件中在 Windows 上引导卷,在“系统”目录中。
Windows 引导加载程序以前是 NTLDR
在系统分区上,但现在WINLOAD
在引导分割。
假设我将 Windows 操作系统安装在“D”盘中,那么引导加载程序将安装在哪里?是在 D 盘的分区引导扇区中还是在 MBR 中?
它根本就不一定位于任何引导扇区中;并且“D”毫无意义。
“D”是没有意义的,首先,因为 Windows NT 有绝不安装到单个卷中。它总是以两种方式安装。这一直是 Windows NT 的工作方式。它不是 DOS。
非 x86 版本的 Windows NT 具有总是回到 Windows NT 版本 3,有单独的启动和系统分区默认情况下。系统分区是引导加载程序所在的位置,位于该分区上的一个文件中。不是此类平台上的引导程序位于 MBR 和 VBR 中。Windows NT 引导加载程序从文件中加载并由机器固件直接运行。
相比之下,在 x86 平台上,直到 Windows NT 6.1(“Windows 7”),空白磁盘的安装默认设置仍具有启动和系统分区,但将它们合并为一个,而不是使用指定的分区类型真的系统分区。(如果安装到包含 Windows NT 早期版本的非空白光盘,则实际上会获得单独的系统和引导分区,因为新版本的 Windows NT 会添加自己的引导分区,但会重新使用现有的系统分区。)相反,组合的引导+系统卷将是微软数据分区充当穷人的系统分区,这是没问题的,因为 x86 系统上的固件(直到大约 2005 年)并不要求存在真的系統分區。
从 Windows NT 6.1 版(“Windows 7”)开始,x86 的安装默认设置是始终创建单独的启动和系统分区,即使安装到空白磁盘也是如此。因此,现在 x86 的行为与非 x86 的行为相同,一切都是统一的。x86 世界终于进入了正轨。现在存在(至少)带有 UEFI 固件的 x86-64 系统,它以与 1993 年 Windows NT 3.1 在 ARC 机器上引导相同的方式启动 Windows NT 6.1,使用真正的系统分区,完全没有 VBR 或 MBR。
在装有旧 PC/AT 和 PC98/PC99 固件的 x86 机器上,对于 Windows NT 版本 3 来说,可启动分区是总是系统分区。系统分区始终需要标记为“活动”。(请注意,这是不是 如何识别)系统分区的 VBR 包含一个引导程序,它:
- 在 Windows NT 5.2 及更高版本中会加载 Windows 操作系统加载器
NTLDR
。 - 在 Windows NT 6.0 版(“Windows Vista”)及更高版本上,会加载 Microsoft Boot Manager,
BOOTMGR
它反过来加载 Windows 操作系统加载程序,WINLOAD
来自引导分割
因此在这样的系统上此外引导加载程序(NTLDR
或WINLOAD
),MBR 和 VBR 中有引导程序,也可能有 Microsoft 的引导管理器。
“D”毫无意义,其次,因为Windows NT 6.1 在从早期版本的 Windows NT 中安装时,会尝试保留相同的驱动器号,因此将为其启动卷获得一个新的驱动器号;但是,当通过从安装光盘启动安装在早期版本的 Windows NT 之上时,将始终为其启动卷赋予驱动器号“C”(无论哪种情况不当然,这是系统卷的驱动器号)。一般来说,用驱动器号来谈论这些事情是没有意义的。可以安装多个版本的 Windows NT,每个版本都有自己的一组任意驱动器号分配,与其他版本不同。对一个版本来说是“D”,对另一个版本来说可能是“C”,甚至是“S”。
我读了很多文章,但还是很困惑。
这种混淆的部分原因是人们认为他们使用的操作系统现在和他们以前使用的一样。Windows NT 不是 DOS,甚至不是喜欢DOS。摆脱 DOS 思维。Windows NT 的设计理念包括一些关于操作系统引导程序的想法,这些想法基于高端工作站和服务器的世界,而不是个人计算机的世界。几年来,由于 x86 个人计算机固件的限制,它不得不稍微模仿 DOS,但现在 x86 世界终于在固件功能方面迎头赶上,Windows NT 的设计工作方式,以及真的到现在为止已经工作了十八年,甚至在个人计算机领域也开始闪耀光芒。
答案2
以下是有关启动过程的两个重要链接:
http://www.mywindowsclub.com/resources/4150-Windows-booting-procedure.aspx(Windows Vista/Windows 7/Server 2008 的唯一变化是它们现在使用 BCD 存储而不是 boot.ini 文件)。
http://www.slideshare.net/dominiquec/understanding-the-boot-process
我无法通过重复此处的信息来公正地评价这两个链接。它们呈现得非常好。