Grub2 MBR 与 Windows MBR

Net*_*ker 5 boot mbr multi-boot ubuntu grub2

我有一个安装了 Vista 的 HP 系统以及一个隐藏的恢复分区。我随后升级到 Win7(32 位)旗舰版,并从那里升级到 Win7 Pro。现在硬盘坏了。我设法使用 partimage 来抓取恢复分区(没有错误),然后我将它放在冰上以准备基于冷冻机的 Win7 分区恢复。

在另一个驱动器上,我创建了 3 个主分区和一个扩展分区:

  1. 恢复分区 (NTFS)
  2. Win7 分区 (NTFS)
  3. Ubuntu 根目录 (ext4)
  4. Ubuntu 交换 (ext4)(逻辑分区)

接下来,我安装了 Ubuntu 10.4 并允许 grub2 安装 MBR。然后,我使用 partimage 用我从故障驱动器上拉下的映像填充恢复分区。现在,在我尝试恢复 Win7 分区之前,我想确保我可以访问现有的恢复分区。而我不能。我可以看到文件,但我无法启动它。Grub 将其视为 Windows 分区并将其列在菜单中。但是当我尝试启动它时,我只是盯着一个带有闪烁光标的空白屏幕。我试图通过使用 gparted 使恢复分区处于活动状态并直接引导到该分区而不是 grub 来绕过 grub,但我仍然引导到 grub。

有了这个背景,让我提出我的问题。

  1. 据我了解,标准 IBM/WINdows MBR 代码在分区表中查找设置了活动/可引导标志的第一个主分区,然后将控制权转移到它在该分区开头找到的代码,或“分区引导”记录”(PBR)。PBR 然后定位 NTLDR/BOOTMGR/grub/etc 并加载它。我的理解正确吗?
  2. 在引导过程中,用于引导到恢复分区的中断键(在 HP 的情况下为 f11)在哪里处理?MBR?PBR?引导管理器/加载程序?
  3. 当 grub 写入 MBR 时,它似乎也使用了轨道 0 的其余部分,并且 MBR 代码在继续将其余 grub 代码加载到它加载的任何分区(在我的情况下是分区 3)之前执行此代码。从这个意义上说,它忽略分区表中的活动/可引导标志。我是否正确理解了这一点?

我显然在这里遗漏了一些部分,因为我无法加载我的恢复分区。我认为 grub“chainloader”(为什么是 +1?)命令只会执行 PBR 代码。如果这是真的,那么我的恢复分区中的某些东西就会被冲洗掉。

Bil*_*eal 4

在具有此类恢复分区的系统上,通常活动分区是恢复分区。恢复分区显示“按 F11”消息,如果未按下,则转发到主操作系统分区。

MBR 本质上是愚蠢的;它所做的只是选择其中一个分区,然后转发到该分区的 VBR。

如果您想要 Linux/Windows 双启动,那么恢复分区需要转发到 GRUB 分区,然后该分区将允许选项,并且如果选择 Windows,则将转发到 Windows。

我不会在恢复分区上浪费时间——您可以从 HP 网站上获取所有驱动程序,如果您的包装盒上已经有 7 个驱动程序,我想我们都同意恢复到 Vista 的可能性不大。

因此,针对您的具体问题。

  1. 是的,你的理解是正确的
  2. 上面已经回答了
  3. 不确定 GRUB 安装到 MBR 后具体会做什么。据我了解,它并没有真正将业务逻辑放在那里,但我可能是错的。

希望有帮助:)