如何使用 hexdump 物理地查看我的 GUID 分区表(gpt)?

如何使用 hexdump 物理地查看我的 GUID 分区表(gpt)?

例如,使用 hexdump,我可以看到主引导记录的二进制内容。同样,我想看看我的 gpt 是什么样子的。它位于 EFI 系统分区的某个地方吗?我只找到了不同的 .efi 文件,没有找到任何类似于分区表的东西的提示。

答案1

分区表不能位于分区中,因为它描述了分区的位置。相反,它位于任何分区之外的固定磁盘位置,通常没有任何文件表示。您之前说您正在查看磁盘的“主引导记录”——您也需要使用相同的方法查看 GPT。

MBR 位于磁盘的第 1 个扇区 (LBA 0);即使是 GPT 磁盘,此扇区中仍然有一个“保护性”MBR。(MBR 的前 440 个字节用于存储启动代码,但其余 72 个字节保存分区条目,因此您实际上看到的是A分区表已经存在。

同样地,GPT从磁盘的第 2 个扇区 (LBA 1) 开始其标头所在的位置,后面跟着大约 32 个扇区(16 KiB),其中包含实际分区列表。(更长的 GPT 是可能的,但可能很少见。)

读取原始磁盘扇区的方法依赖于操作系统,但以下工具在 Linux 上特别有用:

# head -c 512 /dev/sda | hexdump -C
# dd if=/dev/sda bs=512 skip=1 count=33 | hexdump -C
# xfs_io -r -c "pread -v 512 16896" /dev/nvme0n1

请注意,主 GPT 的精确位置取决于磁盘的逻辑扇区大小 - 大多数磁盘使用 512 字节扇区,但如果它是“4K 原生”磁盘,则 GPT 也将从字节 4096 开始,而不是从字节 512 开始。相应地调整命令。(如果数据以EFI PARTASCII 开头,您就会知道您已经找到了它。)

相关内容