Linux下的GPT分区

2019/01/17 23:24
阅读数 706

Linux下的GPT分区

标签(空格分隔): gpt Linux


现阶断多数电脑使用UEFI+GPT分区的方式,GPT英文全称为GUID Partition Table其含义为“全局唯一标识磁盘分区表,是一个实体硬盘的分区表的结构布局的标准,GPT标准的EFI标准取代了早期蓝色巨人IBM发明的BIOS固件形式,有时候希望了解一下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个扇区,这里将从磁盘地址为 0x00 到 0x3fff 共16384 个字节的gpt扇区内容完整复制了出来.

GPT标准中的结构是32扇区,每个扇区是512字节,共计16KB,可以查看一下文件,正好是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保护分区,在地址 0x1ffe 和 0x1fff 的位置分别是 55 AA 作为第一个扇区的结束,和MBR分区上保持了一致性作为兼容.

接下来是GPT头,以UEFI PART作为头标识字符。更多的结构知识,可以慢慢借助获得的二进制GPT数据进行学习。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部