磁盘的分区表容量问题猜想
磁盘结构:
这个可自行百度。或者我觉得这个不错:https://blog.csdn.net/qq_52247089/article/details/120586306
看完结构后就知道了磁盘:主要参数有 磁头、磁柱、扇区 。其中磁盘是圆的 随着半径增大外面的面积比里面的面积大。
先说说历史:刚开始的磁盘的每个磁道的扇区都是一样的,外面大的磁密度比较低,所以有些浪费了空间。
原本的磁盘容量容量是很小的,随着技术的提升,在计算机开始发力的阶段,最大的磁盘的磁柱一般为1023个,磁头的数量为255,扇区数为64.扇区的容量为512bytes。然后就有了3D参数寻址,CHS巡道。
如果按照CHS巡道,那么最大只有256x1024x64*512=8,589,934,592bytes(8Gb)在现在看来多么的小。
后来经过发展,把每个扇区的磁密度都设为一样,所以每个磁道的扇区的磁道数不一样了,磁柱数也不一样了,现在的磁柱数2T的有199999左右,容量可以更大了,可以超过8gb了。
MBR
磁盘从生产到使用要经过3个步骤,1.低级格式化(厂家自行格式化,把不太合格的扇区隐蔽掉,进行分磁头号,柱面号,扇区号。)2.进行分区操作(把一个磁盘进行分成几大块。)3。格式化(将分区里面的容量格式化拥有文件系统达到可用。)当然一般我们的工具直接把2和3融为一体,一步完成。
首先为什么要有MBR?都知道计算机的底层是一大堆二进制指令,计算机主板上有个CMOS芯片,里面储存着计算机硬件的相关信息,(以前的台式机主板的纽扣电池没电,时间一长台式机开机就会蹦出一大堆东西)。CMOS
里面的硬件参数为BOIS(BOISS是韧体,就是包含程序的硬件)程序提供参数,BOIS相当于是个最初的管理者,BOIS经过检测后发现一切正常,那么就会把磁盘里面的程序主引导记录(MBR),MBS储存在磁盘的0磁头0柱面0扇区,宏观上MBS分为两部分,扇区一共512bytes,第一部分446bytes就是开机管理程序,64bytes是分区表,剩下的2bytes是引导去是否合法为55AA(AA55看是大端小端读入模式方式)。BOIS会先看最后2bytes是不是AA55,如果是才会执行446bytes的开机管理程序。(注意这些东西产生是软件产生的,而软件又依托与操作系统,所以平台可能会有些坑留着,比如安装上系统linux和Windows,最好先安装Windows再安装linux,详细自己问度娘),BOIS发现AA55可是使用,就会加载446bytes的开机管理程序(boot loader)(又是一个小程序,一个引导另一个更高级的程序)。BOIS加载完管理程序后就退出了。加载程序有三个功能(《鸟叔的linux私房菜》);
提供选单:用户可以选择不同的开机项目,这也是多重引导的重要功能!
载入核心文件:直接指向可开机的程序区段来开始操作系统;
转交其他 loader:将开机管理功能转交给其他 loader 负责。(转给其它开机管理程序呀,也就是说磁盘可以不止一个开机管理程序)
开机管理程序根据设定的指引信息和根据分区表的内容确定系统的加载程序在哪个扇区。所以这个扇区很重要(hacker攻击这个区域就系统就开不起来了。)把系统的加载程序加载到内存中后也就没有开机管理程序的事了。
回主话题:为什么MBR只能用2t空间,多了不行。跟分区表有关。分区表一共64,有个四个分区,每个16bytes。具体内容如下:大佬的连接https://blog.csdn.net/gkxg001/article/details/82870109
https://www.cnblogs.com/shao-ye/p/11202680.html
存贮字节位 | 内容及含义 |
---|---|
第1字节 | 引导标志。若值为80H表示活动分区,若值为00H表示非活动分区。 |
第2、3、4字节 | 本分区的起始磁头号、扇区号、柱面号。其中: 磁头号——第2字节; 扇区号——第3字节的低6位; 柱面号——为第3字节高2位+第4字节8位。 |
第5字节 | 分区类型符。 00H——表示该分区未用(即没有指定); 06H——FAT16基本分区; 0BH——FAT32基本分区; 05H——扩展分区; 07H——NTFS分区; 0FH——(LBA模式)扩展分区(83H为Linux分区等)。 |
第6、7、8字节 | 本分区的结束磁头号、扇区号、柱面号。其中: 磁头号——第6字节; 扇区号——第7字节的低6位; 柱面号——第7字节的高2位+第8字节。 |
第9、10、11、12字节 | 逻辑起始扇区号 ,本分区之前已用了的扇区数。 |
第13、14、15、16字节 | 本分区的总扇区数。 |
就行上面大佬说的,超过1023后的柱面仍是1023,不会变了。因为上面上面也说了,一个2t的磁盘的柱面数已经达到了199999左右。具体是哪个扇区要根据第9、10、11、12、4个bytes逻辑起始扇区号和第13、14、15、16决定本分区的范围。而上面的CHS3D参数用于不在进行直接指向分区扇区。而是间接通过运算计算出逻辑扇区(有LBA 、LARGE等方式,磁盘上增添了一个新器件用于计算好像)。
最后的四个字节(”主分区的扇区总数”),决定了这个主分区的长度。也就是说,一个主分区的扇区总数最多不超过2的32次方。2^32=4,294,967,296扇区,每个扇区512bytes。总容量4,294,967,296*512/1024/1024/1024/1024=2T。(TB-GB-MB-KB-BYTES)。
所以虽然扩展分区一直可以扩展逻辑分区但是不能突破2T,如果需用更大的磁盘,那就是关于分区表的事情了。所以用了GPT分区了。
gpt 和MBR是磁盘的管理者 而每个分区的文件系统又是具体的管理者