MBR&GPT硬盘分区类型&属性详解 MBR(dos)分区类型 GUID磁碟分割表
- 分区表:MBR、GPT…
- 分区类型:primary、extended、efi、Linux LVM…
- 文件系统类型:ntfs、fat32、ext4、xfs…
MBR磁盘
MBR的结构
字节偏移(16进制) | 字节数 | 描述 |
---|---|---|
00~1BD | 446 | 引导代码 |
1BE~1CD | 16 | 分区表项1 |
1CE~1DD | 16 | 分区表项2 |
1DE~1ED | 16 | 分区表项3 |
1EE~1FD | 16 | 分区表项4 |
1FE-1FF | 2 | 签名值’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)
- LBA(Logical Block Address逻辑区块地址)一般为512字节。
- 新型先进格式化硬盘的盘体标签纸上有明显的 Advanced Format 或者 AF 字样,为 4096字节扇区。传统硬盘都是512字节扇区,这个属于硬件范畴,不是用户能够修改的。
- 无论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 X | HFS(HFS+)分区 | 48465300-0000-11AA-AA11-00306543ECAC |
苹果公司UFS | 55465300-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 Label | 4C616265-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
逻辑分区