在linux装机和服务器运维过程中,fdisk作为历史悠久、轻量高效的命令行分区工具,专为mbr(master boot record)分区表设计,广泛应用于无图形界面的服务器、嵌入式系统及自动化部署场景。相较于gui工具,它资源占用低、依赖少、执行快,是linux系统管理员必须熟练掌握的基础技能之一。以下为全面、安全、实用的fdisk分区操作指南。

fdisk 分区前准备与关键注意事项
fdisk对磁盘分区表的修改需root权限:可通过 sudo su - 切换至超级用户,或在每条命令前显式添加 sudo。
⚠️ 最核心前提:务必提前完整备份目标磁盘上的全部关键数据。任何误操作(如选错设备、误删分区、错误写入)均可能导致数据永久丢失,且不可逆恢复。
完成备份后,运行:
sudo fdisk -l
列出系统中所有可识别的块设备及其分区布局。重点核对目标磁盘的设备名与物理容量:
- 传统SATA/SAS/USB硬盘通常为
/dev/sda、/dev/sdb; - NVMe固态硬盘统一采用
/dev/nvme0n1、/dev/nvme1n1等命名; - 务必通过容量(如
500GB、2TB)、型号或挂载状态交叉验证,严禁对正在使用的系统盘(如/dev/sda)直接操作,推荐在虚拟机或闲置硬盘上先行演练。
fdisk 交互式分区全流程详解
确认目标设备(例如 /dev/sdb)后,执行:
sudo fdisk /dev/sdb
进入交互模式,提示符为 Command (m for help):。常用指令如下:
| 命令 | 作用 | 说明 |
|---|---|---|
p |
打印当前分区表 | 查看已有分区结构、起止扇区、类型及大小,用于操作前确认与操作后校验 |
d |
删除指定分区 | 输入后按提示输入分区号(如 1),可多次执行删除多个分区 |
n |
新建分区 | 首先选择分区类型:p → 主分区(最多4个)e → 扩展分区(仅当主分区已达上限时创建)l → 逻辑分区(必须位于扩展分区内,编号从5起) |
t |
修改分区类型ID | 输入分区号后,键入对应十六进制代码(如 82 表示 Linux swap,ef00 表示 EFI System,83 表示 Linux filesystem);输入 L 可列出全部支持类型 |
w |
写入分区表并退出 | 真正生效的关键步骤,将所有变更持久化至磁盘 |
q |
不保存退出 | 放弃全部未提交操作,磁盘状态保持原样 |
新建分区实操示例(以创建EFI+SWAP+ROOT三区为例):
Command (m for help): n
Partition type: p
Partition number (1-4, default 1): 1
First sector (2048-..., default 2048): ↵
Last sector, +sectors or +size{K,M,G,T}: +512M # EFI分区
<p>Command (m for help): n<br>
Partition type: p<br>
Partition number (2-4, default 2): 2<br>
First sector: ↵<br>
Last sector: +4G # Swap分区 </p><p>Command (m for help): n<br>
Partition type: p<br>
Partition number (3-4, default 3): 3<br>
First sector: ↵<br>
Last sector: ↵ # 使用剩余全部空间(根分区) </p><p>Command (m for help): t<br>
Partition number (1-3, default 3): 1<br>
Hex code (type L to list all): ef00 # 设为EFI System </p><p>Command (m for help): t<br>
Partition number (1-3, default 3): 2<br>
Hex code: 82 # 设为Linux swap </p><p>Command (m for help): w # 保存并退出</p>
分区完成后的必要收尾配置
✅ 刷新内核分区信息(无需重启):
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
sudo partprobe /dev/sdb
确保系统立即识别新生成的 /dev/sdb1、/dev/sdb2、/dev/sdb3 等设备节点。
✅ 格式化各分区:
sudo mkfs.fat -F32 /dev/sdb1 # EFI分区(FAT32)<br> sudo mkswap /dev/sdb2 # Swap分区初始化<br> sudo mkfs.ext4 /dev/sdb3 # 根/数据分区(ext4)
✅ 启用Swap并挂载文件系统:
sudo swapon /dev/sdb2<br> sudo mkdir -p /mnt/newroot<br> sudo mount /dev/sdb3 /mnt/newroot
✅ 配置开机自动挂载(推荐UUID方式):
先获取分区UUID:
sudo blkid /dev/sdb1 /dev/sdb3
再编辑 /etc/fstab,追加(示例):
UUID=xxxx-xxxx /boot/efi vfat umask=0077 0 1<br> UUID=yyyy-yyyy /mnt/newroot ext4 defaults 0 2
避免因设备名变动(如sdb变sdc)导致启动失败。
? 重要提醒:
-
fdisk原生仅支持MBR格式,不适用于大于2TB的磁盘或UEFI+GPT引导环境;此类场景请改用gdisk或parted; - 初学者务必在虚拟机中反复练习完整流程(分区→格式化→挂载→fstab),形成肌肉记忆后再操作生产磁盘;
- 所有操作应严格遵循“备份→确认→执行→验证”闭环,杜绝凭记忆盲操作。










