MBR 应该是什么样的?

Pep*_*nds 3 linux boot mbr partitioning

我正在阅读有关计算机启动过程的信息,发现计算机从MBR. 所以我想看看我的MBR样子:

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

我用 Vim 打开它并执行:%!xxd以获得文件的十六进制视图。这个文件看起来像这样

在此处输入图片说明

根据我在网上查到的,这条记录的前446字节应该是loader的code。但就我而言,它只是零。我不认为引导加载程序应该像这样,但我的电脑加载绝对正常。为什么会这样?为什么它只在MBR(我想的分区表除外)中为零,但我的计算机加载。我有GRUB作为引导程序。

Nik*_*nov 5

你可能读过一篇过时的文章。今天的计算机不能通过 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。