fdisk命令使用

fdisk 是Linux系统中最常用、经典的交互式磁盘分区管理工具,支持磁盘分区查看、新建、删除等操作

基础命令

1
2
3
4
5
6
7
8
9
# 查看系统所有磁盘(必用)
sudo fdisk -l

# 只查看指定磁盘(如 NVMe 硬盘)
sudo fdisk -l /dev/nvme0n1

# 只查看 SATA 硬盘
sudo fdisk -l /dev/sda

/dev/nvme0n1:NVMe 固态硬盘(常见)
/dev/sda:SATA硬盘/U盘

交互操作

  • 进入指定磁盘的分区编辑界面
1
sudo fdisk /dev/nvme0n1

如下显示:

输入m 可以查看所有帮助命令。

命令 功能说明
m 查看帮助菜单(最常用)
p 打印当前分区表(查看所有分区,必用)
n 新建分区(primary 主分区 /extended 扩展分区)
d 删除分区
t 修改分区类型(swap/ext4/LVM 等)
w 保存分区表并退出
q 不保存退出
l 列出所有分区类型代码(如 83=Linux, 82=swap)
g 创建 GPT 分区表(新硬盘常用)
o 创建 MBR 分区表(老硬盘)

修改分区大小

以下以SWAP分区示例

1、关闭当前 SWAP 分区

1
2
3
4
5
# 关闭所有swap
sudo swapoff -a

# 验证swap已关闭(无输出代表成功)
swapon --show

2、进入 fdisk 编辑分区

1
2
# 替换成你的磁盘名(sda/nvme0n1)
sudo fdisk /dev/nvme0n1

3、查看
输入p,打印当前所有的信息,例如Type 为“Linux swap”

1
2
3
Device          Start        End   Sectors  Size Type
/dev/nvme0n1p6 1236992 xxxxxxx xxxxxxx 16G Linux swap

4、删除旧分区

1
2
3
Command (m for help): d
Partition number (1-6): 6 # 选 6

5、立即新建小分区

1
2
3
4
5
6
Command (m for help): n
Partition type: p (primary)
Partition number: 6 # 必须跟原来一样
First sector: 1236992 # **必须跟刚才记录的一致**
Last sector: +18G # 直接给大小,fdisk 自动算结束扇区

6、改回 swap 类型

1
2
3
4
Command (m for help): t
Partition number: 6
Hex code: 82 # 82 是 Linux swap 的代号

7、写盘退出

1
2
Command (m for help): w

8、启用分区

1
2
3
4
5
6
# 启用swap
sudo swapon /dev/nvme0n1p6

# 验证swap大小是否修改成功
swapon --show
free -h

修改其它分区按类似的方法。

SWAP也可以是文件,通过自己创建,灵活分配大小。下面是方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 关闭 swap 文件
sudo swapoff /swapfile

# 删除旧 swap 文件
sudo rm /swapfile

# 创建 20G 的swap文件(bs=1G 代表每次写1G,count=20 写20次)
sudo dd if=/dev/zero of=/swapfile bs=1G count=20

# 设置权限并格式化
sudo chmod 600 /swapfile
sudo mkswap /swapfile

# 启用新 swap
sudo swapon /swapfile