学科分类
目录
Linux编程

磁盘与磁盘分区

磁盘是计算机中的主要存储设备,一般由主轴、盘片和读写磁头组成。如图1所示:磁盘中包含多张盘片,每张盘片包含上下两个盘面,盘片固定在磁盘的主轴上,盘片的每个盘面都有一个固定在动臂上的读写磁头;计算机中的数据存储在磁盘的盘面上,盘片随主轴的旋转而转动,固定在动臂上的读写磁头在盘片转动的同时,读取盘面上存储的信息。

图1 磁盘结构示意图

磁盘的盘片又可细分:图1中盘片上的圆环称为磁道,每张盘片上有许多磁道,多张盘片上半径相同的磁道组成的圆柱面称为柱面,一张盘片有多少磁道,磁盘就有多少柱面。磁道是读写磁头读写的轨迹,读写磁头可以在动臂的带动下切换访问的柱面。由内及外,扇区中的磁道逐渐增大,较大的磁道能够存储更多的数据,但因为磁道中能存储的数据量不同,以磁道作为存储单位显然会为数据存储带来麻烦。

磁盘上的盘片被细分为多个大小相同的扇区,扇区是磁盘空间的基本单位,一般来说,一个扇区的大小为512字节。磁盘中第一个扇区非常重要,其中存储了与磁盘正常使用相关的重要信息,分别为:主引导记录、磁盘分区表和魔数。

● 主引导记录(Master Boot Record)占用446字节,其中包含一段被称为引导加载流程(Boot Loader)的程序,计算机启动后,会到磁盘0扇面的0扇区去读取MBR中的内容,只有MBR中的程序正确无误,计算机才能正常开机。

● 磁盘分区表(partition table)占用64个字节,其中记录整块磁盘的分区状态,每个分区的信息需要16个字节,因此磁盘分区表若只记录分区信息,便最多只能存储4个分区的分区信息。

● 魔数(Magic Number)占用2个字节,用来标识MBR是否有效。

在计算机诞生伊始,其存储空间是及其有限的,但随着计算机硬件与软件的发展,普通计算机中配备磁盘的存储空间已能用T来计算,这表示磁盘中能够存储的数据也有了极大的提升。为了更好地组织文件,并提高磁盘的读写效率,为磁盘分区是一个明智的选择。

若要为现实中的空间分区,如为一间房间分区,可以通过在房间中添加格挡来实现,但对于磁盘来说,这种方法显然行不通。在对磁盘结构分区时,我们提到,磁盘的第一个扇区中存储着一张“磁盘分区表”,其实利用这张表,便能为磁盘分区。

磁盘由若干个柱面组成,假设一个磁盘有500个柱面,将磁盘分为4个分区,那么只需将磁盘的分区信息记录在磁盘分区表中即可,按上述方式,磁盘分区与分区表的关系应如图2所示(每个分区的柱面数可不相同)。

图2 分区表与磁盘分区

Linux系统中遵循“一切皆文件”的思想,Linux下的设备也会被视为文件,硬盘作为设备的一种,其对应的文件被存储于系统的/dev目录下。若磁盘为SATA类型,则磁盘路径名为/dev/sda,图5-2所示的四个分区在/dev目录下对应的文件名如下所示:

● P1:/dev/sda1

● P2:/dev/sda2

● P3:/dev/sda3

● P4:/dev/sda4

设备的文件名由路径、设备名与分区编号构成,若要在P2分区中存储数据,则相应的数据会被写到磁盘中编号为101~200之间的磁道上。

Linux和Windows系统中磁盘分区的方式是相同的,也就是说Windows系统中也有一个64字节的分区表。前文讲到,分区表中最多只能记录4个分区的属性信息,但是熟悉Windows系统的用户应该知道,Windows系统中可以有不止4个分区,这是为什么呢?

原来磁盘除可以划分出主分区外,还可以划分出一个扩展分区,而扩展分区可以再次划分,由扩展分区划分出的分区被称为逻辑分区。读者可能会有疑问:即便能划分出逻辑分区,逻辑分区的信息又该如何存储呢?我们知道,磁盘就是用于存储数据的,那么我们只要在创建逻辑分区的同时,将分区的信息记录在磁盘的某个位置即可,通常这些信息会被存储在由扩展分区划分出的第一个逻辑分区的第一个扇区。

若磁盘中包含500个磁道,磁盘被分为一个主分区和一个扩展分区,且扩展分区又被划分为4个逻辑分区,那么主分区表、逻辑分区表中的分区与磁盘的对应关系如图3所示。

图3 主分区与逻辑分区

图5-3的磁盘中有两个分区表(分别用黑色扇形和方块表示),存在于分区P1中的分区表为主分区表,共占64字节,其中只记录了两个分区:P1和P2。分区P1为主分区,分区P2为扩展分区,分区P2又被划分为了4个逻辑分区L1~L4,其分区信息存储于第101个柱面的扇区中。若Linux系统按图5-3所示的方式分区,/dev目录下将会有6个设备文件,文件的路径名分别如下:

● P1:/dev/sda1

● P2:/dev/sda2

● L1:/dev/sda5

● L2:/dev/sda6

● L3:/dev/sda5

● L4:/dev/sda6

注意到逻辑分区L1~L4的设备文件编号从5开始,这是因为编号1~4被预留给主分区表中的设备文件使用,即使主分区表中的分区不足4个,逻辑分区的设备文件也不能使用编号1~4。

虽然磁盘分区表中最多可以存储4个分区的信息,但使用时一般只使用两个分区,即一个主分区和一个扩展分区。主分区可以马上被使用,但不能再分;扩展分区必须再划分为逻辑分区才能使用,因为系统不能识别为划分的扩展分区。

点击此处
隐藏目录