Windows 7 发布的时候,Windows Boot Manager 也推出了一个功能,就是 Native boot。不过有个神奇的地方让我很疑惑。
当 Windows 启动管理器运行时,我们可以假设它功能强大,它会读取 VHDX 文件并将 NT 内核提取到 RAM。但是,当 NT 内核已加载到 RAM 中时,引导加载程序的生命周期已结束。
即使 NT 内核功能强大,它也只是一个内核。它需要很多其他组件来配合,而且我认为 NT 内核没有读取 VHDX 文件的能力。
Q1. 我描述的 boot loader extract ntkernel 的进度正确吗?
Q1.1. 动词“提取”在这里合适吗?或者引导加载程序只是将句柄放在磁盘上 VHDX 文件的起始位置,而不做任何其他事情。
一般来说,引导加载程序并不仅限于Windows启动管理器,也可以是其他程序。
Q2. 是否可以从 VDI、VMDK 或 ISO 文件启动?
Q3. VHDX 原生启动的可能性是否基于 VHDX 格式的特殊结构,任何程序都可以像访问真实磁盘上的文件一样直接访问它?
Q4. 有没有详细解释 Native VHDX 启动原理的资源?(是原理,不是配置步骤教程。是本机启动时的行为)
(我是固件和启动方面的初学者,希望得到大师的帮助)
答案1
- 首先,Windows 7 不支持从 VHDX 启动;仅支持 VHD。Windows 8 及更高版本支持 VHDX。
其次,众所周知
bootmgr
,自 Windows Vista 以来,作为 Windows 引导加载程序的一部分,支持从 VHD 文件、WIM 文件(Windows 安装程序在 中运行的方式sources\boot.wim
)、RAM 磁盘、网络和各种磁盘控制器(如 SCSI 和 IDE)引导。根据Windows Internals,第六版,第 2 部分,第 503 页:Bootmgr 包含一个轻量级的 NTFS 文件系统库(Bootmgr 还支持其他文件系统,例如 FAT、El Torito CDFS 和 UDFS,以及 WIM 和 VHD 文件);与引导扇区的代码不同,Bootmgr 的文件系统代码还可以读取子目录。
—Russinovich,Mark;Solomon,David A.;Ionescu,Alex (2012)。Windows Internals,第六版,第 2 部分. 华盛顿州雷德蒙德:微软出版社。第 503 页。ISBN 978-0-7356-6587-3。
所有这些都比 VHD 复杂几个数量级。(WIM 实际上支持文件重复数据删除和压缩。)当然,在某些时候,控制权会转移到 Windows 及其自己的设备驱动程序。VHD 驱动程序是
%SystemRoot%\System32\Drivers\Vdrvroot.sys
。它加载Vhdmp.sys
和Fsdepends.sys
。第三,不支持ISO,VDI和VMDK。
欲了解更多信息,您可以咨询:
但若要更深入地阅读,Mark Russinovich 撰写的《Windows Internals》书籍是我的建议。请记住,这些来源均不会泄露 Microsoft 的商业机密,本网站也不认可此类来源。