linux磁盘分区
Linux 磁盘分区主要分为基本分区(primary partition)和扩充分区(extension partition)两种。基本分区和扩充分区的数目之和不能大于四个,且基本分区可以马上被使用,但不能再进行分区;扩充分区必须再进行二次分区后才能使用。
在 Linux 中,每一个硬件设备都映射到一个系统文件。对于硬盘、光驱等 IDE 设备,分配的文件由hd前缀组成;对于各种 SCSI 设备,则分配的文件由sd前缀组成。
要深入理解硬盘分区,需要了解一些硬盘的物理结构概念,如磁道、扇区、柱面、簇等。磁道是硬盘被分成的同心圆;扇区是磁道中被分成的等份区域,是硬盘数据存储的最小单位;具有相同磁道编号的同心圆组成的面称作柱面,柱面数就是磁盘上的磁道数,且柱面是硬盘分区的最小单位;操作系统将相邻的扇区组合在一起形成簇,然后对簇进行管理,每个簇可以包括多个扇区。
另外,还需掌握主引导分区(MBR)、扩展分区、逻辑分区的概念。MBR 是整个硬盘最重要的区域,它有 512 个字节,可分为两个部分:一是用于存放引导代码(bootloader)的 446 个字节;二是用于存放磁盘分区表的 64 个字节,每个分区的信息需用 16 个字节来记录,因此一个硬盘最多可以有 4 个分区,即主分区和扩展分区。
通常所说的 “硬盘分区” 就是指修改磁盘分区表,它定义了 “第 n 个磁盘块是从第 x 个柱面到第 y 个柱面”。当系统要读取第 n 个磁盘块时,就是去读硬盘上第 x 个柱面到第 y 个柱面的信息。
由于扩展分区只能有一个,若想将硬盘划分为超过 4 个分区,就需要扩展分区来帮忙。系统允许在额外的硬盘空间存放另一份磁盘分区信息,而扩展分区本身不能直接使用,还需将其划分为逻辑分区才行。
Linux 默认可分为 3 个分区,分别是:
- boot 分区:对应于
/boot目录,约 100MB,存放 Linux 的 grub(bootloader)和内核源码。用户可通过访问/boot目录来访问该分区。 - swap 分区:没有对应的目录,用户无法直接访问。Linux 下的 swap 分区即为虚拟内存,用于当系统内存空间不足时,先将临时数据存放在 swap 分区,等待一段时间后再调入内存执行。虚拟内存的大小为物理内存的 2 倍。
- 根分区:在 Linux 操作系统中,除
/boot目录外的其它所有目录都对应于该分区,用户可通过访问除/boot目录外的其它所有目录来访问该分区。
在实际操作中,可以使用
fdisk -l命令查看硬盘分区情况,使用mkfs命令格式化分区。Linux 分区与 Windows 不同,它是先有目录,再将物理地址映射到目录中,所有路径都是从根目录开始。
此外,在嵌入式系统中,分区情况又有所不同,它一般可分为 bootloader、para、kernel、根分区等。嵌入式系统没有 swap 分区,只有实际的物理空间,bootloader、para、kernel 这三个分区的功能类似于 Linux 系统中的
/boot分区,而根分区(/)可构造,其功能类似于 Linux 系统中的根分区,且分区只能由地址或目录来区分。如果你想在 Linux 中进行磁盘分区操作,可以使用 fdisk 等分区工具。具体步骤如下(以下示例以在
/dev/sdb磁盘上进行分区操作为例):- 使用 ssh 远程连接工具登录到系统,输入
fdisk /dev/sdb并回车,给硬盘进行分区; - 输入
n回车新建分区,接着输入p回车新建主分区; - 选择分区号(如 1-4 之间)并回车,设置分区起始的柱面可直接回车选择默认;
- 设置分区结束柱面,如输入
+3g表示从起始柱面开始向后 3GB 结束,即分区大小为 3GB; - 输入
p查看分区是否成功; - 按需求划分扩展分区(输入
e回车)和逻辑分区(输入n回车后再输入l回车); - 再次输入
p查看当前分区状态; - 最后输入
w回车,进行保存退出。
完成分区后,还需对分区进行格式化,例如使用
mkfs -text3 /dev/sdb1等命令对相应分区进行格式化处理。请注意,在进行磁盘分区操作时,要谨慎操作,因为这可能会导致数据丢失。建议在操作前备份重要数据。同时,不同的 Linux 发行版可能会有一些细微差别,具体操作时可参考相应的文档或系统帮助信息。

