MBR&GPT硬盘分区类型&属性详解 MBR(dos)分区类型 GUID磁碟分割表

  • 分区表:MBR、GPT…
  • 分区类型:primary、extended、efi、Linux LVM…
  • 文件系统类型:ntfs、fat32、ext4、xfs…

mbr-gpt

MBR磁盘

MBR的结构

字节偏移(16进制)字节数描述
00~1BD446引导代码
1BE~1CD16分区表项1
1CE~1DD16分区表项2
1DE~1ED16分区表项3
1EE~1FD16分区表项4
1FE-1FF2签名值’55AA’

MBR总共512字节 = 446 + 64 + 2

  • 备份MBR dd if=/dev/sda of=/backup/mbr.backup bs=1 count=512
  • 恢复MBR dd if=/backup/mbr.backup of=/dev/sda
  • 备份分区表 dd if=/dev/sda of=/backup/partition_table.bak bs=1 count=64 skip=446
  • 恢复分区表 dd if=/backup/partition_table.bak of=/dev/sda bs=1 seek=446

skip=xxx是在备份时对if 后面的部分也就是原文件跳过多少块再开始备份;seek=xxx则是在备份时对of 后面的部分也就是目标文件跳过多少块再开始写


MBR分区表中包含了硬盘上各主分区的分区信息,每个分区信息中都有一段内容(1字节,即8位)用来表示分区类型

  • 主引导记录,是传统的分区机制,应用于绝大多数使用BIOS的PC设备
  • MBR+BIOS
  • MBR支持32位和64位系统。
  • MBR支持分区数量有限。
  • MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间(有第三方解决方法)。

MBR分区类型,linux可通过fdisk命令查看。

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      

GPT磁盘(GUID Partition Table,GPT)

gpt

  1. LBA(Logical Block Address逻辑区块地址)一般为512字节。
  2. 新型先进格式化硬盘的盘体标签纸上有明显的 Advanced Format 或者 AF 字样,为 4096字节扇区。传统硬盘都是512字节扇区,这个属于硬件范畴,不是用户能够修改的。
  3. 无论512字节扇区硬盘,还是4K扇区硬盘,对大部分操作系统而言,依旧是按照512字节来传输数据的

  • 备份Protective MBR dd if=/dev/sda of=gpt-mbr bs=512 count=1
  • 恢复Protective MBR dd if=gpt-mbr of=/dev/sda bs=512 count=1
  • 备份完整的GPT分区表 dd if=/dev/sda of=gpt-partition bs=512 count=34
  • 恢复完整的GPT分区表 dd if=gpt--partition of=/dev/sda bs=512 count=34
  • 仅备份GPT头和GPT分区 dd if=/dev/sda of=gpt-partition bs=512 skip=1 count=33
  • 仅恢复GPT头和GPT分区 dd if=gpt-partition of=/dev/sda bs=512 skip=1 seek=1 count=33 (跳过备份表的一个bs, 再跳过sda的第一个bs然后再恢复数据)

GPT分区表中的分区信息中同样有一段用于表示分区类型的内容(16字节,即128位)

  • 全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点。
  • 支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted。
  • 向后兼容MBR。
  • 必须在支持UEFI的硬件上才能使用(Intel提出,用于取代BIOS)。
  • GPT+UEFI
  • 必须使用64位系统。

GPT分区表中的分区信息中除了分区类型外,还用了另一段区域(8字节,即64位)来表示分区属性:

  • 0x0000000000000001(0位) 将分区表示为必需分区,不允许用户更改数据(Windows下将标记为OEM分区)
  • 0x8000000000000000(63位) 当硬盘被挂载到另一台电脑时默认不分配盘符。
  • 0x4000000000000000(62位) 表示该分区不可被检测到。
  • 0x2000000000000000(61位) 表述该分区为另一个分区的卷影拷贝。
  • 0x1000000000000000(60位) 为分区设置只读属性。

GPT分区类型

