现阶断多数电脑使用UEFI+GPT分区的方式,GPT英文全称为GUID Partition Table其含义为“全局唯一标识磁盘分区表,是一个实体硬盘的分区表的结构布局的标准,GPT标准的EFI标准取代了早期蓝色巨人IBM发明的BIOS固件形式,有时候希望了解一下GPT的结构,就需要拿一个实例来探索,最直接的方法是直接获取GPT分区表来慢慢学习,具体可以参考以下内容。
1. 在 Linux 系统下打开终端(ubuntu 快捷键 Ctrl + Alt + T)
在终端下执行如下命令
sudo dd if=/dev/sda of=gpt.bin bs=512 count=32
说明:
sudo
:提升权限以执行后面的命令
dd
:直接对磁盘进行操作的命令,用于磁盘备份或者还原
if
:参数,用于制定输入源,可以是块设备文件或者普通文件
os
:参数,用于制定复制的输出文件,这里输出为 gpt.bin 的文件
bs
:为一次操作多少个字节,这里时512个字节,即单个物理扇区的大小
count
:复制的次数,这里指定了32次,即总的输出文件的大小为 512*32 = 16384 字节 = 16KB.
GPT的标准结构为32个扇区,每个扇区是512字节,共计16KB
这里将从磁盘地址为 0x00 到 0x3ff 共 16384 个字节的gpt扇区内容完整复制了出来.
可以查看一下文件,正好是16KB = 16384B。
ls -l | grep gpt.bin
-rw-r--r-- 1 root root 16384 Jan 17 21:30 gpt.bin
接下来就可以使用 16 进制查看器来查看导出的GPT 分区表了.
hexdump -C gpt.bin | less
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001c0 01 00 ee fe ff ff 01 00 00 00 2f 60 38 3a 00 00 |........../`8:..|
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
00000200 45 46 49 20 50 41 52 54 00 00 01 00 5c 00 00 00 |EFI PART....\...|
00000210 40 94 94 ca 00 00 00 00 01 00 00 00 00 00 00 00 |@...............|
00000220 2f 60 38 3a 00 00 00 00 22 00 00 00 00 00 00 00 |/`8:....".......|
*号表示这段偏移量全部为空
可以看到,开头的是一个MBF保护分区,在地址 0x1fe 和 0x1ff 的位置分别是 55 AA 作为第一个扇区的结束,和MBR分区上保持了一致性作为兼容.
接下来是GPT头,以UEFI PART作为头标识字符。更多的结构知识,可以慢慢借助获得的二进制GPT数据进行学习。
运行 sudo fdisk -l
可以查看到当前系统中所有磁盘的信息