将引导加载程序安装到 MBR 是否会以任何方式影响“主分区表”?

将引导加载程序安装到 MBR 是否会以任何方式影响“主分区表”?

我正在学习 grub2。我的系统有 4 个主分区,Windows 8 安装在驱动器上C。我计划在 MBR 上安装 grub,这样我就可以启动 ubuntu/backtrack.iso 映像。

我知道 MBR 包含“主分区表”和“主引导代码”。

  1. 当我们安装引导加载程序时会发生什么?它会编辑或更改“主分区表”或“主引导代码”的任何内容吗?如果我没记错的话,弄乱分区表会导致分区丢失。我的硬盘上有很多重要的数据,我不想丢失。

  2. 我如何备份完整的 MBR。以防万一。

答案1

主引导记录 (MBR) 包含两部分内容:

  • 引导代码-- MBR 的前 440 个字节保存引导加载程序代码。这可能是 Microsoft 的引导加载程序、GRUB 的第一阶段代码或其他内容。在非引导磁盘上或计算机使用较新的 EFI 系统引导时,此空间可能为空(即全为 0)。
  • 分区表-- 扇区的最后 72 个字节保存分区表。(请注意,此区域的前六个字节保存磁盘签名/序列号。一些引导加载程序会推送到此区域,但大多数不会。)

MBR 的这些部分通常由不同的工具编写。在 Linux 下,、grub-installlilo类似工具会编写启动代码,而fdisk、、partedGParted 和其他分区程序会编写分区表。不过,就系统调用而言,扇区是以全有或全无的方式编写的,因此相关工具可能会读取、存储并写回它们未正式接触的扇区部分。这通常可以正常工作,但如果程序中存在错误或某种系统错误,则可能会导致损坏。

有关 MBR 的更多信息,请参阅关于该主题的维基百科页面。

某些工具可能会修改这两种类型的数据。例如,GRUB 可以在运行时更改分区表数据。这样做是为了在每次启动时“隐藏”某些分区。

您可以使用以下命令在 Linux 中备份完整的 MBR(引导代码和分区表)dd,如下所示:

dd if=/dev/sda of=sda.mbr bs=512 count=1

此示例将第一个磁盘 () 的 MBR 备份/dev/sda到名为 的文件中sda.mbr非常小心但是,在使用 时dd;反转if=of=选项、省略或更改其他选项,或者犯其他错误可能会导致磁盘损坏!

相关内容