Linux fdisk 命令完全指南
- fdisk 是 Linux 系统中用于磁盘分区管理 的经典命令行工具,支持 MBR(Master Boot Record)分区表(不支持 GPT 分区表,GPT 需用
gdisk或parted),适用于磁盘分区创建、删除、查看、修改等操作。以下是结构化、可实践的详细用法: - 资料合集:
https://pan.quark.cn/s/6fe3007c3e95
一、核心功能与适用场景
| 功能 | 适用场景 |
|---|---|
| 查看磁盘分区信息 | 确认磁盘分区布局、类型、大小 |
| 创建/删除分区 | 新磁盘初始化、调整分区结构 |
| 修改分区类型 | 标记分区为 Linux、NTFS、FAT32 等 |
| 激活/取消激活分区 | 设置可引导分区(MBR 模式) |
| 保存/放弃分区修改 | 提交分区表变更或撤销操作 |
二、基本语法
bash
fdisk [选项] 设备文件
- 设备文件:磁盘设备(如
/dev/sda、/dev/vda),不可直接操作分区(如/dev/sda1) - 常用选项:
-l:列出所有磁盘及分区信息(最常用,无需权限)-u:以扇区(sector)为单位显示分区大小(默认以柱面 cylinder 显示)-s 分区:显示指定分区的大小(单位:块,1 块=1KB)
三、常用操作步骤(实战)
1. 查看磁盘分区信息(无权限,安全)
bash
# 查看所有磁盘及分区详细信息
fdisk -l
# 查看指定磁盘(如 /dev/sda)的分区信息
fdisk -l /dev/sda
# 以扇区为单位显示(更精确)
fdisk -lu /dev/sda
输出解读:
Disk /dev/sda: 500 GiB:磁盘总大小Device Boot Start End Sectors Size Id Type:分区列表Device:分区设备名(如/dev/sda1)Boot:是否为引导分区(*表示是)Start/End/Sectors:分区起始/结束扇区、总扇区数Size:分区大小Id/Type:分区类型 ID(如 83=Linux 分区,7=NTFS 分区)
2. 磁盘分区管理(需 root 权限,谨慎操作)
步骤 1:进入 fdisk 交互模式
bash
sudo fdisk /dev/sda # 操作 /dev/sda 磁盘,替换为实际磁盘设备
进入后提示 Command (m for help):,输入 m 可查看所有命令。
步骤 2:核心交互命令(常用)
| 命令 | 功能 | 操作示例 |
|---|---|---|
p |
查看当前磁盘分区表 | 输入 p 后回车,显示 /dev/sda 的分区信息 |
n |
创建新分区 | 见下文详细步骤 |
d |
删除分区 | 输入 d → 输入分区号(如 3)→ 确认删除 |
t |
修改分区类型 | 输入 t → 输入分区号 → 输入类型 ID(如 7=NTFS) |
a |
激活/取消引导分区 | 输入 a → 输入分区号 → 切换 Boot 标记 |
w |
保存修改并退出 | 所有操作完成后输入 w,分区表生效(关键!) |
q |
放弃修改并退出 | 未保存时输入 q,不影响原有分区 |
步骤 3:创建新分区(详细流程)
假设在 /dev/sda 上创建一个新的 Linux 分区(类型 83):
- 输入
n→ 选择分区类型(p主分区,e扩展分区,默认p) - 输入分区号(如 3,默认按顺序分配)
- 指定分区起始扇区(默认回车,使用空闲扇区起始位置)
- 指定分区大小:
- 直接输入大小(如
20G表示 20GB,500M表示 500MB) - 或输入结束扇区(如
+20G等价于起始扇区+20GB)
- 直接输入大小(如
- 输入
t→ 选择新创建的分区号 → 输入83(Linux 分区类型) - 输入
p验证分区是否创建成功 - 输入
w保存并退出,分区表生效
3. 关键注意事项
- 操作前备份数据:修改分区表可能导致数据丢失,务必提前备份
- 正确识别设备 :通过
fdisk -l确认目标磁盘(如/dev/sda),避免误操作系统磁盘 - 分区生效 :
- MBR 分区表:
w保存后立即生效(无需重启) - 新分区需格式化后才能使用(如
mkfs.ext4 /dev/sda3格式化为 ext4)
- MBR 分区表:
- GPT 分区不支持 :若磁盘是 GPT 分区表,需使用
gdisk(fdisk 升级版)或parted
四、常见问题与解决方案
1. 无法创建分区:提示"没有空闲扇区"
- 原因:磁盘已无未分配空间
- 解决:删除无用分区(
d命令)或缩小现有分区(需用resize2fs等工具)
2. 保存后分区未显示
-
原因:系统未重新读取分区表
-
解决:
bash# 重新读取分区表(无需重启) sudo partprobe /dev/sda # 或重启系统 sudo reboot
3. 误删除分区如何恢复
-
立即停止对磁盘的写入操作
-
使用工具如
testdisk恢复分区表:bashsudo apt install testdisk # Debian/Ubuntu sudo yum install testdisk # CentOS/RHEL sudo testdisk /dev/sda # 按提示操作恢复
五、常用组合命令(高效操作)
bash
# 快速查看磁盘分区大小(以 GB 为单位)
fdisk -l /dev/sda | grep "GiB"
# 查看所有 Linux 类型分区(ID=83)
fdisk -l /dev/sda | grep "83 Linux"
# 显示分区 /dev/sda1 的大小(单位:KB)
fdisk -s /dev/sda1
# 格式化新创建的分区为 ext4
sudo mkfs.ext4 /dev/sda3
# 挂载分区到 /mnt/newdisk
sudo mkdir -p /mnt/newdisk
sudo mount /dev/sda3 /mnt/newdisk
总结
fdisk 是 Linux 磁盘分区管理的基础工具,核心优势是轻量、支持 MBR 分区表,适合快速查看分区信息或简单分区操作。需注意:
- 操作磁盘设备(如
/dev/sda)而非分区 - 必须 root 权限,修改前备份数据
- GPT 分区表建议使用
gdisk或parted - 新分区需格式化和挂载后才能使用