一、常用磁盘管理工具

1.1 fdisk

  • 功能:传统的命令行分区工具,主要用于 MBR(Master Boot Record) 分区表。
  • 特点

    • 支持创建、删除、调整分区(但调整分区功能有限)。
    • 仅适用于磁盘容量 ≤ 2TB 的情况(MBR 的限制)。
    • 最多支持 4 个主分区,或 3 个主分区 + 1 个扩展分区(扩展分区内可再分逻辑分区)。
  • 适用场景

    • 管理旧系统或小型磁盘(≤2TB)。
    • 需要兼容传统 BIOS 引导的系统。
    • 例如:为旧服务器划分分区、修复 MBR 分区表问题。

1.2 gdisk

  • 功能:现代命令行分区工具,专为 GPT(GUID Partition Table) 设计。
  • 特点

    • 支持磁盘容量 >2TB(GPT 无容量限制)。
    • 最多支持 128 个主分区(GPT 特性)。
    • 兼容 UEFI 引导系统,常用于现代计算机。
  • 适用场景

    • 管理大容量磁盘(如 4TB 以上的硬盘)。
    • 为 UEFI 系统创建分区(如 /boot/efi 分区)。
    • 例如:在新电脑上安装 Linux 并配置 GPT 分区。

1.3 parted

  • 功能:高级命令行工具,支持 MBR 和 GPT 分区表,功能更全面。
  • 特点

    • 支持创建、删除、调整分区大小(需文件系统工具配合,如 resize2fs)。
    • 支持脚本化操作,适合自动化任务。
    • 可处理复杂分区需求(如对齐优化)。
  • 适用场景

    • 动态调整分区大小(如扩展 /home 分区)。
    • 跨分区表操作(需同时管理 MBR 和 GPT 磁盘)。
    • 例如:在虚拟机中扩容磁盘后,使用 parted 调整分区并配合 resize2fs 扩展文件系统。

1.4 partprobe

  • 功能:通知操作系统内核重新读取分区表,无需重启。
  • 特点

    • 适用于所有分区工具(fdisk/gdisk/parted)修改后的场景。
    • 避免因分区表缓存导致的分区信息不一致。
  • 适用场景

    • 修改分区表后立即生效(如删除旧分区后创建新分区)。
    • 远程服务器操作时避免重启。
    • 例如:在脚本中自动分区后运行 partprobe,再格式化新分区。

1.5 总结对比

工具分区表支持适用场景典型操作
fdiskMBR旧系统、小磁盘(≤2TB)创建主分区、修复 MBR
gdiskGPT大磁盘、UEFI 系统创建 EFI 分区、管理 GPT 分区
partedMBR/GPT动态调整分区、脚本化操作调整分区大小、跨分区表操作
partprobe通用分区修改后通知内核避免重启、强制刷新分区表

1.6 注意事项

  • 数据备份:分区操作可能导致数据丢失,务必提前备份。
  • 文件系统支持:调整分区大小需文件系统工具配合(如 resize2fs 用于 ext4)。
  • 兼容性:UEFI 系统必须使用 GPT 分区表,BIOS 系统通常使用 MBR。

二、fdisk

fdisk 是一个常用的磁盘分区工具,主要用于在 Linux 系统中创建、删除、调整和管理磁盘分区。以下是一些常用的 fdisk 命令及其用途:

2.1 常用命令及用途

  1. m: 显示帮助菜单,列出所有可用命令。
  2. p: 打印当前分区表,显示磁盘的分区信息。
  3. n: 创建一个新分区。
  4. d: 删除一个分区。
  5. t: 更改分区的类型(例如,将分区类型更改为 Linux swap、Linux LVM 等)。
  6. w: 将更改写入磁盘并退出。
  7. q: 不保存更改并退出。
  8. l: 列出所有已知的分区类型。
  9. a: 切换分区的可启动标志。
  10. v: 验证分区表。

2.2 使用 fdisk 进行分区的完整例子

假设我们有一块名为 /dev/sdb 的磁盘,我们想要在其中创建两个分区:一个主分区和一个扩展分区。

  1. 启动 fdisk:

    sudo fdisk /dev/sdb
  2. 查看当前分区表:
    输入 p 查看当前分区表:

    Command (m for help): p
  3. 创建新分区:
    输入 n 创建一个新分区:

    Command (m for help): n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)
       e   extended
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-20971519, default 2048): [按回车键使用默认值]
    Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +5G

    这将创建一个大小为 5GB 的主分区。

  4. 创建扩展分区:
    再次输入 n 创建另一个分区:

    Command (m for help): n
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): e
    Partition number (2-4, default 2): 2
    First sector (10487808-20971519, default 10487808): [按回车键使用默认值]
    Last sector, +sectors or +size{K,M,G} (10487808-20971519, default 20971519): [按回车键使用默认值]

    这将创建一个扩展分区,占用剩余的磁盘空间。

  5. 查看分区表:
    输入 p 查看当前分区表,确认分区已创建:

    Command (m for help): p
  6. 保存并退出:
    输入 w 将更改写入磁盘并退出:

    Command (m for help): w

2.3 总结

通过以上步骤,我们使用 fdisk/dev/sdb 磁盘上创建了一个 5GB 的主分区和一个扩展分区。fdisk 是一个功能强大的工具,适合用于管理磁盘分区,但在操作时需要谨慎,以免误删或损坏数据。

三、gdisk

gdisk 是一个用于管理 GPT(GUID Partition Table) 分区表的工具,适用于现代磁盘(尤其是大于 2TB 的磁盘)。与 fdisk 不同,gdisk 专门设计用于 GPT 分区表,支持更多的分区和更大的磁盘容量。

以下是 gdisk 的常用命令及其用途,以及一个完整的使用示例。


