好的,我弄乱了我的 MBR,我需要设置启动标志,(不是活动分区!)。我搜索过类似的问题,但我看到的所有答案都是“如何将分区设置为活动分区”,而这不是我想要做的。将其设置为活动分区会告诉引导加载程序加载它,但不会告诉 BIOS 执行前 512 个字节。我需要的是 MBR 的最后一个字为 0xAA55。请帮我解决这个问题,谢谢。
答案1
在 MBR 磁盘上,“启动标志”和“活动标志”是一样。这面旗帜不应该对固件来说很重要,尽管有些固件在 BIOS 模式下启动磁盘之前会查找该标志。有些(但不是全部)BIOS 模式启动加载程序依赖于此标志的存在;它们会查找该标志并将控制权转移到被标记的分区的启动扇区。
在 GPT 磁盘上,基于 libparted 的工具(例如parted
GParted)可识别EFI 系统分区 (ESP)设置为“启动标志”。尽管使用与 MBR 构造相同的名称,但 libparted 在 GPT 中标识为“启动标志”的内容与 MBR 启动/活动标志无关。
磁盘第一个扇区末尾的 0xAA55 代码只是将该扇区标识为包含 MBR 分区表。(GPT 磁盘也有此代码,因为 GPT 规范的一部分包括“保护性 MBR”,旨在防止不支持 GPT 的实用程序干扰磁盘。)如果fdisk
、parted
和其他 MBR 分区工具识别该磁盘,则该代码已经存在。如果不是目前,分区工具将会抱怨或声称磁盘未分区。
如果阅读此回复后您仍然有问题,则需要提供更多信息:您的计算机上究竟是什么出了问题?如前所述,您的问题相当抽象。此外,parted /dev/sda print
(键入root
或前面为sudo
)的输出也会有所帮助。