案例如下:
我有两个磁盘设置为 RAID 1,如下所示:
/dev/md0
(/dev/sda1
+/dev/sdb1
) →/boot
/dev/md1
(/dev/sda2
+/dev/sdb2
) →/
我的场景:
- 启动具有 RAID 1 和阵列完全同步的服务器
- 正常关闭我的服务器
- 取出其中一张磁盘 (
/dev/sdb
) - 尝试仅使用一张磁盘再次启动
我的场景在 openSuse 11.3 → 42.1 上运行良好
在 openSuse 42.2 上,当我尝试仅使用一张磁盘启动时,GRUB 加载正常(同时也位于阵列上),但随后它会永远等待根 ( /dev/md1
) 设备。我希望它能打破数组并继续。
我使用 DVD 上新安装的 42.2(带或不带 zypper 更新)以及从 42.1 进行的在线发行版升级对其进行了测试。所有场景中都有同样的问题。
如果阵列在关机前已损坏,则它确实可以正常启动(阵列已损坏)。
我还测试了在命令行上指定 RAID 设备:(linux .... root=/dev/md1 md=1 /dev/sda2,/dev/sdb2
见图),但没有帮助。
屏幕截图可以在我在 openSuse Bugzilla 上打开的票证中找到:https://bugzilla.opensuse.org/show_bug.cgi?id=1017695
解决这个问题对我来说至关重要,因为我已经在客户站点遇到了几个问题,其中“硬关闭”(电气(电池)电源故障,在中美洲常见)损坏磁盘,导致与上述情况类似的情况。如果我不能以某种方式解决这个问题,我就无法升级到 openSuse 42.2。
请注意,引导加载程序 (GRUB2) 似乎不是问题,因为我可以在任何磁盘上引导,并且 GRUB 始终正确加载(尽管/boot
也在 RAID 1 分区上)。问题是稍后挂载根文件系统时出现的。可能是脚本问题dracut-pre-mount
?
欢迎所有想法...
答案1
实际上被确认为openSuse的bug。 dracut 配置文件丢失...
解决方法描述如下:https://bugzilla.opensuse.org/show_bug.cgi?id=1017695