在 mdadm RAID 1 上更新 grub

在 mdadm RAID 1 上更新 grub

简短的背景故事:我以前从未使用过 mdadm,负责维护一台基于 mdadm 的软件 RAID 1 的 ubuntu 16.04 服务器。最近我更新了 grub,系统提示我选择将 grub 安装在哪些磁盘上。
我选择将其安装在 /dev/sda 和 /dev/sdb 上,因为我读到过这对于 mdadm 来说无关紧要,最好在两个磁盘上都安装 GRUB。

目前我正在尝试更新 Linux 映像,但是在安装后脚本中出现以下错误:

grub-probe: error: disk `mduuid/[uuid here]' not found.

此消息出现后,安装失败。

这是安装后脚本的完整输出:

Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-72-generic /boot/vmlinuz-4.4.0-72-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-72-generic /boot/vmlinuz-4.4.0-72-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-72-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-72-generic /boot/vmlinuz-4.4.0-72-generic
Generating grub configuration file ...
grub-probe: error: disk `mduuid/[uuid here]' not found.
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.4.0-72-generic.postinst line 1052.

我不知道如何修复这个问题,在谷歌搜索了几个小时后似乎找不到任何东西。还请注意,在本文第一段中提到的第一次 grub 更新之后,我从未重新启动过服务器。

答案1

这是因为 Linux 不再识别 /dev/sdb。重启后它又可以正常工作了,但我不确定是什么原因造成的。

但是,由于之前 grub 没有正确安装,所以我必须从救援模式启动服务器。

这些是我在 grub 救援模式下用于启动服务器的命令:

set root=(md/1)
set prefix=(md/2)/usr/lib/grub
insmod normal
normal
linux /vmlinuz-<kernel-version>-generic root=/dev/md2
initrd /initrd.img-<kernel-version>-generic
boot

相关内容