3.1 常用命令及用途

  1. p: 打印当前分区表,显示磁盘的分区信息。
  2. n: 创建一个新分区。
  3. d: 删除一个分区。
  4. t: 更改分区的类型(例如,将分区类型更改为 Linux filesystem、Linux swap 等)。
  5. w: 将更改写入磁盘并退出。
  6. q: 不保存更改并退出。
  7. l: 列出所有已知的分区类型。
  8. i: 显示分区的详细信息。
  9. c: 更改分区的名称(GPT 支持分区名称)。
  10. v: 验证分区表。

3.2 使用 gdisk 进行分区的完整例子

假设我们有一块名为 /dev/sdb 的磁盘,我们想要在其中创建两个分区:一个用于 Linux 文件系统,另一个用于 Linux swap。

  1. 启动 gdisk:

    sudo gdisk /dev/sdb
  2. 查看当前分区表:
    输入 p 查看当前分区表:

    Command (? for help): p
  3. 创建新分区(Linux 文件系统):
    输入 n 创建一个新分区:

    Command (? for help): n
    Partition number (1-128, default 1): [按回车键使用默认值]
    First sector (34-20971486, default 2048): [按回车键使用默认值]
    Last sector, +sectors or +size{K,M,G} (2048-20971486, default 20971486): +10G
    Hex code or GUID (L to show codes, Enter = 8300): [按回车键使用默认值(Linux filesystem)]

    这将创建一个大小为 10GB 的 Linux 文件系统分区。

  4. 创建新分区(Linux swap):
    再次输入 n 创建另一个分区:

    Command (? for help): n
    Partition number (2-128, default 2): [按回车键使用默认值]
    First sector (20973568-20971486, default 20973568): [按回车键使用默认值]
    Last sector, +sectors or +size{K,M,G} (20973568-20971486, default 20971486): +2G
    Hex code or GUID (L to show codes, Enter = 8300): 8200

    这将创建一个大小为 2GB 的 Linux swap 分区。

  5. 查看分区表:
    输入 p 查看当前分区表,确认分区已创建:

    Command (? for help): p
  6. 保存并退出:
    输入 w 将更改写入磁盘并退出:

    Command (? for help): w
  7. 格式化分区:
    分区创建完成后,需要格式化分区以便使用:

    • 格式化 Linux 文件系统分区:

      sudo mkfs.ext4 /dev/sdb1
    • 格式化 Linux swap 分区:

      sudo mkswap /dev/sdb2
      sudo swapon /dev/sdb2

3.3 总结

通过以上步骤,我们使用 gdisk/dev/sdb 磁盘上创建了一个 10GB 的 Linux 文件系统分区和一个 2GB 的 Linux swap 分区。gdisk 是管理 GPT 分区表的理想工具,特别适合现代大容量磁盘。与 fdisk 相比,gdisk 提供了更强大的功能和更灵活的分区管理。

四、parted

parted 是一个功能强大的磁盘分区工具,支持 MBR(Master Boot Record)GPT(GUID Partition Table) 分区表。与 fdiskgdisk 相比,parted 提供了一个交互式命令行界面,并且可以直接处理大容量磁盘(如大于 2TB 的磁盘)。以下是 parted 的常用命令及其用途,以及一个完整的使用示例。


4.1 常用命令及用途

  1. print: 打印当前分区表,显示磁盘的分区信息。
  2. mkpart: 创建一个新分区。
  3. rm: 删除一个分区。
  4. resizepart: 调整分区的大小。
  5. set: 设置分区的标志(例如,bootlvm 等)。
  6. mklabel: 创建新的分区表(例如,gptmsdos)。
  7. unit: 设置显示单位(例如,MBGBs 等)。
  8. quit: 退出 parted

4.2 使用 parted 进行分区的完整例子

假设我们有一块名为 /dev/sdb 的磁盘,我们想要在其中创建两个分区:一个用于 Linux 文件系统,另一个用于 Linux swap。

  1. 启动 parted:

    sudo parted /dev/sdb
  2. 查看当前分区表:
    输入 print 查看当前分区表:

    (parted) print
  3. 创建新的分区表(如果需要):
    如果磁盘没有分区表,可以使用 mklabel 创建一个新的 GPT 分区表:

    (parted) mklabel gpt
  4. 创建新分区(Linux 文件系统):
    使用 mkpart 创建一个新分区:

    (parted) mkpart primary ext4 1MiB 10GiB

    这将创建一个从 1MiB 到 10GiB 的主分区,文件系统类型为 ext4

  5. 创建新分区(Linux swap):
    再次使用 mkpart 创建另一个分区:

    (parted) mkpart primary linux-swap 10GiB 12GiB

    这将创建一个从 10GiB 到 12GiB 的 Linux swap 分区。

  6. 查看分区表:
    输入 print 查看当前分区表,确认分区已创建:

    (parted) print
  7. 退出 parted:
    输入 quit 退出:

    (parted) quit
  8. 格式化分区:
    分区创建完成后,需要格式化分区以便使用:

    • 格式化 Linux 文件系统分区:

      sudo mkfs.ext4 /dev/sdb1
    • 格式化 Linux swap 分区:

      sudo mkswap /dev/sdb2
      sudo swapon /dev/sdb2

4.3 总结

通过以上步骤,我们使用 parted/dev/sdb 磁盘上创建了一个 10GB 的 Linux 文件系统分区和一个 2GB 的 Linux swap 分区。parted 是一个功能强大且灵活的工具,支持 MBR 和 GPT 分区表,特别适合处理大容量磁盘和复杂的分区需求。与 fdiskgdisk 相比,parted 提供了更直观的命令行界面和更多的功能选项。

标签: none

添加新评论