磁盘结构

一个磁盘由单个或多个盘片组成,每个盘片由内而外会被划分出多个同心圆, 单盘片上的同心圆称为磁道,所有盘片具有相同半径的磁道组成一个磁柱(cylinder)。 磁道会被进一步划分为等长的扇区(sector),扇区是磁盘进行存取操作的最小单位, 大小一般为 512B 或 4K。

任何存储设备都离不开寻址,磁盘常见的一种寻址方式称作 CHS(Cylinder, Heads, Sector)。 CHS 是一个三元组,我们可以记为 (C,H,S)。C即指磁柱,确定该值即可确定寻址目标处的半径; H指磁头,通过该值可以确定寻址目标所处的盘片;S指扇区,该值确定寻址目标在磁道上的哪段位置。

磁盘上的第一个扇区用作特殊目的,其中,64B 用来存储分区表,剩余空间用于存储 MBR(主要引导记录)。 磁盘分区表可存储 4 条记录,每条记录 16B ,用于记录对应分区的起始和结束磁柱(分区的最小单位为磁柱)。 1 条记录只能表示 1 个分区,那一个磁盘是不是最多只能划分为 4 个分区呢?当然不是! 在第一扇区分区表中记录的分区称为 主要分区, 为了支持更多的分区,我们可以在主要分区的开始扇区记录另外一张分区表,这样的分区称为 逻辑分区。 而被进一步分割成逻辑分区的主要分区称为 扩展分区。 另外,需要注意的是扩展分区最多只能有一个。

磁盘文件

在 Linux 下,我们怎么操作和引用磁盘呢?

在”一切皆文件”的 Unix 哲学下,当然是通过文件来引用磁盘。 Unix 中定义了七种类型的文件,而磁盘通常是块设备特殊文件。 它在 Linux 下的文件名一般是 /dev/sda, /dev/sdb 或 /dev/sdc。 注意,a/b/c 的后缀只与加载顺序有关。

各磁盘分区在系统下也有单独的名字与其对应。我们以 /dev/sda 为例。 /dev/sda1, /dev/sda2, /dev/sda3, /dev/sda4 表示磁盘的4个主要分区。 /dev/sda5 和其后的名称用于表示逻辑分区。

磁盘工具

Linux 有一系列用于磁盘管理的工具。

  • df

    man page 上,df的作用为:report file system disk space usage。 意为:查看磁盘空间使用情况查看。但从 df 的输出,我们还可获得文件系统的挂载信息。

  • fdsik

    fdisk 为磁盘分区表管理工具。我们可以利用它查看和划分磁盘分区。

  • mkfs

    此命令用于创建 Linux 文件系统。

  • mount

    挂载文件系统到指定目录。


本文作者ruleless, 欢迎评论、交流。
转载请务必标注出处: linux磁盘分区管理


«Previous:   kbengine消息处理函数注册

»Next:         Linux平台下的网络工具