文章目录
MBR分区表
CHS :磁头(Heads)、柱面(Cylinder)、扇区(Sector)
MBR : Main Boot Record 主引导记录 (MBR/DOS分区表) ,分区信息存储在磁盘的0扇区。
MBR分区表结构
MBR分区表项
每个磁盘最多分为4个主分区,或三个主分区及一个扩展分区,扩展分区可分为N个逻辑分区。单个分区最大支持2TB,分区表只能管理最大2TB空间。
查看U盘的分区表信息
在linux系统下
查看系统中所有磁盘的分区类型
shell
fdisk -l
获取分区表信息
shell
dd if=/dev/sdb of=./mbr.bin bs=1024 count=16
hexdump -C ./mbr.bin
磁盘标识符:0x0F52E7FE
引导标识:0x00;如果该分区内安装了操作系统,则该分区必须为活动分区,方可成功引导该分区内的操作系统(即为80H);
分区类型 :
分区标志 | 分区类型 |
---|---|
0x05 | 扩展分区 |
0x06 | FAT16分区 |
0x07 | NTFS分区 |
0x83 | Linux分区 |
0x0B | FAT32分区 |
0x0C | FAT32分区 |
0x0F | 扩展分区 |
0x1C | 隐藏的FAT32分区 |
0xEE | GPT分区 |
本分区之前以用的扇区数:0x2000 = 8192
本分区总扇区数:0x01DE1C00 = 31333376
GPT分区表
GUID : Globally Unique Identifier 全局唯一标识符
GPT :GUID partition table 全局唯一标识分区表
LBA :Logical Block Address 逻辑块地址
LBA0 : 保护性MBR,保护GPT分区表不受MBR磁盘工具的危害,含有一个分区类型为0xEE的分区,MBR磁盘无法识别,因此拒接对硬盘进行操作,从而保护GPT分区。在支持GPT的操作系统中,LBA0也用于保存启动代码,0XEE表示此硬盘使用GPT分区表。
LBA1 : 分区表头,记录硬盘的信息,分区表管理的空间大小以及分区表项数量,分区表项的地址。
LBA2-LBA33 : 硬盘各个分区的信息。
保护性MBR
按照上面MBR的方法,获取使用gpt分区表的U盘的分区表数据。
GPT分区表头格式
偏移量 | 长度 | 内容 |
---|---|---|
0 | 8 | 签名("EFI PART", 45 46 49 20 50 41 52 54) |
8 | 4 | 修订(在1.0版中,值是 00 00 01 00) |
12 | 4 | 分区表头的大小(单位是字节,通常是92字节,即 5C 00 00 00) |
16 | 4 | 分区表头(第0-91字节)的CRC32 校验,在计算时,把这个字段作为0处理,需要计算出分区表项的CRC32校验后再计算本字段 |
20 | 4 | 保留,必须是 0 |
24 | 8 | 当前LBA(这个分区表头的位置) |
32 | 8 | 备份LBA(另一个分区表头的位置) |
40 | 8 | 第一个可用于分区的LBA(主分区表的最后一个LBA + 1) |
48 | 8 | 最后一个可用于分区的LBA(备份分区表的第一个LBA-1) |
56 | 16 | 硬盘GUID(在类UNIX 系统中也叫UUID) |
72 | 8 | 分区表项的起始LBA(在主分区表中是2) |
80 | 4 | 分区表项的数量 |
84 | 4 | 一个分区表项的大小(通常是128) |
88 | 4 | 分区串行的CRC32校验 |
92 | * | 保留,剩余的字节必须是0(对于512字节LBA的硬盘即是420个字节) |
GPT分区表项格式
分区类型
分区属性
分区表项内容
每个磁盘最多支持128个分区,单个分区最大支持到8ZB,分区表由34个LBA组成。具有备份分区表与CRC校验,主分区表损坏时可使用备份分区表。
(1ZB=1024EB,1EB=1024PB,1PB=1024TB)