fdisk
命令详解
fdisk
是一个用于磁盘分区管理的命令行工具,它允许用户创建、删除、调整大小和管理硬盘上的分区。fdisk
是一个非常强大的工具,适用于多种类型的块设备,如物理硬盘、SSD、USB 驱动器等。
基本语法
fdisk [选项] [设备]
常用选项
-l
:列出指定设备的分区表信息,如果未指定设备,则列出所有磁盘的分区表信息。-u
:使用扇区而不是柱面作为单位(默认是柱面)。-c
:启用或禁用 DOS 兼容模式。-v
:显示fdisk
的版本信息。-h
:显示帮助信息。
基本命令
在 fdisk
交互模式下,可以使用以下命令:
p
:打印当前分区表。n
:创建新分区。d
:删除现有分区。t
:更改分区类型。a
:切换引导标志。w
:保存更改并退出。q
:不保存更改并退出。m
:显示可用命令列表。
示例
-
列出所有磁盘的分区表信息
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
-
进入交互模式并创建新分区
sudo fdisk /dev/sdb
在交互模式下,可以执行以下操作:
p
:查看当前分区表。n
:创建新分区。- 选择主分区(
p
)或扩展分区(e
)。 - 选择分区号。
- 选择起始扇区。
- 选择结束扇区或分区大小。
- 选择主分区(
p
:再次查看分区表,确认新分区已创建。w
:保存更改并退出。
-
删除现有分区
sudo fdisk /dev/sdb
在交互模式下,可以执行以下操作:
p
:查看当前分区表。d
:删除现有分区。- 选择要删除的分区号。
p
:再次查看分区表,确认分区已删除。w
:保存更改并退出。
-
更改分区类型
sudo fdisk /dev/sdb
在交互模式下,可以执行以下操作:
p
:查看当前分区表。t
:更改分区类型。- 选择要更改类型的分区号。
- 输入新的分区类型代码(例如,
83
表示 Linux 文件系统)。
p
:再次查看分区表,确认分区类型已更改。w
:保存更改并退出。
-
切换引导标志
sudo fdisk /dev/sdb
在交互模式下,可以执行以下操作:
p
:查看当前分区表。a
:切换引导标志。- 选择要切换引导标志的分区号。
p
:再次查看分区表,确认引导标志已更改。w
:保存更改并退出。
-
-u, --units
- 功能:指定单位(如扇区、柱面等)来显示分区信息。
- 示例:
sudo fdisk -u sectors -l /dev/sda
-
-b, --sector-size
- 功能:指定扇区大小。
- 示例:
sudo fdisk -b 2048 /dev/sda
-
-v, --version
- 功能:显示
fdisk
的版本信息。 - 示例:
fdisk -v
- 功能:显示
交互式命令
在 fdisk
中,可以使用以下交互式命令来管理磁盘分区:
-
m - 显示帮助信息。
- 示例:
Command (m for help): m
- 示例:
-
p - 打印当前分区表。
- 示例:
Command (m for help): p
- 示例:
-
n - 创建新分区。
- 示例:
Command (m for help): n Partition type: e extended p primary partition (1-4)
- 示例:
-
d - 删除分区。
- 示例:
Command (m for help): d Partition number (1-4):
- 示例:
-
t - 改变分区类型。
- 示例:
Command (m for help): t Partition number (1-4): Hex code (type L to list all codes):
- 示例:
-
w - 写入分区表并退出。
- 示例:
Command (m for help): w
- 示例:
-
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
退出而不保存更改。
注意事项
-
备份数据:
- 在进行分区操作前,请确保备份重要数据,因为错误的操作可能导致数据丢失。
-
权限:
- 使用
fdisk
需要超级用户权限,因此通常需要使用sudo
。
- 使用
-
分区表类型:
fdisk
默认使用 MBR 分区表。如果需要使用 GPT 分区表,可以考虑使用gdisk
或parted
工具。
-
写入分区表:
- 在执行
w
命令写入分区表后,操作系统可能需要重新扫描磁盘才能识别新的分区。可以使用partprobe
命令强制重新扫描:sudo partprobe /dev/sda
- 在执行
分区表类型
-
MBR (Master Boot Record):
- 传统的分区机制,应用于大多数使用 BIOS 引导的 PC 设备。
- 支持 32 位和 64 位系统。
- 最多只能创建 4 个主分区,或者 3 个主分区和 1 个扩展分区。
- 只支持不超过 2TB 的硬盘。
-
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
的基本命令和选项,可以有效地管理和维护磁盘分区。然而,在进行分区操作时,请务必小心谨慎,以免造成数据丢失。