MBR 磁盘上出现意外的 EFI 系统分区 ID

MBR 磁盘上出现意外的 EFI 系统分区 ID

(最初发布在 stackoverflow 上,由于偏离主题而关闭。结束消息建议我改为以超级用户身份提问。)

我一直在阅读有关 Linux 启动过程的资料,并尝试通过查看我的机器的启动设备来了解情况:

mcarilli:tmp$ mount | grep boot
/dev/sdc5 on /boot type ext4 (rw,relatime)
/dev/sdc1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
root:tmp# parted -l
...
Model: ATA Samsung SSD 860 (scsi)
Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos (msdos = MBR, according to google)
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  538MB   537MB   primary   fat32        boot
 2      539MB   1000GB  1000GB  extended
 5      539MB   1305MB  767MB   logical   ext4
 6      1307MB  1000GB  999GB   logical

因此我预计 /dev/sdc1 是我的 EFI 系统分区。根据 wikipedia,EFI 系统分区的“主引导记录 (MBR) 分区表方案中的 ID 为 0xEF。”)作为练习,我尝试验证一下。

MBR扇区布局说“分区条目 No1”(可能)从 0x01BE 开始,分区类型(ID)应该是在偏移量 0x04 处找到在此条目中。因此,在托管分区 (/dev/sdc) 的 MBR 磁盘上,我希望在 0x01BE + 0x04 = 1C2 处看到 0xEF。但我没有:

root:tmp# xxd /dev/sdc | head -n 50
...
000001b0: cd10 ac3c 0075 f4c3 b1df bbbc 0000 8004  ...<.u..........
000001c0: 0104 0bfe c2ff 0008 0000 0000 1000 00fe  ................
               ^ Expected to see "ef" here

我错过了什么?

注意:我不认为我的机器实际上是用 UEFI 固件启动的,我认为它使用 BIOS(无论是原生的还是通过 CSM 回退),因为登录后没有 /sys/firmware/efi 文件夹。不确定这是否与为什么 /dev/sdc1 似乎没有被标记为 0XEF 有关。

答案1

相关内容