我有两个 RAID1 驱动器,用作我的工作站上的根分区。有时(十分之一)未检测到其中一个驱动器,因此未包含在 raid 中。由于驱动器是根本没有检测到那时我无法重新连接它(我什至可能没有注意到它,至少不会立即注意到)。
一旦过了这样的时间,我重新启动并且内核使用了以前未被发现md0 的驱动器。之后我运行mdadm --add
它只是重新添加了数组的另一半,而不是重建的它,因此我有一个不一致的数组(我运行了检查,mismatch_cnt 得出了超过 300k 块!)。最后,我使其中一个驱动器出现故障,然后重新连接它,从而完成了应该首先完成的重建。
为了避免将来出现这种情况,我希望尽早检测到此类错误:在 GRUB 中或在引导期间,在挂载根文件系统之前。这是台式机,因此在这种情况下关闭并再次打开并不是什么大问题。另外,如果磁盘确实出现故障,我愿意采取手动措施(即从 Live CD 启动以删除启动块)。
是否有一个 grub/kernel 参数可以在没有 raid 磁盘的情况下阻止启动?或者唯一的方法是修改 initramfs 上的 init 脚本?
答案1
我设法解决了一半问题的原因:我只是从通常不会被检测到的驱动器的 MBR 中删除了 GRUB。现在,如果该驱动器在启动时出现临时错误,我仍然会得到一个不同步的系统,但是(至少现在),这种情况似乎并不经常发生。