关于 MBR/GRUB 的问题

关于 MBR/GRUB 的问题

我有一个简单的问题。MBR(GRUB)位于哪里,是在分区内吗?格式化并删除 Ubuntu 分区时它会被删除吗?

答案1

这个问题并不像你想象的那么简单。

首先,MBR 和 GRUB 不是一回事。膜生物反应器是:

任何硬盘或软盘的第一个扇区中的信息,用于标识操作系统的位置和方式,以便操作系统可以引导(加载)到计算机的主存储器或随机存取存储器中。主引导记录有时也称为“分区扇区”或“主分区表”,因为它包含一个表,用于定位硬盘已格式化到的每个分区。除了这个表之外,MBR 还包括一个程序,该程序将包含要引导到 RAM 中的操作系统的分区的引导扇区记录读取到 RAM 中。反过来,该记录包含一个将操作系统的其余部分加载到 RAM 中的程序。

GRUB然而,是:

GNU 项目的引导加载程序包。GRUB 是自由软件基金会多重引导规范的参考实现,它为用户提供了选择,可以引导计算机上安装的多个操作系统之一,或者选择特定操作系统分区上可用的特定内核配置。

简短的版本:MBR 是硬盘上的信息,它告诉计算机的 BIOS 要启动什么。GRUB 是一个引导加载程序,它会扫描已安装的操作系统并将其显示在列表中以供选择。(这不是最好的总结,但目前应该可以了)


MBR(GRUB)位于哪里,是在分区内吗?

嗯,这得看情况。实际上,硬盘至少有两种不同的设置方式:

  • 膜生物反应器

    上面已经解释过了,所以我想我可以就此打住。

  • 谷氨酰胺磷酸酶

    这是一个比 MBR 更新的标准,尽管它本质上做同样的事情。GPT 具有更多功能,并且通常比 MBR 更有用。但是,对于一般用途而言,两者并没有太大区别。

(有关差异的更深入解释:http://www.howtogeek.com/193669/whats-the-difference-between-gpt-and-mbr-when-partitioning-a-drive/

不过,有一个区别对于您的问题非常重要,那就是 (U)EFI。使用 GPT 的硬盘与 EFI 兼容。MBR 则不兼容,至少通常不兼容。

UEFI 以硬盘最开始处的一个小 FAT32 分区的形式出现。支持 GPT/EFI 的操作系统会将其启动文件放在这个分区中。如果硬盘所在的系统兼容 EFI,它将首先查看该 EFI 分区并找到一个启动文件来加载操作系统。如果有多个选项,则有某种优先级系统可以决定从哪个文件启动,但我真的不知道它是如何工作的。

MBR 不使用此 EFI 分区。相反,OS 启动文件存储在其各自的分区中,MBR 会告诉 BIOS 要查找什么。对于 GRUB,正常的 MBR 代码会被 GRUB 的第 1 阶段部分替换。然后,该部分会传递到第 1.5 阶段部分,然后传递到第 2 阶段。第 2 阶段是分区上该过程的唯一部分。

这种配置在 Windows 上非常不同,但我们在这里不是要讨论 Windows。

所以,最后,答案来了。对于 MBR 和 GPT,只删除 Ubuntu 分区是个坏主意。在这两种情况下,GRUB 的重要配置都存储在各自的操作系统分区中,而实际引导加载程序的大部分(MBR)或全部(GPT)都位于硬盘的最开始处。

删除 Ubuntu 分区不会删除 GRUB,反而会导致grub rescue出现。这就是为什么有这么多关于删除 Ubuntu 并保留 Windows 或删除 Ubuntu 并安装 Windows 的问题:GRUB 不喜欢放弃驱动器。


这让我想到了你问题的第二部分:

当您格式化并删除 Ubuntu 的分区时它会被删除吗?

由于编辑能力和记忆力的不足,我似乎已经在上面回答了这个问题。


您似乎对 MBR 和 GRUB 有什么误解。希望我已经解决了这个问题并回答了您的问题。

答案2

MBR(GRUB)位于哪里,是在分区内吗?

不,它不在分区内。MBR(主引导记录)是磁盘,因此在 512 字节扇区的磁盘上它是 512 字节。

需要注意的是,分区的第一个扇区实际上称为分区引导记录或者卷引导记录

当你格式化并删除 Ubuntu 的分区时它会被删除吗?

不,当您删除分区时,MBR 不会被删除,因为它位于分区范围之外,但是在这样的操作中分区表会相应地更新。

答案3

根据我对 MBR 和 Grub 的理解,这是一个多部分的答案。如果我错了,请纠正我。

MBR 本身位于硬盘第一个扇区(0 扇区)的 512 字节中,位于分区空间之外。MBR 随 boot.img 文件一起加载,而 boot.img 文件的唯一功能是加载 core.img。

core.img 位于接下来的 32k 磁盘空间中(介于扇区 1-63 之间)。这也存在于分区区域之外。core.img 由 diskboot.img(取决于启动方法)、kernel.img 以及显示消息和挂载 /boot 分区所需的视频和文件系统模块组成。core.img 挂载 /boot 分区并读取 grub.cfg 并启动 GRUB 菜单系统。

所以根据我的理解,您不会通过删除 /boot 分区来删除 Grub 本身,而是删除 core.img 用来启动它的 *.cfg 文件。

相关内容