fdisk 命令 #
fdisk
是一个用于创建和操作磁盘分区表的命令行工具。它允许用户创建、调整、删除和查看分区,是Linux系统中进行磁盘管理的基本工具之一。
语法 #
fdisk [选项] [设备]
常用选项 #
选项 | 描述 |
---|---|
-l, --list |
列出指定设备或所有设备的分区表 |
-s, --size |
显示设备大小(以块为单位) |
-b, --sectors |
指定扇区大小(512、1024、2048或4096) |
-u, --units[=单位] |
显示单位(‘cylinders’或’sectors’,默认为sectors) |
-C, --cylinders 数量 |
指定柱面数量 |
-H, --heads 数量 |
指定磁头数量 |
-S, --sectors 数量 |
指定每个磁道的扇区数量 |
-v, --version |
显示版本信息 |
-h, --help |
显示帮助信息 |
交互式命令 #
在fdisk
的交互式界面中,可以使用以下命令:
命令 | 描述 |
---|---|
a |
切换可启动标志 |
b |
编辑嵌套的BSD磁盘标签 |
c |
切换DOS兼容性标志 |
d |
删除分区 |
l |
列出已知的分区类型 |
n |
添加新分区 |
o |
创建新的空DOS分区表 |
p |
打印分区表 |
q |
退出而不保存更改 |
s |
创建新的空Sun分区表 |
t |
更改分区类型 |
u |
更改显示/输入单位 |
v |
验证分区表 |
w |
写入分区表到磁盘并退出 |
x |
额外功能(仅限专家) |
常见用法 #
1. 列出所有磁盘分区 #
sudo fdisk -l
2. 列出特定设备的分区 #
sudo fdisk -l /dev/sda
3. 启动交互式分区工具 #
sudo fdisk /dev/sdb
4. 创建新分区 #
启动交互式界面后:
- 输入
n
创建新分区 - 选择分区类型(主分区
p
或扩展分区e
) - 选择分区号(1-4)
- 指定起始扇区(按Enter使用默认值)
- 指定结束扇区或分区大小(例如
+10G
表示10GB) - 输入
w
保存更改
5. 删除分区 #
启动交互式界面后:
- 输入
d
删除分区 - 选择要删除的分区号
- 输入
w
保存更改
6. 更改分区类型 #
启动交互式界面后:
- 输入
t
更改分区类型 - 选择要更改的分区号
- 输入分区类型代码(可以先使用
l
列出所有类型) - 输入
w
保存更改
7. 查看当前分区表 #
启动交互式界面后,输入p
显示当前分区表。
8. 创建交换分区 #
启动交互式界面后:
- 输入
n
创建新分区 - 完成分区创建步骤
- 输入
t
更改分区类型 - 选择刚创建的分区号
- 输入
82
(Linux交换分区类型) - 输入
w
保存更改
常见分区类型代码 #
代码 | 分区类型 |
---|---|
83 |
Linux |
82 |
Linux 交换 |
8e |
Linux LVM |
7 |
NTFS/exFAT |
c |
FAT32 (LBA) |
ef |
EFI 系统分区 |
fd |
Linux RAID 自动检测 |
实用示例 #
1. 创建一个新的MBR分区表并添加分区 #
sudo fdisk /dev/sdb
交互式命令序列:
o # 创建新的空DOS分区表
n # 添加新分区
p # 主分区
1 # 分区号1
# 默认起始扇区
+20G # 20GB大小
n # 添加另一个分区
p # 主分区
2 # 分区号2
# 默认起始扇区
# 默认结束扇区(使用剩余所有空间)
w # 写入更改并退出
2. 创建一个交换分区 #
sudo fdisk /dev/sdb
交互式命令序列:
n # 添加新分区
p # 主分区
3 # 分区号3
# 默认起始扇区
+4G # 4GB大小
t # 更改分区类型
3 # 分区号3
82 # Linux交换分区类型
w # 写入更改并退出
然后格式化并启用交换分区:
sudo mkswap /dev/sdb3
sudo swapon /dev/sdb3
3. 将分区转换为LVM #
sudo fdisk /dev/sdb
交互式命令序列:
t # 更改分区类型
1 # 分区号1
8e # Linux LVM类型
w # 写入更改并退出
4. 查看分区详细信息 #
sudo fdisk -l /dev/sdb
输出示例:
Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 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
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 41945087 41943040 20G 83 Linux
/dev/sdb2 41945088 167772159 125827072 60G 83 Linux
/dev/sdb3 167772160 176160767 8388608 4G 82 Linux swap
注意事项 #
-
数据丢失风险:修改分区表可能导致数据丢失。在使用
fdisk
之前,务必备份重要数据。 -
重启生效:某些分区表更改可能需要重启系统才能完全生效。
-
大磁盘限制:传统的MBR分区表最多支持2TB的磁盘大小和4个主分区。对于更大的磁盘或更多分区,应考虑使用GPT分区表和
gdisk
工具。 -
权限要求:修改分区表需要root权限。
-
活动分区:不能修改当前正在使用的分区。如果需要修改系统磁盘,考虑使用Live CD/USB启动。
与其他分区工具的比较 #
工具 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
fdisk | 简单、轻量、广泛可用 | 不支持GPT、有分区大小限制 | 小型磁盘、简单分区需求 |
gdisk | 支持GPT分区表、大磁盘 | 不如fdisk普遍 | 大于2TB的磁盘、需要超过4个主分区 |
parted | 支持多种分区表、可调整分区大小 | 命令较复杂 | 高级分区管理、在线调整分区大小 |
gparted | 图形界面、直观易用 | 需要图形环境 | 桌面系统、不熟悉命令行的用户 |
提示 #
- 使用
fdisk -l
快速查看系统中的所有磁盘和分区 - 在执行任何分区操作前,确保已备份重要数据
- 使用
q
命令可以安全退出而不保存任何更改 - 创建分区后,需要使用
mkfs
命令格式化分区才能使用 - 对于大于2TB的磁盘,应使用
gdisk
或parted
工具 - 在修改系统磁盘分区前,确保了解可能的风险和恢复方法
- 使用
lsblk
命令可以以树状结构显示所有块设备,便于理解磁盘和分区的关系