linux 下 fdisk 命令是经典的磁盘分区管理工具,主要用来对磁盘进行查看分区表、新建分区、删除分区、修改分区类型,默认适配 MBR 分区格式,最大支持单块磁盘 2TB 以内,超过 2TB 的大磁盘推荐使用 parted 操作 GPT 分区。之所以运维经常使用 linux 下 fdisk 命令,是因为新增硬盘之后,必须先分区、格式化、挂载,系统才能识别使用,fdisk 是系统原生自带,不需要额外安装,交互操作简单,是服务器新增磁盘最常用工具。执行 linux 下 fdisk 命令一般需要 root 权限,普通用户需要加 sudo,操作磁盘属于高危操作,一定要确认磁盘名称,比如 /dev/sdb,不要误操作系统盘 /dev/sda,一旦错误修改系统盘分区表,会造成系统无法启动。fdisk 是交互式命令,启动之后进入内部菜单,通过单字母指令完成操作,操作完成必须输入 w 写入分区表保存,如果输入 q 就是放弃修改退出,不会保存任何变更。
基础语法
fdisk 磁盘设备路径
示例 fdisk /dev/sdb
fdisk 内部交互指令对照表
| 内部指令 | 功能说明 |
|---|---|
| p | print,打印当前磁盘分区表,查看已有分区 |
| n | new,新建分区 |
| d | delete,删除指定分区 |
| t | change,修改分区类型 ID,比如 swap 分区 |
| l | list,列出所有分区类型代码 |
| w | write,写入分区表,保存所有修改 |
| q | quit,退出,不保存修改 |
| m | menu,调出帮助菜单 |
| v | 校验分区表 |
完整新建分区操作步骤
第一步 确认磁盘,执行 lsblk,识别新硬盘设备名,例如 /dev/sdb
第二步 启动 linux 下 fdisk 命令 fdisk /dev/sdb
第三步 输入 p,查看现有分区,确认磁盘是空盘或者确认分区情况
第四步 输入 n,选择分区类型,p 主分区,e 扩展分区
第五步 输入分区编号,选择起始扇区,一般直接回车使用默认值,再输入分区大小,比如 + 10G
第六步 如果需要设置 swap 分区,输入 t,选择分区号,代码输入 82
第七步 输入 w 写入分区表保存退出
第八步 执行 partprobe /dev/sdb,让内核刷新分区表识别新分区
第九步 后续执行 mkfs 格式化,mount 挂载分区
删除分区操作
第一步 fdisk /dev/sdb
第二步 p 查看分区,记录分区编号
第三步 d,选择分区号
第四步 w 保存写入,partprobe 刷新分区表
常用外部参数
-l 列出系统全部磁盘分区表,不需要进入交互界面
示例 fdisk -l
-s 输出磁盘大小,部分新版系统已经废弃
重要限制与注意事项
MBR 分区限制,主分区最多 4 个,如果需要更多分区,需要创建 1 个扩展分区,在扩展分区里面划分逻辑分区
单盘上限 2TB,超过 2TB,MBR 无法识别全部容量,必须改用 parted 创建 GPT 分区
正在挂载使用的分区,不建议直接修改分区表,优先 umount 卸载
swap 独立分区使用 linux 下 fdisk 命令创建之后,还需要 mkswap 格式化,swapon 启用
如果分区表修改出错,还没有执行 w 保存,直接 q 退出,所有改动不会生效
综合来说,linux 下 fdisk 命令是 MBR 磁盘分区必备工具,核心交互指令 p n d t w q,新建分区之后一定要 w 保存,再 partprobe 刷新,牢记 2TB 上限,大磁盘不要强行使用 fdisk。
【常见问题】
问题 1 linux 下 fdisk 命令为什么不能识别大于 2T 磁盘
回答 1 linux 下 fdisk 命令原生只支持 MBR 分区格式,MBR 本身存在寻址限制,最大只能识别 2TB 容量,linux 下 fdisk 命令处理超过 2T 磁盘的时候,需要改用 parted 创建 GPT 分区。
问题 2 linux 下 fdisk 命令输入 w 和 q 区别是什么
回答 1 linux 下 fdisk 命令里面 w 是写入保存分区表,所有新建删除修改会生效,q 是退出并且放弃修改,linux 下 fdisk 命令如果误操作,还没有按 w 就可以直接 q 退出撤销改动。
问题 3 linux 下 fdisk 命令新建分区之后为什么 lsblk 看不到新分区
回答 1 linux 下 fdisk 命令执行 w 保存之后,内核有时候不会自动刷新分区表,linux 下 fdisk 命令操作完成需要执行 partprobe 刷新,之后 lsblk 才能识别新建分区。
问题 4 linux 下 fdisk 命令最多可以创建几个主分区
回答 4 linux 下 fdisk 命令 MBR 格式最多支持 4 个主分区,如果需要更多分区,linux 下 fdisk 命令需要创建扩展分区,再在扩展分区内划分逻辑分区。
【免责申明】
本文 linux 下 fdisk 命令的用法详解仅用于合法授权运维学习,磁盘分区属于高危操作,操作前确认磁盘设备,备份重要数据,禁止误操作系统盘,因错误使用 linux 下 fdisk 命令造成分区损坏数据丢失,相关责任由使用者自行承担。


