磁盘分区表介绍
引述
常见的硬盘分区表有两种,分别是
GPT GUID磁盘分区表(GUID Partition Table,缩写:GPT)
MBR 主引导记录(MBR,Main Boot Record)
不同的硬盘分区表要配合不同的BIOS引导方式以进入操作系统。
MBR分区表介绍
MBR,Master Boot Record。一般位于磁盘的0柱面,0磁头,1扇区。其中包括主引导程序,(446Byte),DPT(Disk Partition Table,即分区表,其中记录着电脑中有多少分区,分区的起始位置,大小及其文件系统)(64Byte),和硬盘有效标识(55AA)(2Byte)(结束标识)。
由MBR结构可知,MBR只能存储64字节的分区表,而记录每个分区信息需要16字节。所以使用MBR型分区结构的磁盘,最多只能有四个主分区。
DPT由最多4个16字节的主分区构成。每个16字节的分区信息又由1字节的激活标识符,3字节的分区物理起始位置信息,1字节的分区类型,3字节的物理结束位置信息,4字节的逻辑起始位置信息,以及4字节的分区扇区总数组成。
在这里举一个分区表的例子。
如果某一分区在DPT中数据如下:
80 01 01 00 07 FE BF FC 3F 00 00 00 7E 86 BB 00
那么该字段含义(16转10进制方法自行百度):
80:该分区为磁盘上的活动分区,80是这个分区的激活标志,表示该分区上有系统可引导。
01 01 00:表示分区开始的磁头号为1,开始的扇区号为1,开始的柱面号为0。即分区起始位置。
07表示该分区的文件系统为NTFS,另外还有常用的04(FAT16),0B(FAT32)等。
FE BF FC:表示分区结束的磁头号为254,扇区号为63,柱面号为764,即分区结束位置。
3F 00 00 00:表示首扇区的的相对扇区号为63。
7E 86 BB 00表示总扇区数为12289662。
看了DPT的数据我们可知,4字节32bit,那么一个主分区的扇区总数就不能超出232个。每个扇区大小为512字节,那么单分区最大容量即为2,199,023,255,552字节。即为2TB。这也是为什么MBR最多支持单分区2TB容量的原因。
所以MBR重装系统的时候,一般分区的时候,一般最多4个主分区,每个最大2TB,也就是说我们的MBR仓储盘最多8TB
(PS:啥家庭啊买个8TB机械当仓储盘,家里有矿啊)
那么如果你真的买了一个8TB的机械硬盘当仓储盘,系统还是采用MBR引导方式,那么你就只能分四个单分区2TB的分区了。因为其他方案已经不被MBR支持了。
根据以上对MBR的分析,MBR引导方式的操作系统所在的磁盘分区上,是要有0x80可引导标识的。带有该标识的分区,我们将其称之为活动分区。
设置活动分区的方法也非常简单,使用Diskgenius(DG)工具,选中你想激活的分区,右键,将此分区设置为活动分区,保存更改。
一般Windows系统的主引导程序为Windows NT引导程序。XP,2003及以下系统使用NT5.0引导程序。(特征为系统盘根目录的Boot.ini和NTLDR),Win7以后使用NT 6.0引导程序(特征为系统盘下的Bootmgr和Boot文件夹及里面的BCD文件),该主引导记录可使用BOOTICE小工具来更改。
GPT分区表介绍
全局唯一标识分区表(GUID Partition Table,别名GUID分区表,缩写GPT)是一个1实体磁盘分区表的结构布局标准。为可扩展固件接口(Extensible Firmware Interface,缩写EFI)标准的一部分。作用就是替代那32bit来存储逻辑位置大小信息的MBR分区表。GPT可以分配64Bits给逻辑块地址,所以对于单扇区大小512Byte的磁盘,GPT的最大单分区容量可以达到恐怖的264字节,也就是8,589,934,592TB。(我觉得有生之年我看不到这么大的硬盘。。。)
以下为GPT的结构。
与传统MBR一样,GPT也使用LBA取代了CHS。传统MBR信息存储于LBA 0,GPT头文件存储于LBA1,接下来才是分区表。64位操作系统使用32扇区作为GPT分区表,接下来的LBA 3.4是硬盘上第一个扇区的开始。为了减少分区表损坏的风险,GPT在磁盘最后还保存了一份分区表的副本。另外GPT并不使用CHS,所以CHS问题并不会存在。与MBR 1字节的分区标识不同,GPT提供了16字节的全局唯一标识符(GUID)来标识分区类型。这使分区类型发生冲突的概率更小。
介绍这么多,GPT磁盘没有活动分区,那么它是怎么找到的启动分区呢。其实很简单,16字节的GUID就可以解决这个问题。EFI引导分区有自己唯一的GUID:C12A7328-F81F-11D2-BA4B-00A0C93EC93B。Windows将会识别带有该GUID的分区为EFI引导分区,并从里面读取引导数据并加载BCD启动菜单。
与MBR不同,该方式的系统引导将需要多建立一个256MB左右的EFI分区来存储引导数据。然后再在cmd下执行以下指令
bcdboot C:\Windows /s X: /f uefi /l zh-cn
其中:
C:Windows 硬盘系统目录
/s X: 指定ESP分区所在磁盘,根据实际情况修改(一般PE挂载出来都是X盘)
/f uefi 指定启动方式为uefi
/l zh-cn 指定uefi启动界面语言为简体中文。
别忘了在BIOS里将启动类型从Legacy改成UEFI并开启Secure Boot!
别忘了在BIOS里将启动类型从Legacy改成UEFI并开启Secure Boot!
别忘了在BIOS里将启动类型从Legacy改成UEFI并开启Secure Boot!
不然会不开机!Legacy模式下的BIOS是识别不了GPT磁盘的!!
具体更改随各家主板BIOS设计而定,一般都在Boot那个选项卡下。
区分硬盘分区表类型方法
可以使用分区助手看你的C盘后面或前面是否有一个几百MB的分区,新版本分区助手似乎可以直接显示是否是GPT分区。
其实最直观的看GPT分区的方法我认为,一般只要是UEFI启动类型的电脑都是GPT。(比如开机不是win10祖传小窗户而是主板logo,这种是UEFI启动的比较直观的表现。)
GUID附表
引导相关(公用)
分区类型 | GUID |
---|---|
EFI文件系统(标准) | C12A7328-F81F-11D2-BA4B-00A0C93EC93B |
Windows
分区类型 | GUID |
---|---|
微软保留分区 | E3C9E316-0B5C-4DB8-817D-F92DF00215AE |
基本数据分区 | EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 |
逻辑软盘管理工具元数据分区 | 5808C8AA-7E8F-42E0-85D2-E1E90434CFB3 |
逻辑软盘管理工具数据分区 | AF9B60A0-1431-4F62-BC68-3311714A69AD |
Mac OS X
分区类型 | GUID |
---|---|
HFS+分区 | 48465300-0000-11AA-AA11-00306543ECAC |
UFS | 55465300-0000-11AA-AA11-00306543ECAC |
启动分区 | 426F6F74-0000-11AA-AA11-00306543ECAC |
RAID分区 | 52414944-0000-11AA-AA11-00306543ECAC |
RAID分区(Offline) | 52414944-5F4F-11AA-AA11-00306543ECAC |
标签 | 4C616265-6C00-11AA-AA11-00306543ECAC |
ChromeOS
分区类型 | GUID |
---|---|
Linux数据(标准) | EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 |
ChromeOS内核 | FE3A2A5D-4F32-41A7-B725-ACCC3285A309 |
ChromeOS根文件系统 | 3CB8E202-3B7E-47DD-8A3C-7FF2A13CFCEC |
ChromeOS固件 | CAB6E88E-ABF3-4102-A07A-D4BB9BE3C1D3 |
ChromeOS将来使用 | 2E0A753D-9E48-43B0-8337-B15192CB1B5E |
HP-UX
分区类型 | GUID |
---|---|
数据分区 | 75894C1E-3AEB-11D3-B7C1-7B03A0000000 |
服务分区 | E2A1E728-32E3-11D6-A682-7B03A0000000 |
Linux
分区类型 | GUID |
---|---|
数据分区 | 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
分区类型 | GUID |
---|---|
启动分区 | 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 |
/Author: Skrshadow/
/2020.02.18/