GRUB“核心映像中可能缺少某些模块”警告

pyt*_*mus 16 ubuntu kernel grub grub2

一个硬盘从我的 RAID 中崩溃,我添加了一个新硬盘。
现在我想将 GRUB 安装到新硬盘上:使用grub-install /dev/sdb. 我收到这些警告:

Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Installation finished. No error reported.
Run Code Online (Sandbox Code Playgroud)

update-grub2我得到:

Generating grub configuration file ...
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Found linux image: /boot/vmlinuz-3.13.0-30-generic
Found initrd image: /boot/initrd.img-3.13.0-30-generic
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done
Run Code Online (Sandbox Code Playgroud)

输出 cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md3 : active raid1 sdb4[3] sda4[2]
      1847608639 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdb2[3] sda2[2]
      524276 blocks super 1.2 [2/2] [UU]

md2 : active raid1 sdb3[3] sda3[2]
      1073740664 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sdb1[3] sda1[2]
      8387572 blocks super 1.2 [2/2] [UU]

unused devices: none
Run Code Online (Sandbox Code Playgroud)

我重新安装了两个内核,apt-get install --reinstall但这些错误/警告仍然存在。
有谁知道我怎样才能摆脱它们?

更新:

由于它只是一个警告,而不是一个错误(并且 GRUB 必须仍在 sda 上)我重新启动了系统。系统启动,警告消失。我不知道是什么触发了警告。

小智 21

今天有同样的事情。原来这是由于grub-probe尝试通过 访问分区引起的/dev/sda,这与/dev/sda1(以及sda2其他)不缓存一致。

您可以使用修复它

blockdev --flushbufs /dev/sda1
Run Code Online (Sandbox Code Playgroud)

(根据需要对其他分区重复)。


Har*_*ald 20

我在重建降级的 SW-RAID 阵列时遇到了同样的问题,并在另一个网站上绊倒了这个:

出现警告的 g​​rub-2.00 源位于 ./grub-core/disk/diskfilter.c 中,并有以下评论:

/* TRANSLATORS: This message kicks in during the detection of
   which modules needs to be included in core image. This happens
   in the case of degraded RAID and means that autodetection may
   fail to include some of modules. It's an installation time
   message, not runtime message.  */
Run Code Online (Sandbox Code Playgroud)

(摘自https://bbs.archlinux.org/viewtopic.php?id=160785

换句话说,当您降级 RAID 阵列时会发生这种奇怪的错误,一旦您的阵列正常运行,它就会消失(在您的情况下就是这样)。

当我的 RAID 阵列最终完成同步时,update-grub 和 grub-install 上的错误都消失了。

  • 没有为我消失3天。当我第一次尝试 grub-install 时,重建就完成了。 (2认同)

pyt*_*mus 3

因为这只是一个警告,而不是一个错误(并且 GRUB 必须仍在 sda 上),所以我重新启动了系统。
系统启动,警告消失。
我不知道是什么触发了警告。