概念
以下纯属个人理解,不涉及任何严谨的学术定义。
-
分区
磁盘可以被分割为多个分区,每个分区又可以被格式化成种类繁多的文件系统,"XX"文件系统对应的分区就叫做"XX"分区,但是,实际上分区就可以理解为将磁盘分割成数个物理上分割的区域而已,分区本身和文件系统格式没有必然联系,任意一个分区可以被格式化成任意一个文件系统。
-
文件系统
文件系统适用于将不容易理解的二进制方式存储在磁盘上的数据,以人便于理解的结构组织并可以方便的呈现出来。并且还可以方便被修改、编辑、存储与删除。文件系统从本质上讲就是一个数据结构,一个复杂点的结构体而已。不涉及任何实质性的内容。
分区表分析
目前磁盘分区的格式主要有两种:MBR(Main Boot Record)、GPR([GUID Partition Table](http://en.wikipedia.o
![Upload 未命名.PNG failed. Please try again.]
rg/wiki/GUID_Partition_Table)),实际就对应两种分区表的格式。
MBR,由来已久,也是目前做通用的一种格式,有IBM定义,支持的磁盘分区大小小于2TB。
GPT,自然主要就是随着日新月异的磁盘扩容技术,解决上述磁盘分区不能大于2TB的问题了,目前貌似这么大的分区还不够主流。
还有就是,MBR根据名字也能看出来,它的主要功能不是用来分区的,是用来存放引导程序的。
所以,这个信息必然应该是放在磁盘的第一块扇区的。(注:历史原因,通常扇区的大小是512B,居然是个9bit数 :b)
MBR的后66字节(64+2)是我这里最关心的了,至于MBR的详细结构说明还是参考这里。最后两个字节存储标记信息,固定为"0x55 0xAA"。往前推每16字节存储一个分区信息,这些分区叫做“主分区”,这也是主分区为什么不能大于4个的原因(只有此歌存储空间嘛~)。当然你可以分出更多的分区,只不多都叫做逻辑分区,这个翻案很早以前就实现了,通过现有分区表“打补丁”的方式实现,逻辑分区以“链表”的形式挂在主分区后,可以索引得到其相关信息(格式也基本合住分区表一致)。
每一个分区信息的16字节内容很简单,说明如下:
1字节 | 3字节 | 1字节 | 3字节 | 4字节 | 4字节 |
---|---|---|---|---|---|
可引导标志(1可引导) | 分区起始CHS信息 | 分区类型(文件系统格式) | 分区结束CHS信息 | 分区起始LBA地址(小端模式) | 分区结束LBA地址(小端模式) |
文件系统分析
这个在上述的“分区类型”的字段内有对应的标记信息,所以说理论上可以有256种分区类型(文件系统的格式)
未完待续...