Kissingwolf's Blog

RHEL/CentOS 7 由于数据磁盘故障挂接失败导致系统重启进入Rescue模式解决方案

如果一个存储设备配置在/etc/fstab文件中配置为启动时挂载,而启动时却无法找到此设备,会导致RHEL/CentOS 7 不能正常启动,系统将进入Rescue模式,需要人工修改/etc/fstab文件剔除故障挂接点。这是一个RedHat故意改变的行为,其目的是防止系统启动不重要的存储设备。早期的RHEL/CentOS版本则没有这个问题。

对于我厂大量的ES、Ceph和Hadoop的机器,使用12块磁盘以直连方式挂接,就会由于单个数据磁盘更替导致系统重启失败。

为解决这个问题,查询RedHat文档,找到了解决方案。https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/migration_planning_guide/sect-red_hat_enterprise_linux-migration_planning_guide-physical_storage

如果磁盘设备并不是显得十分重要,启动的时候如果发现其故障,可以通过在/etc/fstab文件中添加nofail操作参数忽略对其的挂接。

1
2
3
4
/dev/mapper/centos-root / xfs defaults 0 0
UUID=21cee289-8804-4914-8a5a-de2d6033a5e7 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 /opt ext4 defaults,nofail 0 0

例如上面的测试机,/dev/sdb1为非关键磁盘设备,在defaults后加上nofail,就可以解决在/dev/sdb1/dev/sdb设备故障或文件系统故障时重启导致的无法正常启动问题。