首页 > 代码库 > 磁盘分区(一)

磁盘分区(一)

    整理自《鸟哥的Linux私房菜》,整理者:华科小涛http://www.cnblogs.com/hust-ghtao/微笑

    我们都知道一块磁盘是可以被分成多个分区(partition)的,以Windows观点来看,你可能会有一块磁盘并且将它分区成C,D,E盘。那个C,D,E就是分区。但是Linux的设备都是以文件形式存在,那么分区的文件名又是什么?如何进行磁盘分区,磁盘分区有哪些限制?

 

1. 磁盘的连接方式与设备文件名的关系

    个人计算机常见的磁盘接口有两种,分别是IDE接口和SATA接口,目前主流的已经是SATA接口了。我们称可连接到IDE接口的设备成为IDE设备,不管是磁盘还是光盘。

    以IDE接口来说,主机会提供两个IDE接口,每个接口连接两个设备,所以最多可以连接到4个设备。每个接口的IDE设备又有Master和Slave之分。4个设备的文件名如表所示。

 

                            image

    再以SATA接口来说,由于SATA/USB/SCSIA等磁盘接口都是使用SCSI模块来驱动的,因此这些接口的磁盘设备文件名都是使用SCSI模块来驱动的,因此这些接口的磁盘设备文件名都是/dev/sd[a-p]的格式。但是与IDE接口不同的是,SATA/USB接口的磁盘设备文件名根本就没有一定的顺序,顺序是由Linux内核检测到磁盘的顺序决定的。

 

2. 磁盘的组成

                                

                                            image

 

  1.     磁盘的组成主要有:
  2. #圆形的盘片(主要记录数据的部分);
  3. #机械手臂与机械手臂上的磁头(可读写盘片上的数据);
  4. #主轴马达,可以转动盘片,让机械手臂的磁头在盘片上读写数据。
  5.     而盘片的组成:
  6. $扇区为最小的物理存储单位,每个扇区512B;
  7. $将扇区组成一个园,那就是柱面,柱面是分区的最小单位;
  8. $第一个扇区最重要,有硬盘主引导记录MBR和分区表,其中MBR446B,分区表64B。
  9.     各种接口的磁盘在Linux中的文件名分别是:
  10. (1)/dev/sd[a-p][1-15]:表示SCSI,SATA,USB,Flash等接口的磁盘文件名。
  11. (2)/dev/hd[a-d][1-63]:为IDE接口的磁盘文件名。

3.磁盘分区表

    那磁盘是怎么分区的呢,总不能拿锯子来割吧!柱面是文件系统的最小单位,也是分区的最小单位,我们就利用参考柱面号码的方式来进行分区。其实分区的本质就是:在分区表设置每个区的起始柱面和结束柱面号码。     

    在分区表所在的64B容量中,总共分为4组记录区,每个记录区记录了对应分区的起始柱面和结束柱面的号码。若将硬盘以长条形式来看,然后将柱面以柱形图来看,那么64B的记录区段如图所示:

                                                 image                              

    假设上面的硬盘设备文件名为/dev/hda时,那么这4个分区在Linux系统中的设备文件名如下所示,文件名后面会再接一个数字,这个数字与分区的位置有关。

  • P1:/dev/hda1
  • P2:/dev/hda2
  • P3:/dev/hda3
  • p4:/dev/hda4

由于分区表只有64B,最多只能容纳4个分区,这4个分区被称为主分区或扩展分区。

    总结一下:

  1. (1)其实所谓的分区,只是针对那64B的分区表进行设置而已。
  2. (2)硬盘的默认分区表仅能写入4组分区信息。
  3. (3)这4组分区信息我们称为主或扩展分区。
  4. (4)分区的最小单位是柱面。
  5. (5)当系统要写入磁盘时,一定要参考磁盘分区表,才能针对某个分区进行数据的处理。

    上面我们介绍了分区的基本知识,让我们回头想下,为什么要分区?

  1. (1)数据的安全性。不同分区使不同类型的数据隔离,既保证数据安全也便于管理。
  2. (2)系统的性能。由于分区将数据集中在某个柱面的区段,由于数据集中了将有助于数据读取的速度与性能。

  

     捕获

磁盘分区(一)