改/etc/fstab第六列pass为0最可靠,因systemd和传统init均依赖该字段决定启动时是否调用fsck,它不关闭检查而是排除分区于检查队列,兼容ext2/3/4、XFS、Btrfs等所有主流文件系统,且不依赖内核版本或工具链。

直接改 /etc/fstab 第六列 pass 值为 0,是最稳妥、通用且永久生效的办法;其他方式要么只管一次启动,要么只对 ext 系统有效,还可能掩盖真实问题。
为什么改 /etc/fstab 的 pass 字段最可靠
systemd 和传统 init 都依赖这一字段决定是否在启动时调用 fsck。它不是“关掉 fsck”,而是告诉系统:“这个分区不参与启动检查队列”。
该做法适用于 ext2/3/4、XFS、Btrfs 等所有主流文件系统,不挑内核版本,也不依赖特定工具链。
常见错误是把根分区的 pass 改成 0 —— 根分区必须保留为 1(否则 systemd 可能跳过关键校验),非根分区如 /home、/data 才适合设为 0。
- 编辑前先备份:
sudo cp /etc/fstab /etc/fstab.bak - 用
sudo nano /etc/fstab打开,找到类似这行:UUID=80c83157- /home ext4 defaults 0 2 - 把末尾的
2改成0(注意:是第六个字段,空格分隔) - 改完务必运行
sudo mount -a验证语法,避免重启后无法挂载
fsck.mode=skip 参数只适合临时验证或 UOS 等 systemd 发行版
这个内核参数由 systemd 解析,对 SysVinit 或老内核无效。它跳过的是 systemd-fsck@.service 的自动调用,但不处理 ext4 脏位标记本身——如果分区已被内核标记为 not clean,加了参数照样卡住。
- 临时生效:GRUB 启动菜单按
e,在linux行末加fsck.mode=skip,再按Ctrl+X - 永久写入:修改
/etc/default/grub中的GRUB_CMDLINE_LINUX_DEFAULT,追加该参数,然后运行sudo grub-mkconfig -o /boot/grub/grub.cfg - 注意:UOS/V20/V23 必须用
grub-mkconfig,update-grub在某些版本里只是软链接或不存在
别乱用 tune2fs -c 0,它不等于“禁用检查”
这个命令只影响 ext 系列的“挂载次数阈值”,对 XFS/Btrfs 完全无效;而且 -c 0 并非永不检查——只要文件系统被标记为 dirty(比如断电未正常卸载),下次启动仍会触发 e2fsck。
- 查看当前设置:
sudo dumpe2fs -h /dev/sda1 | grep -i "check" - 更安全的做法是设为大数值,例如:
sudo tune2fs -c 6000 /dev/sda1 - 若已出现
not clean状态,仅调阈值没用,必须用e2fsck -f -y清除脏位
真正容易被忽略的点:pass=0 后你得自己担责
自动检查关掉,不代表风险消失。异常断电、强制关机、I/O 错误仍会让元数据损坏悄悄积累。系统不会提醒你,也不会主动修复。
- 建议每季度手动跑一次:
sudo e2fsck -f -n /dev/sda1(-n只检查不修复,安全预览) - 若发现错误,再补上
-y修复:sudo e2fsck -f -y /dev/sda1 - 对 XFS 分区,对应命令是
xfs_repair -n和xfs_repair,不能用fsck











