单用户模式修复根分区文件系统的核心前提是根分区必须未挂载或只读,直接对已挂载的/运行fsck极大概率导致二次损坏;需先remount为rw以编辑配置,再通过lsblk确认设备名,Ext4用e2fsck -f -y /dev/xxx,XFS用xfs_repair /dev/xxx,修复后规范重启。

在单用户模式下修复根分区文件系统,核心前提是:根分区必须处于未挂载或只读状态,且不能被任何进程占用。直接对已挂载的 / 执行 fsck 极大概率导致二次损坏——这是最常踩的坑。
确认当前状态并重新挂载为可写
进入单用户模式后,根分区默认是只读的。虽然你要修复它,但先得能修改系统、运行命令、保存日志等:
- 执行
mount -o remount,rw /,让根分区可读写 - 用
mount | grep " / "确认输出中含rw(不是ro) - 这步不是为了后续
fsck,而是为编辑配置、备份、查看日志做准备
卸载根分区(关键一步)
fsck 无法在已挂载的根分区上安全运行。你看到的“正在检查 /”往往是假象——系统会跳过关键检测,或报 device is busy。正确做法是让它真正脱离挂载态:
- 单用户模式本身已停止大多数服务,但仍有 init 进程和 shell 占用根目录
- 因此必须使用强制卸载前的准备:先确保无活跃进程访问根文件系统
- 运行
lsof +D /或fuser -v /查看哪些进程还在用根目录(通常只有 bash、systemd 等) - 若无法彻底卸载(常见于 systemd 系统),则改用
e2fsck -f /dev/sda1前加systemctl rescue或直接进rescue.target启动项(更稳妥)
识别根设备并执行修复
别凭感觉写 /dev/sda1,务必确认实际设备名:
- 用
lsblk或findmnt /查看根挂载点对应的源设备(如/dev/mapper/centos-root或/dev/nvme0n1p2) - Ext4 文件系统:用
e2fsck -f -y /dev/xxx(-f强制检查,-y自动确认修复) - XFS 文件系统:必须用
xfs_repair /dev/xxx(fsck.xfs是空链接,不执行实质检查) - 修复完成后,建议再运行
mount -a测试 fstab 是否正常,避免重启失败
修复后规范重启
别直接关机或断电,否则可能丢失修复日志甚至损坏元数据:
- 如果用
rw init=/bin/bash进入:执行exec /sbin/init或exec /lib/systemd/systemd继续启动流程 - 如果用
systemd.unit=rescue.target进入:输入exit或运行systemctl reboot - SELinux 启用时,修复后建议执行
touch /.autorelabel,防止重启卡在登录界面











