Bootstrap

Linux常用命令之fdisk命令详解

fdisk 命令详解

fdisk 是一个用于磁盘分区管理的命令行工具,它允许用户创建、删除、调整大小和管理硬盘上的分区。fdisk 是一个非常强大的工具,适用于多种类型的块设备,如物理硬盘、SSD、USB 驱动器等。

基本语法
fdisk [选项] [设备]
常用选项
  • -l:列出指定设备的分区表信息,如果未指定设备,则列出所有磁盘的分区表信息。
  • -u:使用扇区而不是柱面作为单位(默认是柱面)。
  • -c:启用或禁用 DOS 兼容模式。
  • -v:显示 fdisk 的版本信息。
  • -h:显示帮助信息。
基本命令

fdisk 交互模式下,可以使用以下命令:

  • p:打印当前分区表。
  • n:创建新分区。
  • d:删除现有分区。
  • t:更改分区类型。
  • a:切换引导标志。
  • w:保存更改并退出。
  • q:不保存更改并退出。
  • m:显示可用命令列表。
示例
  1. 列出所有磁盘的分区表信息

    sudo fdisk -l
    

    输出示例:

    Disk /dev/sda: 500 GB, 500107862016 bytes, 976773168 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: gpt
    Disk identifier: 12345678-1234-1234-1234-1234567890AB
    
    Device       Start        End    Sectors   Size Type
    /dev/sda1     2048     1048575    1046528   511M EFI System
    /dev/sda2  1048576    20971519   19922944    9.5G Linux filesystem
    /dev/sda3 20971520  976771071  955799552 455.7G Linux filesystem
    
  2. 进入交互模式并创建新分区

    sudo fdisk /dev/sdb
    

    在交互模式下,可以执行以下操作:

    • p:查看当前分区表。
    • n:创建新分区。
      • 选择主分区(p)或扩展分区(e)。
      • 选择分区号。
      • 选择起始扇区。
      • 选择结束扇区或分区大小。
    • p:再次查看分区表,确认新分区已创建。
    • w:保存更改并退出。
  3. 删除现有分区

    sudo fdisk /dev/sdb
    

    在交互模式下,可以执行以下操作:

    • p:查看当前分区表。
    • d:删除现有分区。
      • 选择要删除的分区号。
    • p:再次查看分区表,确认分区已删除。
    • w:保存更改并退出。
  4. 更改分区类型

    sudo fdisk /dev/sdb
    

    在交互模式下,可以执行以下操作:

    • p:查看当前分区表。
    • t:更改分区类型。
      • 选择要更改类型的分区号。
      • 输入新的分区类型代码(例如,83 表示 Linux 文件系统)。
    • p:再次查看分区表,确认分区类型已更改。
    • w:保存更改并退出。
  5. 切换引导标志

    sudo fdisk /dev/sdb
    

    在交互模式下,可以执行以下操作:

    • p:查看当前分区表。
    • a:切换引导标志。
      • 选择要切换引导标志的分区号。
    • p:再次查看分区表,确认引导标志已更改。
    • w:保存更改并退出。
  6. -u, --units

    • 功能:指定单位(如扇区、柱面等)来显示分区信息。
    • 示例
      sudo fdisk -u sectors -l /dev/sda
      
  7. -b, --sector-size

    • 功能:指定扇区大小。
    • 示例
      sudo fdisk -b 2048 /dev/sda
      
  8. -v, --version

    • 功能:显示 fdisk 的版本信息。
    • 示例
      fdisk -v
      

交互式命令

fdisk 中,可以使用以下交互式命令来管理磁盘分区:

  1. m - 显示帮助信息。

    • 示例
      Command (m for help): m
      
  2. p - 打印当前分区表。

    • 示例
      Command (m for help): p
      
  3. n - 创建新分区。

    • 示例
      Command (m for help): n
      Partition type:
         e   extended
         p   primary partition (1-4)
      
  4. d - 删除分区。

    • 示例
      Command (m for help): d
      Partition number (1-4):
      
  5. t - 改变分区类型。

    • 示例
      Command (m for help): t
      Partition number (1-4):
      Hex code (type L to list all codes):
      
  6. w - 写入分区表并退出。

    • 示例
      Command (m for help): w
      
  7. q - 不保存更改并退出。

    • 示例
      Command (m for help): q
      

应用示例

1. 列出所有磁盘和分区信息
sudo fdisk -l
2. 创建新分区
sudo fdisk /dev/sda
  • fdisk 提示符下输入 n 创建新分区。
  • 选择分区类型(主分区或扩展分区)。
  • 输入分区编号。
  • 输入起始扇区(默认即可)。
  • 输入结束扇区或大小(例如 +1G 表示 1GB)。
  • 输入 w 保存并退出。
3. 删除分区
sudo fdisk /dev/sda
  • fdisk 提示符下输入 d 删除分区。
  • 选择要删除的分区编号。
  • 输入 w 保存并退出。
4. 改变分区类型
sudo fdisk /dev/sda
  • fdisk 提示符下输入 t 改变分区类型。
  • 选择要改变类型的分区编号。
  • 输入新的分区类型代码(例如 83 表示 Linux 文件系统)。
  • 输入 w 保存并退出。
5. 查看分区表
sudo fdisk /dev/sda
  • fdisk 提示符下输入 p 查看当前分区表。
  • 输入 q 退出而不保存更改。

注意事项

  1. 备份数据

    • 在进行分区操作前,请确保备份重要数据,因为错误的操作可能导致数据丢失。
  2. 权限

    • 使用 fdisk 需要超级用户权限,因此通常需要使用 sudo
  3. 分区表类型

    • fdisk 默认使用 MBR 分区表。如果需要使用 GPT 分区表,可以考虑使用 gdiskparted 工具。
  4. 写入分区表

    • 在执行 w 命令写入分区表后,操作系统可能需要重新扫描磁盘才能识别新的分区。可以使用 partprobe 命令强制重新扫描:
      sudo partprobe /dev/sda
      

分区表类型

  1. MBR (Master Boot Record)

    • 传统的分区机制,应用于大多数使用 BIOS 引导的 PC 设备。
    • 支持 32 位和 64 位系统。
    • 最多只能创建 4 个主分区,或者 3 个主分区和 1 个扩展分区。
    • 只支持不超过 2TB 的硬盘。
  2. GPT (GUID Partition Table)

    • 较新的分区机制,解决了 MBR 的许多缺点。
    • 支持超过 2TB 的磁盘。
    • 向后兼容 MBR。
    • 使用 GPT 分区的前提是底层硬件必须支持 UEFI。
    • GPT 分区列表支持最大 128PB (1PB = 1024TB),可以定义 128 个分区,没有主分区、扩展分区和逻辑分区的概念。

判断分区是 GPT 还是 MBR

可以使用以下命令来判断分区是 GPT 还是 MBR:

sudo fdisk -l /dev/sda
  • 如果输出中包含 Disk label type: dos,则表示该分区是 MBR 分区。
  • 如果输出中包含 Disk label type: gpt,则表示该分区是 GPT 分区。

总结

fdisk 是一个强大的磁盘分区管理工具,适用于大多数 Linux 发行版。通过了解和熟练使用 fdisk 的基本命令和选项,可以有效地管理和维护磁盘分区。然而,在进行分区操作时,请务必小心谨慎,以免造成数据丢失。

;