Linux怎么强制格式化磁盘

秋婷大大_2674

秋婷大大_2674

2026-07-29

583人浏览

原创

mkfs命令本身不提供“强制”语义,所谓“强制格式化”实为绕过已有文件系统检测、直接覆写元数据的操作;关键在于参数是否被对应后端工具识别——mkfs.ext4用-f而非-f,mkfs.xfs用-f而非-f,混用将报错或静默忽略;未卸载设备会导致ebusy错误,需用findmnt或lsof确认真实挂载状态;格式化成功不等于可用,须用dumpe2fs/xfs_info验证元数据,并检查内核模块是否加载。

linux怎么强制格式化磁盘

mkfs 命令本身不提供“强制”语义,所谓“强制格式化”其实是绕过已有文件系统检测、直接覆写元数据的操作——它不是加个 flag 就万事大吉,而是取决于你用的命令和参数是否真能跳过校验。

误以为加 -f 或 -F 就安全,结果在 /dev/sda1 上跑了一次 mkfs.xfs -f,发现系统起不来——这种事真发生过。关键不在“怎么加参数”,而在“加给谁、为什么加、加了之后还缺什么”。

mkfs.ext4 -f 和 mkfs.ext4 -F 的区别必须分清

这两个参数作用完全不同,混用会失败或静默忽略:

  • mkfs.ext4 -f:无效参数,ext4 的 mkfs.ext4 不认 -f,会报错 invalid option -- 'f'
  • mkfs.ext4 -F:这才是 ext4 的强制覆写开关,跳过“设备已有文件系统”的检查,直接重写 superblock 和 group descriptors
  • 而 mkfs.xfs -f 才是 xfs 的强制开关;mkfs.xfs -F 反而不存在
  • 如果你用的是 mkfs -t ext4,它底层调用 mkfs.ext4,但部分旧发行版(如 CentOS 7)不透传 -F,建议直接用 mkfs.ext4 -F

没卸载就跑 mkfs,99% 失败或内核 panic

Linux 内核会阻止对已挂载设备的格式化操作,不是命令拒绝执行,而是 mkfs 在 open() 阶段就会收到 EBUSY 错误。常见现象:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 输出 /dev/sdb1 is apparently in use by the system(即使 lsblk 显示 MOUNTPOINT 为空)
  • 某些桌面环境自动挂载了 LVM 或 udisks2 管理的设备,umount /dev/sdb1 不生效,得查 findmnt /dev/sdb1 或 lsof +D /run/media/xxx
  • 虚拟机里有时需额外运行 partprobe /dev/sdb 让内核重新读取分区表,否则 mkfs 找不到 /dev/sdb1
  • 真正保险的做法:sudo blockdev --flushbufs /dev/sdb1 && sudo umount /dev/sdb1

格式化完 mount 失败?多半是模块没加载或 UUID 没刷出来

成功打印 done 不代表文件系统可用。尤其 xfs 在某些内核(如部分云厂商定制版)默认不编译进内核,只作为模块存在:

  • 挂载时报 wrong fs type, bad option, bad superblock,先试 sudo modprobe xfs(ext4 同理试 ext4)
  • sudo blkid /dev/sdb1 输出为空?说明格式化没写入成功,可能设备被占用、路径写错(比如写了 /dev/sdb 而不是 /dev/sdb1),或磁盘有硬件坏道
  • sudo dumpe2fs -h /dev/sdb1 | head(ext4)或 sudo xfs_info /dev/sdb1(xfs)能验证元数据结构是否完整,比单纯看 blkid 更准
  • 别依赖设备名挂载——/dev/sdb1 下次重启可能变 /dev/sdc1,blkid 输出的 UUID 才是唯一标识

dd 清零 ≠ 格式化,但有时真得先 dd

当 mkfs 报 Device or resource busy 且确认已卸载,或者格式化后 mount 总提示 “can't read superblock”,大概率是旧文件系统残留元数据污染了关键扇区。这时需要底层清理:

  • sudo dd if=/dev/zero of=/dev/sdb1 bs=1M count=100:清空前 100MB,覆盖 superblock、inode table、journal 等区域(适用于 ext4/xfs)
  • U 盘或 SSD 上慎用全盘 dd if=/dev/zero——可能触发磨损均衡异常,甚至让控制器锁死
  • dd 后必须重新分区(如果清的是整盘 /dev/sdb)或至少运行 partprobe,否则 /dev/sdb1 节点不重建
  • 清完再跑 mkfs.ext4 -F,成功率显著提升;但注意:这步不可逆,且比单纯 mkfs 耗时得多

最易被忽略的一点:格式化命令执行中 Ctrl+C 并不会中止写入,它只是退出进程,底层 I/O 可能仍在刷盘。等几秒再查 blkid,否则容易误判失败。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux linux磁盘管理

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4070

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3473

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2673

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6490

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6142

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3573

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3065

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3299

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习