MBR 应该是什么样的?

MBR 应该是什么样的?

我读过关于计算机启动过程的文章,发现计算机从 加载引导加载程序的代码。所以我想像这样MBR看一下:MBR

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

我用 Vim 打开它并执行:%!xxd以获取该文件的十六进制视图。该文件如下所示

在此处输入图片描述

根据我在互联网上找到的信息,该记录的前 446 个字节应该是加载程序的代码。但在我的例子中,它只有零。我不认为引导加载程序应该看起来像这样,但我的电脑加载得非常好。为什么会这样?为什么它只有零MBR(我想除了分区表)但我的电脑加载。我有GRUB引导加载程序。

答案1

您可能读到了一篇过时的文章。当今的计算机不通过 MBR 启动。更准确地说,我们正处于过渡期,有些计算机使用 MBR,有些则不使用。

一个原因是 MBR 不允许对大于 2 TiB 的驱动器进行分区。

是的,您已在 MBR 通常所在的位置添加了一个文件,但那里没有代码,并且分区表仅包含一个条目,该条目涵盖整个驱动器。这就是所谓的保护性 MBR,您的磁盘具有 GUID 分区表 (GPT) 布局(即使用其他分区系统),并且您的计算机可能通过 UEFI 启动。您可能有一个带有 FAT32 文件系统的小分区,它称为 EFI 系统分区 (ESP),包含 EFI/BOOT/bootx64.efi 文件 - 该文件是一个引导加载程序(grub,或一些立即执行 grub 的存根加载程序),由固件执行。或者您可以设置固件来引导任意 EFI 可执行文件,但它仍应存在于 ESP 上。

如果您加载的系统有非空的 /sys/firmare/efi 目录,您可以确认您已经在 Linux 中启动了 UEFI。

相关内容