每块硬盘在使用前都要先进行分区,也就是将硬盘划分为一个个的逻辑区域,每一个分区都有一个确定的起止位置。在起止位置之间的那些连续的扇区都归该分区索引,不同分区的起止位置互不交错。
工具下载:
百度网盘链接: pan.baidu.com/s/1QM5FKMmR… 提取码: 8888
夸克网盘链接:pan.quark.cn/s/2a972c406… 提取码:dTeZ
MBR 磁盘的分区形式一般有两种,即主分区和扩展分区。主分区又称为主 DOS 分区(Primary DOS Partition),也称为主磁盘分区。扩展分区又称为扩展 DOS 分区(Extended DOS Partition)。非 DOS 分区(Non-DOS Partition)是一种特殊的文件系统类型。它是将硬盘中的一块区域单独划分出来供另一个操作系统使用,如 Linux 和 UNIX 等。对主分区的操作系统来讲,非 DOS 分区是一块被划分出去的存储空间。传统 DOS/Windows 系统一般不能直接识别非 DOS 分区的文件系统,无法直接访问其中数据。
分区表的解析
为了方便用户对磁盘的管理,操作系统引入磁盘分区的概念,即将一块磁盘逻辑划分为几个区域。在分区表的64字节中,以16字节为一个分区表项来描述描述一个分区的结构。
一块硬盘(MBR)最多可以有 4 个主磁盘分区,被激活的主磁盘分区称为活动分区,活动分区在一块硬盘中只能有一个。
在 MBR 硬盘中,主分区最多 4 个;若需更多分区,必须通过扩展分区包含逻辑分区的方式实现
使用winhex打开硬盘查看,其MBR及分区表信息如下:
每个分区表项中对应的各个字节的含义都是一样的。如下是对应的字节含义:
编辑
在 MBR 分区表项中,超过一个字节的数据(如起始 LBA、总扇区数)均以小端序存储,即低字节在前、高字节在后,并非高位到低位。
另外可以通过winhex自带的模板管理工具查看:
编辑 应用查看分区表信息:
单个分区表项(16 字节)重要信息逐字段精讲
0x00 引导标志(1 字节)最重要之一
0x80:活动分区(可引导系统)0x00:非活动分区- 其他值:非法
重要规则:
- 一块硬盘只能有 1 个 0x80
- 扩展分区、逻辑分区绝对不能是 0x80
- 没有 0x80 → 电脑无法从硬盘启动
0x01~0x03 起始 CHS(磁头 / 扇区 / 柱面)3 字节
老式硬盘寻址方式,现在基本没用。系统完全不看,只看后面的 LBA。
0x04 分区类型(1 字节)最重要之二
决定这个分区是什么系统、什么用途。
0x00:空表项(未使用)0x07:NTFS(Windows 主分区)0x0B / 0x0C:FAT320x05:传统扩展分区(CHS)0x0F:LBA 扩展分区(现在都用这个)0x83:Linux 主分区0x82:Linux swap 交换分区
关键点:
- 扩展分区类型只能是 05 或 0F
- 一个 MBR 硬盘最多只能有 1 个扩展分区
0x05~0x07 结束 CHS(3 字节)
同样过时无用,系统不看。
0x08~0x0B 起始 LBA(4 字节)最重要之三
- LBA = 逻辑扇区号
- 代表这个分区从第几个扇区开始
- 4 字节,小端序存储(低字节在前)
意义:
- 系统100% 依靠这个定位分区开始位置
- 改错这个值 → 分区直接丢失
- 扩展分区的 LBA 指向EBR(扩展引导记录)
0x0C~0x0F 总扇区数(4 字节)最重要之四
- 该分区占用多少个扇区
- 决定分区大小
- 同样 小端序
计算公式:分区大小 (GB) = 总扇区数 × 512 字节 ÷ 1024÷1024÷1024
在主磁盘分区中,每个分区的开始扇区号,都是硬盘的绝对扇区号。