菜鸟科技网

逻辑分区命令

主分区 vs. 扩展分区 vs. 逻辑分区

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

逻辑分区命令-图1
(图片来源网络,侵删)
  1. 主分区:

    • 硬盘分区表(如 MBR)最多支持 4个 主分区。
    • 操作系统可以直接从主分区启动。
    • 如果你想创建4个以上的分区,就必须使用扩展分区。
  2. 扩展分区:

    • 它不是一个真正的“数据”分区,而是一个容器占位符
    • 你可以在硬盘上创建最多1个扩展分区。
    • 扩展分区本身不能直接存储数据,它内部包含着多个逻辑分区
  3. 逻辑分区:

    • 逻辑分区必须创建在扩展分区内部。
    • 你可以在一个扩展分区内创建任意多个逻辑分区(只要磁盘空间足够)。
    • 逻辑分区不能用来启动操作系统。

简单比喻:

逻辑分区命令-图2
(图片来源网络,侵删)
  • 硬盘 = 一个大房间
  • 主分区 = 房间里的4个独立储物柜
  • 扩展分区 = 房间里建的一个大衣柜(这个大衣柜本身不放东西)
  • 逻辑分区 = 大衣柜里的多个抽屉

重要提示:

  • MBR 分区表:最多支持 4 个主分区,或者 3 个主分区 + 1 个扩展分区(扩展分区里可以包含无数逻辑分区)。
  • GPT 分区表:没有主/扩展/逻辑分区的概念,所有分区都是平等的,可以创建多达 128 个分区,如果你使用的是 UEFI 启动的新系统,很可能不需要手动创建逻辑分区,但为了知识的完整性,我们依然会讲解。

fdisk (经典、广泛使用)

fdisk 是一个基于菜单的交互式分区工具,非常经典,几乎所有 Linux 发行版都默认安装。

场景:在一块新硬盘(如 /dev/sdb)上创建分区

  1. 启动 fdisk

    sudo fdisk /dev/sdb

    (将 /dev/sdb 替换为你的硬盘设备名,如 /dev/sdc 等)

    逻辑分区命令-图3
    (图片来源网络,侵删)
  2. 查看现有分区 输入 p (print) 并回车,查看当前硬盘的分区表。

  3. 创建新分区

    • 创建扩展分区 我们假设要创建 3 个数据分区,那么需要 1 个扩展分区来容纳它们。 输入 n (new) 并回车。 系统会询问分区类型,因为我们想创建扩展分区,所以输入 e (extended) 并回车。 然后它会让你设置起始扇区和结束扇区,通常直接按回车两次,让它使用默认的整个未分配空间。

    • 创建逻辑分区 现在扩展分区已经创建好了,接下来在它内部创建逻辑分区。 再次输入 n (new) 并回车。 系统会自动检测到扩展分区,并提示你创建逻辑分区,所以直接按回车即可。 它会让你设置起始扇区,直接回车使用默认值。 然后是大小,这是关键步骤,你需要指定逻辑分区的大小。

      • 示例
        • 创建一个 10GB 的分区:+10G
        • 创建一个剩余所有空间的分区:直接回车
        • 创建一个 5000MB 的分区:+5000M

      重复此步骤,创建你需要的所有逻辑分区(sdb5, sdb6, sdb7...)。

  4. 保存并退出 输入 w (write) 并回车,将更改写入磁盘表,分区操作即完成。 输入 q (quit) 可以不保存更改直接退出。


parted (更现代、功能强大)

parted 是一个更现代的命令行分区工具,功能比 fdisk 更强大,支持 GPT 和 MBR,并且可以处理大于 2TB 的分区。

场景:同样在一块新硬盘(如 /dev/sdb)上创建分区

  1. 启动 parted

    sudo parted /dev/sdb
  2. 选择分区表类型 parted 默认可能会检测到你的硬盘是空的,并询问你创建什么类型的分区表。

    • 对于旧系统(BIOS/MBR):输入 ms
    • 对于新系统(UEFI/GPT):输入 gpt
    • 或者你也可以手动指定:mktable msdosmktable gpt
  3. 创建分区

    • 创建扩展分区parted> 提示符下,输入以下命令。parted 使用 startend 来定义范围。

      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 更精确。
  4. 打印并检查 输入 printp 查看当前的分区布局,确保一切正确。

  5. 退出 输入 quitq 退出 parted


创建分区后的必要步骤

无论你使用 fdisk 还是 parted,仅仅创建分区表是不够的,新创建的分区还需要被格式化并挂载后才能使用。

假设你创建的逻辑分区是 /dev/sdb5

  1. 格式化分区 为分区创建文件系统(如 ext4)。

    sudo mkfs.ext4 /dev/sdb5
  2. 创建挂载点 创建一个目录作为挂载点。

    sudo mkdir -p /mnt/data
  3. 挂载分区 将分区挂载到你刚创建的目录上。

    sudo mount /dev/sdb5 /mnt/data
  4. 设置开机自动挂载 (重要) 为了让系统重启后能自动挂载这个分区,需要编辑 /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 2
      • UUID: 分区的唯一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 则是处理更复杂分区需求时的利器。

分享:
扫描分享到社交APP
上一篇
下一篇