142 PQBoot切换多系统启动的原理分析及应用场景

PQBoot切换多系统启动的原理分析及应用场景

下载PQBoot工具:关注公众号,在公众号后台回复pq即可获取下载链接.

PQBoot工具在切换操作系统的时候只做了两件事情:

  • 将待启动操作系统所在的分区变为活动主分区
  • 将其余操作系统的分区参数在MBR里面更改为0x17,也就是隐藏属性

从以上两个操作可以看出:

  • 重新设置磁盘的活动主分区为PQBoot工具能够成功启动其他系统的关键操作
  • 在MBR中隐藏其他操作系统所在的分区为额外的操作,可有可无

通过以上描述,我们可以得出使用PQBoot工具的前提:

  • 每一个安装操作系统的分区都必须只包含该分区内操作系统的引导信息(根目录中存在boot文件夹,BOOTMGR,boot文件夹中存在BCD文件)

如果安装系统后不符合上述前提:

  • 若一个BCD文件内包含了多个操作系统的引导项目,那么电脑启动后仍然会在Windows boot manager界面停留,需要用户手动选择一个操作系统回车进入.
    • 如果用户选择了安装在活动主分区中的操作系统,那么可以正常启动.
    • ※※ 如果用户错误的选择了位于其他分区中的操作系统,在这种情况下,虽然在一开始Windows可以正常引导(因为winload.exe可以直接被BOOTMGR加载而不需要事先提前挂载分区),但是winload.exe不能完成他的工作.因为在MBR中,这个被用户选择启动的分区是一个强制隐藏分区,Windows无论如何也不能够给这个分区分配一个盘符(也就是无法挂载为C:盘)所以,Windows无法正常启动,而是在logo界面一直转圈 ※※

通过以上分析我们也可以得出结论:PQBoot工具不适用于现代的UEFI固件以及GPT磁盘.

  • 不适用于UEFI固件:PQBoot工具工作的方法是更换磁盘上的活动主分区.UEFI固件的工作过程与活动主分区无关.
  • 不适用于GPT磁盘:GPT磁盘没有活动主分区的概念,或者说,GPT磁盘上的所有分区都是活动主分区.

然而,如果你的UEFI固件默认开启了CSM模式,那么就可以把UEFI固件看作是Legacy BIOS固件了.这种情况下可以使用MBR磁盘的活动主分区等等概念,与Legacy BIOS无差异.

因此,理解了PQBoot工具的原理,我们完全可以不依赖PQBoot工具,自己修改活动主分区和隐藏分区属性,达到和PQBoot工具相同的启动效果.

在这里扩展一个题外话:BIOS能否识别出一个分区在磁盘上被标记为隐藏分区?

答案是:不能.

Legacy BIOS 在启动时到底做了什么?

  • BIOS 的工作
    1. 初始化硬件
    2. 按启动顺序找到一个可启动设备
    3. 从该设备的 第一个扇区 (LBA 0, MBR) 读出 512 字节
    4. 把这 512 字节直接加载到内存并执行(跳转到 0x7C00)

BIOS只负责把 整个 MBR 代码 交给 CPU 执行,它本身不会去解读分区表里“分区隐藏与否”的标记.


谁来解读 MBR 分区表?

  • 其实是 MBR 引导代码(那段 446 字节的机器码),它会去解析后面 64 字节的分区表.
  • 在分区表中,每个分区记录有 16 字节,其中第 5 个字节是分区类型 .
  • 如果类型是 "隐藏",操作系统会识别出来并忽略它,不挂载.

BIOS 能不能理解“隐藏分区”?

  • 不能.
    BIOS 完全不会去解析分区表,也不会因为某个分区是 0x17(隐藏 NTFS)就忽略它.
  • BIOS只把 MBR 引导代码交给 CPU ,分区表的解释、隐藏标志的意义,都是 后续的 MBR 代码和操作系统 来处理

请注意:本文的所有结论都经过实验验证!

下载PQBoot工具:关注公众号,在公众号后台回复pq即可获取下载链接.

posted @ 2025-11-30 23:46  吕了了  阅读(0)  评论(0)    收藏  举报