如何配置Ubuntu自动处理"RUN fsck MANUALLY"启动错误并自动执行修复
如何配置Ubuntu自动处理"RUN fsck MANUALLY"启动错误并自动执行修复
完全懂你这种崩溃的感觉——几十台遍布全国的无头摄像头服务器,就因为断电后文件系统出点小问题,就得派人跑现场敲30秒命令,还导致几天的录像空白,太不划算!既然你已经明确接受少量文件损坏的代价,只求系统能自动恢复启动,那咱们直接上配置步骤:
1. 开启自动修复开关(适用于多数Ubuntu版本)
编辑/etc/default/rcS文件:
sudo nano /etc/default/rcS
找到FSCKFIX=no这一行,改成:
FSCKFIX=yes
这个参数的作用是,当系统检测到文件系统需要修复时,自动执行fsck -y(自动确认所有修复操作),完全跳过手动干预的界面。
2. 确保FSTAB里的分区检查顺序正确
打开/etc/fstab文件:
sudo nano /etc/fstab
检查每个存储分区的第6个字段(pass字段):
- 根分区(
/)的pass值设为1(优先检查) - 摄像头存储的其他数据分区,
pass值设为2(根分区检查完成后再依次检查)
如果这个字段是0,系统启动时不会自动检查该分区,那就达不到自动修复的目的了。
3. Systemd环境下的额外加固(针对Ubuntu 16.04及以后版本)
如果你的服务器用的是systemd(现在大部分Ubuntu默认都是),可以补充配置systemd-fsck的行为,确保它强制自动修复:
创建systemd服务的覆盖配置目录和文件:
sudo mkdir -p /etc/systemd/system/systemd-fsck-root.service.d sudo nano /etc/systemd/system/systemd-fsck-root.service.d/override.conf
写入以下内容:
[Service] ExecStart= ExecStart=/usr/lib/systemd/systemd-fsck --force --repair=yes /
对其他数据分区,同理创建对应的配置文件(比如systemd-fsck@dev-sdb1.service.d/override.conf),把最后面的/换成对应分区的挂载点或设备路径,参数同样用--force --repair=yes。
配置完成后重载systemd使设置生效:
sudo systemctl daemon-reload
最后再啰嗦两句
正如你权衡的那样,自动修复确实可能导致少量录像文件损坏,但这和几天的存储空白比起来,显然是更能接受的代价。建议你先在一台测试服务器上模拟断电场景验证配置效果,没问题后再批量部署到所有设备上。
备注:内容来源于stack exchange,提问作者JL Griffin
相关产品推荐
相关产品推荐

