首页/系统/Linux 运维命令速查/mkfs 格式化文件系统
磁盘与文件系统51 条

mkfs 格式化文件系统

mkfs 是「创建文件系统」的统一入口,实际按 -t 调用 mke2fs/xfs/btrfs 等;格式化会覆盖超级块与元数据,操作前必须二次确认盘符。

Linux 运维命令速查系统更新于 2026-10-13

mkfs 是什么

mkfs 是「创建文件系统」的统一入口,本体只是个前端:按 -t 指定的类型去调用 mkfs.ext4、mkfs.xfs、mkfs.btrfs 等真正干活的程序。它按目标格式写入超级块与元数据,效果等于把这块设备格成空盘,原有数据不再可读。所以操作对象必须是「确认过的新分区或新卷」,而不是随手抄来的 /dev/sdX。

基本信息

适用平台Linux(e2fsprogs、xfsprogs、btrfs-progs 分别提供对应后端)
命令语法mkfs[.类型] [选项] 设备 ;mkfs -t 类型 [选项] 设备
常用选项-t 类型(ext4/xfs/btrfs/vfat)/ -L 卷标 / -m 保留块百分比(ext 系)/ -f 强制覆盖(xfs 必需)/ -n 干跑不写入(ext 系)
危险等级高:格式化覆盖超级块与元数据,不可逆

常见类型对比

类型特点常见用途
ext4成熟稳定,支持在线扩容与离线缩小通用首选,根分区常用
xfs擅长海量小文件与大文件,只能扩大不能缩小数据盘、数据库存储
btrfs支持快照、数据校验、多设备需要快照或校验的场景
vfat无权限位与日志,兼容性最好U 盘、EFI 分区

典型使用场景

  • 新盘投入使用:分区完成后建 ext4 或 xfs 文件系统
  • 更换文件系统类型:确认已备份后重新格式化并迁移数据
  • 卷标管理:-L 打卷标,方便用 LABEL= 挂载或在 lsblk 中辨识
  • 调整 ext 保留块:mkfs.ext4 -m 1 把 root 保留空间从 5% 降到 1%,给纯数据盘省容量
  • 重建测试盘:确认无数据后重新格式化,恢复干净的测试环境

常用示例

常用示例
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT   # 先确认目标盘与容量
mkfs.ext4 -L data /dev/sdb1                 # 建 ext4 并打卷标
mkfs.xfs -f -L data /dev/sdb1               # xfs 覆盖已有文件系统需 -f
mkfs -t ext4 -m 1 /dev/sdb1                 # 保留块降到 1%(纯数据盘)
mkfs.ext4 -n /dev/sdb1                      # 干跑:只显示将要做什么,不写入
mkfs.vfat -F 32 /dev/sdb1                   # 建 FAT32(U 盘或 EFI)

格式化后立即校验

格式化后立即校验
blkid /dev/sdb1                             # 确认类型与 UUID
udevadm settle                              # 等内核处理完设备事件
mount /dev/sdb1 /mnt && df -hT /mnt         # 挂载验证容量与类型
umount /mnt
格式化是破坏性操作,写错设备名等于瞬间清空一块盘。执行前用 lsblk -f 与 lsblk -o NAME,SIZE 双确认设备与容量,再用 mount | grep 设备名 看它有没有正被挂载。
更细的参数(inode 大小、条带对齐、日志大小)交给各后端工具自己的选项:ext 系看 mke2fs,xfs 看 mkfs.xfs,不要硬记一套参数往所有文件系统上套。

ext4 常用参数

参数含义
-m 百分比root 保留块比例,默认 5%
-L 卷标设置文件系统卷标,便于按 LABEL 挂载
-N 数量手工指定 inode 总数,小文件极多时有用
-O 特性启用或关闭文件系统特性,如去掉日志
-b 大小块大小,默认 4096 字节

操作前的确认清单

  • lsblk 看清容量与型号,和采购单或云控制台对得上再往下走
  • blkid 确认目标设备上有没有重要的文件系统与卷标
  • mount 与 findmnt 确认这块设备没被挂载,也没有服务正在使用
  • df -h 对一遍,避免把系统盘当成新加的数据盘
  • 有条件时先在虚拟机或测试盘上把同样的命令走一遍
云盘上常带有 BIOS boot 或 EFI 系统分区标记,别对整盘直接 mkfs。先用 parted print 看分区表的类型,确认哪些分区能格、哪些必须保留。
把 mkfs 与 mount 串进同一个初始化脚本很方便,但一定要在格式化之前插入一次人工确认或环境变量开关,避免脚本被误触发时空格掉一块盘。
mkfs 只负责创建文件系统,不写 /etc/fstab。要让挂载在重启后仍然存在,还得补一条 fstab 记录并用 mount -a 验证一次。
格式化完顺手核对几个指标:blkid 看类型与 UUID,ext 系用 tune2fs -l、xfs 用 xfs_info 看块大小与 inode 数量是否合理,早发现问题比上线后再迁移便宜得多。

易错点

  • 对整盘(/dev/sdb)而不是分区(/dev/sdb1)执行 mkfs,会把分区表一并覆盖,整盘结构作废
  • 磁盘正被挂载使用时长 mkfs 有数据损坏风险,先 umount 再操作
  • XFS 不支持缩小,容量规划只能向上走;ext4 缩容也必须离线且先做 e2fsck
  • 覆盖已有 XFS 必须显式加 -f,盲目加 -f 又可能格掉本该保留的盘,操作前用 blkid 确认
  • ext4 默认 5% 保留块在大盘上很可观(1TB 约 50GB),数据盘可按需用 -m 1 或后续 tune2fs -m 调整

数据来源与参考

  • man 8 mkfs
  • man 8 mke2fs(e2fsprogs)
  • man 8 mkfs.xfs(xfsprogs)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