1.磁盘:
磁盘的组成主要有盘片、机械手臂、磁头与主轴马达所组成, 而数据的写入其实是在盘片上面。盘片上面又可细分出扇区(Sector)与磁道(Track)两种单位,其中扇区的物理量设计有两种大小,分别是 512Bytes 与 4KBytes。
一个扇区为512Byte,1980年左右水平就在那,512Byte在当时是硬盘磁盘驱动器的行业标准,也是例如DOS操作系统设计的基础,当然了目前可以做到一个扇区4KB
1.1 在目前来看,分区会有不同的格式,当时由于古老也为了相容于windows磁盘,所以使用的是支持windows的MBR(Master Boot Record,主要开机记录区)的方式来处理开机管理程序与分区表。
刚上电读取磁盘从开始部分读取,所以信息肯定是在开始最好,因此开机管理程序记录区与分区表放在磁盘的第一个扇区
1.2 主要开机记录区MBR
可以安装开机管理程序的地方,446Byte
1.3 分区表 (partition table)
记录整颗硬盘分区的状态,64Byte
1.4 所以磁盘第一个扇区损坏,信息无法加载,这个磁盘/硬盘大概率是没用了。
2.分区表
MBR分区表只有64Byte,1983年MBR设计的时候设计者认为4个分区足以应对大多数用户的需求,所以就是4个分区。每个分区占用16字节,每个分区记录需要存储分区的起始位置、结束位置、分区类型、状态等信息。
分区的目的主要还是为了保护数据的安全性,类似于windows下操作系统放在C盘,学习资料放其他盘符,即使重装操作系统也不会导致你多年积累的珍贵资料丢失,嗯哼;再一个就是分区好找嘛,就类似于在城市里找你在哪:先按行政区,再找在那个gai,再找小区,再找楼栋一样的道理,提高效率,不用从进城开始一家一户敲门找,提高效率、性能!
随着技术的发展,虽然出现了更多的分区需求,但MBR的设计被广泛采用,并且与许多操作系统和硬件兼容。为了保持兼容性,MBR的分区表结构没有进行修改。
2.1 主要分区&延伸分区&逻辑分区
主要分区的话总共就只能分4个区(P+P+P+P),但是如果还想要更多的分区,就得用到延伸分区了(P+P+P+E 或者 P+E可以自己分,最多四个分区)。
比如法棍面包可以均分四块,但是我现在先切出来四分之一作为自己的午餐(主要分区),剩下的四分之三可以给别人分享叫做共享法棍(延伸分区:最多只能有一个),共享可能有十个人要来吃,每个人分一部分,这一部分就是他们的午餐(逻辑分区:切开延伸分区形成的小分区),所以呢被吃掉的是我的午餐跟他们的午餐,但是那个共享法棍只是一个虚拟的称呼,因此只有我们吃了的才能转化为能量,实际作用到人的身上(在磁盘上就是可以被格式化,不过延伸分区这个东西没办法格式化)
① 主要分区与延伸分区最多可以有四笔(硬盘的限制)
②延伸分区最多只能有一个(操作系统的限制)
③逻辑分区是由延伸分区持续切割出来的分区
④能够被格式化后,作为数据存取的分区为主要分区与逻辑分区。延伸分区无法格式化
⑤逻辑分区的数量依操作系统而不同,在Linux系统中SATA硬盘已经可以突破63个以上的分区限制
2.2 分区号
前四个分区号是留给主要分区与延伸分区的,比如
/dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4
逻辑分区只能用到5以后的分区号
3. 拓展
3.1 首先了解一下LBA(Logical Block Adddress):逻辑块地址
①取代了CHS(柱面-磁头-扇区)寻址方式
②块大小为512byte或4kb,每个块都有唯一的编号,使用线性地址,从0开始编号,依次递增
③适用于目前各种存储设备(硬盘、SSD、U盘等)
3.2 MBR寻址限制
旧版:使用CHS寻址方式
寻址限制:最多支持1024个柱面上的256个磁头和63个扇区,每个扇区512Byte
最大容量:1024 * 256 * 63 * 512 = 2.2T
新版:使用LBA寻址方式
MBR使用32位整数,最大可寻址的LBA地址为2^32 - 1 = 4294967295
由于每个LBA通常对用512Byte的数据块,所以最大容量计算为:4294967295 * 512 = 2.2T
3.3 GPT寻址为LBA64,最大容量目前是够用的(大概8ZB)