主分区 vs. 扩展分区 vs. 逻辑分区
在开始命令之前,必须先理解这三个概念,这是理解逻辑分区的基础。

-
主分区:
- 硬盘分区表(如 MBR)最多支持 4个 主分区。
- 操作系统可以直接从主分区启动。
- 如果你想创建4个以上的分区,就必须使用扩展分区。
-
扩展分区:
- 它不是一个真正的“数据”分区,而是一个容器或占位符。
- 你可以在硬盘上创建最多1个扩展分区。
- 扩展分区本身不能直接存储数据,它内部包含着多个逻辑分区。
-
逻辑分区:
- 逻辑分区必须创建在扩展分区内部。
- 你可以在一个扩展分区内创建任意多个逻辑分区(只要磁盘空间足够)。
- 逻辑分区不能用来启动操作系统。
简单比喻:

- 硬盘 = 一个大房间
- 主分区 = 房间里的4个独立储物柜
- 扩展分区 = 房间里建的一个大衣柜(这个大衣柜本身不放东西)
- 逻辑分区 = 大衣柜里的多个抽屉
重要提示:
- MBR 分区表:最多支持 4 个主分区,或者 3 个主分区 + 1 个扩展分区(扩展分区里可以包含无数逻辑分区)。
- GPT 分区表:没有主/扩展/逻辑分区的概念,所有分区都是平等的,可以创建多达 128 个分区,如果你使用的是 UEFI 启动的新系统,很可能不需要手动创建逻辑分区,但为了知识的完整性,我们依然会讲解。
fdisk (经典、广泛使用)
fdisk 是一个基于菜单的交互式分区工具,非常经典,几乎所有 Linux 发行版都默认安装。
场景:在一块新硬盘(如 /dev/sdb)上创建分区
-
启动
fdisksudo fdisk /dev/sdb
(将
/dev/sdb替换为你的硬盘设备名,如/dev/sdc等)
(图片来源网络,侵删) -
查看现有分区 输入
p(print) 并回车,查看当前硬盘的分区表。 -
创建新分区
-
创建扩展分区 我们假设要创建 3 个数据分区,那么需要 1 个扩展分区来容纳它们。 输入
n(new) 并回车。 系统会询问分区类型,因为我们想创建扩展分区,所以输入e(extended) 并回车。 然后它会让你设置起始扇区和结束扇区,通常直接按回车两次,让它使用默认的整个未分配空间。 -
创建逻辑分区 现在扩展分区已经创建好了,接下来在它内部创建逻辑分区。 再次输入
n(new) 并回车。 系统会自动检测到扩展分区,并提示你创建逻辑分区,所以直接按回车即可。 它会让你设置起始扇区,直接回车使用默认值。 然后是大小,这是关键步骤,你需要指定逻辑分区的大小。- 示例:
- 创建一个 10GB 的分区:
+10G - 创建一个剩余所有空间的分区:直接回车
- 创建一个 5000MB 的分区:
+5000M
- 创建一个 10GB 的分区:
重复此步骤,创建你需要的所有逻辑分区(
sdb5,sdb6,sdb7...)。 - 示例:
-
-
保存并退出 输入
w(write) 并回车,将更改写入磁盘表,分区操作即完成。 输入q(quit) 可以不保存更改直接退出。
parted (更现代、功能强大)
parted 是一个更现代的命令行分区工具,功能比 fdisk 更强大,支持 GPT 和 MBR,并且可以处理大于 2TB 的分区。
场景:同样在一块新硬盘(如 /dev/sdb)上创建分区
-
启动
partedsudo parted /dev/sdb
-
选择分区表类型
parted默认可能会检测到你的硬盘是空的,并询问你创建什么类型的分区表。- 对于旧系统(BIOS/MBR):输入
ms - 对于新系统(UEFI/GPT):输入
gpt - 或者你也可以手动指定:
mktable msdos或mktable gpt
- 对于旧系统(BIOS/MBR):输入
-
创建分区
-
创建扩展分区 在
parted>提示符下,输入以下命令。parted使用start和end来定义范围。mkpart extended ext4 1MiB 100%
mkpart: 创建新分区的命令。extended: 指定分区类型为扩展分区。ext4: 指定文件系统类型(虽然扩展分区不真正使用文件系统,但parted要求提供)。1MiB: 起始位置,从 1MB 开始是个好习惯,可以保留扇区对齐。100%: 使用所有剩余空间。
-
创建逻辑分区 在扩展分区创建后,使用
mkpart命令。parted会自动将其创建为逻辑分区。# 创建一个 10GB 的逻辑分区,文件系统为 ext4 mkpart logical ext4 1MiB 10GiB # 再创建一个 20GB 的逻辑分区 mkpart logical ext4 10GiB 30GiB # 创建剩余空间的所有逻辑分区 mkpart logical ext4 30GiB 100%
logical: 指定分区类型为逻辑分区。GiB/Mib: 使用这些单位比G/M更精确。
-
-
打印并检查 输入
print或p查看当前的分区布局,确保一切正确。 -
退出 输入
quit或q退出parted。
创建分区后的必要步骤
无论你使用 fdisk 还是 parted,仅仅创建分区表是不够的,新创建的分区还需要被格式化并挂载后才能使用。
假设你创建的逻辑分区是 /dev/sdb5。
-
格式化分区 为分区创建文件系统(如
ext4)。sudo mkfs.ext4 /dev/sdb5
-
创建挂载点 创建一个目录作为挂载点。
sudo mkdir -p /mnt/data
-
挂载分区 将分区挂载到你刚创建的目录上。
sudo mount /dev/sdb5 /mnt/data
-
设置开机自动挂载 (重要) 为了让系统重启后能自动挂载这个分区,需要编辑
/etc/fstab文件。-
首先获取分区的 UUID(通用唯一标识符),这是最可靠的方式。
sudo blkid /dev/sdb5
输出类似:
/dev/sdb5: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" -
编辑
/etc/fstab文件。sudo nano /etc/fstab
-
在文件末尾添加以下一行(将 UUID 和挂载点替换成你自己的):
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /mnt/data ext4 defaults 0 2UUID: 分区的唯一ID。/mnt/data: 挂载点。ext4: 文件系统类型。defaults: 默认挂载选项。0:dump备份工具是否使用该分区(0表示不使用)。2:fsck文件系统检查顺序(2表示非根分区)。
-
保存文件后,可以运行以下命令测试
fstab是否正确:sudo mount -a
如果没有报错,说明配置正确。
-
总结对比
| 特性 | fdisk |
parted |
|---|---|---|
| 交互方式 | 菜单驱动,按键操作 | 命令行驱动,输入完整命令 |
| 分区表支持 | MBR, GPT (需指定) | MBR, GPT (原生支持) |
| 分区类型 | 明确区分主、扩展、逻辑 | 在 GPT 下无此概念,在 MBR 下需指定 extended/logical |
| 大分区支持 | 不支持 > 2TB 的分区 | 原生支持 > 2TB 的分区 |
| 适用场景 | 简单的 MBR 分区操作,习惯菜单操作 | 现代 GPT 分区,大容量磁盘,脚本自动化 |
对于日常使用和学习,建议先掌握 fdisk,因为它更直观,而 parted 则是处理更复杂分区需求时的利器。
