我已经运行 Lubuntu 14.04 LTS 一年多了,没有出现过(重大)问题。最近更新了几次后,我推迟了重启(大概 2-3 周),当我终于有时间重启时,我看到了一个 busybox ash 提示符,其中显示一条消息,表明它曾尝试挂载/root
无法挂载的 RAID 分区(/dev/md127
我的根分区是否通过 mdadm 管理)。该消息类似于Could not find init at /sbin/init
。这是在尝试启动内核 3.13.0-88 时发生的
幸运的是,我有一个有效的 RAID 配置,保存为“自定义” GRUB 条目(内核版本为 3.13.0-57),我可以启动它,并设法更改该条目的 grub.cfg 定义,使我进入内核 3.13.0-88。至少这让我回到了我的系统,但只要update-grub
运行命令,配置就会被覆盖。
我该如何修复我的 Grub2 设置,使其能够识别我的 RAID 阵列,并且即使update-grub
运行时该设置也能永久生效?作为参考,以下是失败启动的 grub.cfg 条目:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ac8ee99a-72a5-4ab9-8059-bb4841d3a1fd' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod part_msdos
insmod diskfilter
insmod mdraid1x
insmod ext2
set root='mduuid/dfe0e47f47757b9c579476231666f004'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='mduuid/dfe0e47f47757b9c579476231666f004' ac8ee99a-72a5-4ab9-8059-bb4841d3a1fd
else
search --no-floppy --fs-uuid --set=root ac8ee99a-72a5-4ab9-8059-bb4841d3a1fd
fi
linux /boot/vmlinuz-3.13.0-88-generic root=UUID=ac8ee99a-72a5-4ab9-8059-bb4841d3a1fd ro quiet splash nomdmonddf nomdmonisw bootdegraded=true $vt_handoff
initrd /boot/initrd.img-3.13.0-88-generic
以下是有效 RAID 自定义条目的 grub.cfg 条目:
menuentry 'Ubuntu (RAID)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ac8ee99a-72a5-4ab9-8059-bb4841d3a1fd' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
insmod mdraid1x
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 ac8ee99a-72a5-4ab9-8059-bb4841d3a1fd
else
search --no-floppy --fs-uuid --set=root ac8ee99a-72a5-4ab9-8059-bb4841d3a1fd
fi
linux /boot/vmlinuz-3.13.0-57-generic root=UUID=ac8ee99a-72a5-4ab9-8059-bb4841d3a1fd ro quiet splash nomdmonddf nomdmonisw nomdmonddf nomdmonisw bootdegraded=true $vt_handoff
initrd /boot/initrd.img-3.13.0-57-generic
如有任何建议,我们将不胜感激。
答案1
好吧 - 看来我需要做的就是重新运行update-grub
。我在问题中发布的 grub.cfg 条目已被 grub2 本身修复 - 一定是在某个更新过程中出了问题。最初,显示的是损坏的 grub.cfg 条目,root=/dev/md127
而不是该行root=UUID=...
。上面的 grub.cfg 可以正常启动。问题解决了。