相關操作系統分区类型GUID[1]
(None)未使用00000000-0000-0000-0000-000000000000
MBR分区表024DEE41-33E7-11D3-9D69-0008C781F39F
EFI系统分区C12A7328-F81F-11D2-BA4B-00A0C93EC93B
BIOS引导分区21686148-6449-6E6F-744E-656564454649
Windows微软保留分区E3C9E316-0B5C-4DB8-817D-F92DF00215AE
基本数据分区[2]EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
逻辑软盘管理工具元数据分区5808C8AA-7E8F-42E0-85D2-E1E90434CFB3
逻辑软盘管理工具数据分区AF9B60A0-1431-4F62-BC68-3311714A69AD
Windows恢复环境DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
IBM通用并行文件系统(GPFS)分区37AFFC90-EF7D-4e96-91C3-2D7AE055B174
HP-UX数据分区75894C1E-3AEB-11D3-B7C1-7B03A0000000
服务分区E2A1E728-32E3-11D6-A682-7B03A0000000
Linux数据分区[2]EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
RAID分区A19D880F-05FC-4D3B-A006-743F0F84911E
交换分区0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
邏輯捲軸管理員(LVM)分区E6D6D379-F507-44C2-A23C-238F2A3DF928
保留8DA63339-0007-60C0-C436-083AC8230908
FreeBSD启动分区83BD6B9D-7F41-11DC-BE0B-001560B84F0F
数据分区516E7CB4-6ECF-11D6-8FF8-00022D09712B
交换分区516E7CB5-6ECF-11D6-8FF8-00022D09712B
UFS分区516E7CB6-6ECF-11D6-8FF8-00022D09712B
Vinum volume manager分区516E7CB8-6ECF-11D6-8FF8-00022D09712B
ZFS分区516E7CBA-6ECF-11D6-8FF8-00022D09712B
Mac OS XHFS(HFS+)分区48465300-0000-11AA-AA11-00306543ECAC
苹果公司UFS55465300-0000-11AA-AA11-00306543ECAC
ZFS[3]6A898CC3-1DD2-11B2-99A6-080020736631
苹果RAID分区52414944-0000-11AA-AA11-00306543ECAC
苹果RAID分区,下线52414944-5F4F-11AA-AA11-00306543ECAC
苹果启动分区426F6F74-0000-11AA-AA11-00306543ECAC
Apple Label4C616265-6C00-11AA-AA11-00306543ECAC
Apple TV恢复分区5265636F-7665-11AA-AA11-00306543ECAC
Solaris启动分区6A82CB45-1DD2-11B2-99A6-080020736631
根分区6A85CF4D-1DD2-11B2-99A6-080020736631
交换分区6A87C46F-1DD2-11B2-99A6-080020736631
备份分区6A8B642B-1DD2-11B2-99A6-080020736631
/usr分区[3]6A898CC3-1DD2-11B2-99A6-080020736631
/var分区6A8EF2E9-1DD2-11B2-99A6-080020736631
/home分区6A90BA39-1DD2-11B2-99A6-080020736631
备用扇区6A9283A5-1DD2-11B2-99A6-080020736631
保留分区6A945A3B-1DD2-11B2-99A6-080020736631
6A9630D1-1DD2-11B2-99A6-080020736631
6A980767-1DD2-11B2-99A6-080020736631
6A96237F-1DD2-11B2-99A6-080020736631
6A8D2AC7-1DD2-11B2-99A6-080020736631
NetBSD[4]交换分区49F48D32-B10E-11DC-B99B-0019D1879648
FFS分区49F48D5A-B10E-11DC-B99B-0019D1879648
LFS分区49F48D82-B10E-11DC-B99B-0019D1879648
RAID分区49F48DAA-B10E-11DC-B99B-0019D1879648
concatenated分区2DB519C4-B10F-11DC-B99B-0019D1879648
加密分区2DB519EC-B10F-11DC-B99B-0019D1879648

Windows

Diskpart更改分区类型 mbr Set id = xx(设定分区类型,xx代表十六进制分区类型ID,省略0x)

gpt Set id = xx (设定分区类型,xx代表十六进制GUID分区类型ID) gpt attributes = 0xXXXXXXXXXXXXXXXX (设置分区属性,XXXXXXXXXXXXXXXX代表分区属性)

Windows下GPT磁盘通常采用以下分区类型和分区属性组合:

  • 普通数据分区——EBD0A0A2-B9E5-4433-87C0-68B6B72699C7——0x0000000000000000
  • OEM分区——无特定GUID值,OEM决定——0x8000000000000001
  • WinRE分区——DE94BBA4-06D1-4D40-A16A-BFD50179D6AC——0x8000000000000001
  • EFI系统分区——C12A7328-F81F-11D2-BA4B-00A0C93EC93B——0x8000000000000001
  • MSR保留分区——E3C9E316-0B5C-4DB8-817D-F92DF00215AE——0x8000000000000000
  • 恢复/备份分区——DE94BBA4-06D1-4D40-A16A-BFD50179D6AC——0x8000000000000001

Linux

查看磁盘类型

fdisk -l
Disk label type: dos
parted -l
Partition Table: msdos

Linux大于2T分区使用GPT分区表,parted工具分区、格式化,fdisk工具修改分区类型 ll -l /dev/sd 查看磁盘* mkfs /dev/sd 格式化分区*

/dev/Volume/lv_root/dev/mapper/Volume-lv_root以及/dev/dm-0 是一个东西,逻辑分区 cat /proc/partitions查看分区 sdx物理磁盘sdx1物理分区 dm-x逻辑分区