磁盘分区详解

        磁盘分区的理解,必须从硬件入手。常见的存储设备主要有硬盘,CD,DVD,U盘等。这里我们主要讲的是硬盘的分区。

        因为半导体技术和工艺的不断提高,现在大的半导体提供商已经可以生产出大容量的固态硬盘,市场上也有固态硬盘可供大家选购。固态硬盘虽然存取速度要比机械硬盘快上许多,但是从容量与价格的性价比上,机械硬盘还是占优。接下来主要讲的就是与机械硬盘相关的磁盘分区知识。

                                                                                                                                                      图1:硬盘物理示意图

       如图1所示,机械硬盘的主要物理组成有磁盘、主轴、磁头、磁力臂、音圈马达和永磁铁等组成。我们所有写入硬盘的信息都是通过磁头写入磁盘中的,同时,也可以通过磁头将磁盘中的信息读取出来。厂家生产出一块硬盘之后,会对其进行低级格式化,我们可以理解为厂家在磁盘中已经输入了一小段的程序。这段小程序将我们的一阵块磁盘划分出了磁道和柱面。

                                                 图2:磁道与柱面                        图3:扇区

        图中示意出了磁道与柱面与磁盘实际物理层面的关系。当磁盘高速转动起来,磁头能够感应到的只是此盘上一个环形区域内的磁性信息,所以我们将一个环形区域组织成一个磁道。同时,磁头在多层的盘片上读取的是相同位置的磁道,因此将多片盘片上的这些同位置的磁道组织成柱面。我们将磁道再细分为容量相同的扇区,如图3所示。

    另外,每个扇区容量是相同的。早期生产的磁盘每个磁道上的扇区数是相同的,那么外磁道扇区的长度必然比内磁道的长度要长,所以厂家通过控制内外磁道的磁密度来保障每个扇区的容量个相同。这种简单的划分极大的限制了磁盘的容量。现代的磁盘制作时,不同磁道的磁密度是相同的,因此不同磁道的扇区数是不相同的,不过磁盘对其进行了内部转换,使得磁盘看起来像是每个磁道还拥有相同的扇区数。  

    以上是对磁盘的物理层面划分,接下来,我们从操作系统的层面来分析系统的磁盘分区(高级格式化)与实际磁盘物理层面分区的映射关系。

    从Windows系统的角度来看,我们常常将磁盘划分为C、D、E、F盘;Linux系统中,磁盘分区的命名方式有所不同,是根据磁盘的类型加上加上编号组合而成,例如sd1,hd2之类的。其基本的组织原理是相通的,我们以Linux的磁盘分区来示例说明。

    每个磁盘的第一个扇区至关重要,因为在其上存储了两个重要的信息,分别是:

    主引导分区(Master Boot Record,MBR):可以安装引导加载程序的地方,有446bytes。

    分区表(partition table):记录整块硬盘分区的状态,有64bytes。

    MBR是十分重要的,系统在开机的时候回读取这一段内容,然后才能知道去哪里选择哪个操作系统开机,其具体的实现和功能,在这暂不表。主要说说分区表的用法。

    分区表有64bytes的容量,我们将其分为四份,即用16bytes的内容来记录一个分区的开始柱面和结束柱面号。注意,分区是以柱面为基本单位的。

                

                                图4:分区示意图                                                               图5:扩展分区

    如图4所示,假设共有400个柱面,我们将磁盘平均分为了4个分区,每个分区100个柱面的容量,对于windows而言可以说是C、D、E、F盘。当然,我们也可以将每个分区的容量划分为不同大小。有时,我们需要更多的分区,但是分区表最多只能实现4个分区,这时候,要用到逻辑分区的概念来分出更多的分区。我们将分区表中某个区域作为扩展分区,记录逻辑扩展分区的起始与结束柱面,再在这些柱面的选择一段扇区存储逻辑分区的分区表(数量任意)。

      

 

 

    

posted @ 2017-09-04 22:48  文杰夫斯基  阅读(2990)  评论(0编辑  收藏  举报