linux开机自动检测并修复硬盘

以下内容仅限于以systemd为服务管理程序的系统,其它系统未做实验

主要涉及到以systemd-fsck开头的几个服务,它们会在开机时运行,但是,需要在 /etc/fstab文件中将需要检测的分区的最后一个字段配成 1或者2 (根分区配成1,其它分区配成2)。
然后重要的就是添加两个内核参数:fsck.mode=force fsck.repair=yes
添加完以后,重启,就会发现系统启动时的打印中包含了检查以及修复过程。

注意:
使用dd命令模拟硬盘损坏的方法,一般会破坏掉硬盘的超级块,这时候采用 sudo blkid命令就看不到被破坏的分区的UUID,此时开机是修复不了的。这种情况下,可以将 /etc/fstab文件中对应的分区的第一项不要使用UUID=的格式,而改成/dev/sdaX这种设备名的格式,这样开机也是能修复的。

还可以尝试另外一种方法,修改initrd的方式(修改方法参考我的另一篇博客https://blog.csdn.net/Wileste/article/details/112908059),修改内容如下:
解包以后,找到 script/functions文件,里面有个函数叫 _checkfs_once,按需求修改即可。修改完成以后,重新生成initrd,将替换掉原来的(注意将原来的initrd备份好,这样即使修改的initrd起不来,也可以通过grub命令手动引导系统)。这种方法目前来看只能修复启动硬盘上的分区的错误,而且该错误还不能影响根分区的挂载。如果修复其他分区的错误,会提示没有设备(暂时不清楚原因,还需要看脚本整个流程了解为什么)。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值