磁盘分区概述
Linux 和
UNIX
中的基本文件存储单元都是磁盘分区,即将一个或多个硬盘的逻辑划分,操作系统将每个逻辑分区视为独立的磁盘。文件和文件管理系统“居住”在磁盘分区中。
Linux 将这些磁盘分区作为设备处理,进而通过 /dev 目录中的特殊文件使用文件 I/O 机制。(在 UNIX
传统中,它使用文件 I/O 机制管理硬件设备和数据文件。)
有两种类型的设备文件:块和字符/原始。两者之间的一个重要差别是,块设备被缓冲,而字符设备因为没有文件管理系统,所以不被缓冲。在
Oracle 集群文件系统 (OCFS) 推出之前,使用原始设备是提高 Oracle 数据文件分区性能的常见方法。
存储在磁盘最开始位置的分区表提供了该磁盘上分区的映射。可以使用 fdisk 命令查看系统的分区表。
# fdisk -l
Disk /dev/hda:240 heads, 63 sectors, 1940 cylinders
Units = cylinders of 15120 * 512 bytes
Device
Boot Start End Blocks Id System
/dev/hda 1 286 2162128+ c Win95 FAT32 (LBA)
/dev/hda2 * 288 1940 12496680 5 Extended
/dev/hda5 288 289 15088+ 83 Linux
/dev/hda6 290 844 4195768+ 83 Linux
/dev/hda7 845 983 1050808+ 82 Linux swap
/dev/hda8 984 1816 6297448+ 83 Linux
/dev/hda9 1817 1940 937408+ 83 Linux
分区表中的名称 /dev/hda 至 /dev/hdd 分别代表 IDE 驱动器 1 至 4,其中 hda 代表驱动器
1,hdb 代表驱动器 2,依此类推。驱动器内的分区用数字指代,因此 /dev/hda5 是第一个 IDE 驱动器上的第五个分区。对于
SCSI 驱动器,使用了类似的命名模式:/dev/sda to /dev/sdd。
第一至第四个分区保留给主分区,第五个及随后的分区用于逻辑分区。因此,以上所示的分区表中有一个驱动器 hda,它包含一个主分区
hda1、一个扩展分区 hda2 和五个逻辑分区 /dev/hda5 至 /dev/hda9。以名称 shmfs
列出的文件系统表示根据 Linux 2.4 中的 POSIX 标准挂载为特殊文件系统的共享内存文件系统。
您可能已经注意到,在 fdisk 列表中 LBA 是括在括号中的。LBA
表示逻辑块寻址,它将硬盘的柱面、块和扇区模式转换为线性块编号进行处理。
在 Linux 中,分区分为主分区、扩展分区和逻辑分区。术语主分区 是先前 x86 系统上四个分区限制的遗留产物。与 DOS 和
Windows 不同,Linux
可以从主分区或逻辑分区启动。用作逻辑分区占位符的主分区称作扩展分区。扩展分区本身拥有指向一个或多个逻辑分区(它们只是主分区的子分区)的分区表。在以上的
fdisk 列表中,hda2 就是一个扩展分区。