计算机是如何加载硬盘分区的

每一天,我们都在使用现代计算机工作。不断提升的硬件性能,不断完善的软件系统,让我们对计算机这个越来越强大的工具已经习以为常。但是细细想来,这个我们每天都在用的工具,我们真的了解它么?我们真的清楚它的工作原理么?最近刚好读了一些关于硬盘分区的材料,让我想要仔细回答一下上面的问题。从按下开机按钮开始,一步步梳理计算机工作的原理。

众所周知,计算机启动时做的第一件事,是执行BIOS程序,完成开机自检并加载系统盘的第一个扇区。我们常用的物理磁盘是由一个个圆形的盘片组成的。一片盘片上沿半径划分为一个一个的柱面(Cylinder),在每个柱面上,又划分为很多个扇区(Sector)。其中柱面是分区的最小单位,而扇区是最小的物理存储单位(512bytes)。每块磁盘的第一个扇区最为重要,里面有硬盘的主引导记录(MBR)以及分区表(partition table),其中MBR占446bytes而分区表占64bytes。

首先被执行的是MBR程序,这段程序的作用是检查硬盘分区表是否完好,在分区表中寻找可引导的活动分区,并将活动分区的第一逻辑扇区加载到内存中。分区表的64bytes分为了4个16bytes的分区信息。这4条记录被称为主分区或扩展分区(最多1个),其中扩展分区还可以再分出逻辑分区。可以被格式化的仅有主分区或者逻辑分区。MBR中的引导程序可以识别硬盘中的文件系统格式,因此能够读取内核文件,然后接下来就是内核文件的工作了。

MBR作为从DOS时代就在使用的分区方式,存在着很多局限性。例如只能支持最多4个主分区;最大可以支持2TB的硬盘等。针对这些局限性,近来来,MBR正在被GPT(GUID分区表)技术所取代。这种分区表可以支持的磁盘容量大到操作系统和文件系统都没法支持。同时GPT还支持无限的分区数量。更重要的是,GPT在磁盘中保存了多份分区信息,并添加了CRC校验以保证信息的完整。因此这种分区格式更加的健壮。

当前,所有的计算机系统都在向GPT迁移,除非你使用很旧版本的BIOS,否则推荐使用GTP对磁盘进行分区。

Written on July 1, 2018