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


12

一个硬盘从RAID崩溃,我添加了一个新硬盘。
现在,我想将GRUB安装到新的HDD:中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.

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

输出 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

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

更新:

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


好像您缺少什么。您使用哪个RAID级别?将设备添加到RAID之后,不应直接使用它。请在cat /proc/mdstat这里发布结果。
疯狂

将输出添加到我的帖子中。RAID级别为1。重新同步已完成。
pythonimus 2014年

因此,所有磁盘和md设备均已启动。您不应该尝试直接安装grub-mdadm自动同步硬盘内容。如果要将grub安装到md设备,请使用grub-install /dev/md1,但是确定要在md设备上使用grub吗?您是否从md设备启动?
疯狂

1
我按此处提到的那样进行整理。步骤12:重新安装GRUB 2(未指定分区号)[...]如果系统分区在软件RAID上,则在RAID中的所有磁盘上安装GRUB 2。[...]或这里
pythonimus 2014年

Answers:


16

今天有同样的事情。事实证明,这是由于grub-probe尝试通过访问分区所引起的/dev/sda,而该分区与/dev/sda1(和sda2etcetera)在缓存方面不相干。

您可以使用修复它

blockdev --flushbufs /dev/sda1

(必要时重复其他分区)。


这对我
有用

15

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

发出警告的grub-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.  */

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

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

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


1
我只是更换了硬盘并重建了团队。在重建过程中运行grub-install时,收到了这些警告。我可以确认重建完成后再次运行grub-install,这些警告消失了!
Vangelis Tasoulas 2014年

2
我三天没消失了。当我第一次尝试grub-install时,重建工作已经完成。
pythonimus 2014年

3

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


2

从单个磁盘迁移到raid1时使用grub2-install,我有非常相似的症状,如下所示是多个警告行。但是我不愿意重新启动它来“测试”这是否是一个致命的问题。在我的情况下,我想将/ boot放到4磁盘RAID1上,而其他分区将要分开使用2磁盘RAID1:

grub2-install: warning: Couldn't find physical volume ‘(null)’. Some modules may be missing from core image..

grub2-mkconfig在结果配置中还显示了多个错误:

/usr/sbin/grub2-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..

我发现问题是我没有指定元数据版本就创建了RAID阵列。创建数组时,较早的grub版本需要--metadata = 0.90。在/ boot分区上重新执行此位后,grub2-install可以100%工作。请记住,带有/ boot的原始分区是/ dev / sda1,因此为什么下面的命令缺少3个磁盘+ 1个磁盘而不是全部4个磁盘。

之前:

$ mdadm --create --level 1 /dev/md2 --raid-devices=4 /dev/sd{b,c,d}1 missing

后:

$ mdadm --create --level 1 /dev/md2 --raid-devices=4 --metadata=0.90 /dev/sd{b,c,d}1 missing

与设备映射相关,grub具有“ grub-mkdevicemap”命令。在grub2-install中,它已被“ --recheck”标志代替:

旧:

$ grub-mkdevicemap -n
$ grub-install /dev/sda

新:

$ grub2-install --recheck /dev/sda

另外请记住,如果使用多个磁盘,请在所有磁盘上重复该命令。这样可以避免仅在一个磁盘上安装grub的情况,但是该磁盘恰好在您的磁盘上死了(这将导致无法引导的系统):

$ for disk in sd{a,b,c,d} ; do grub2-install --recheck /dev/$disk ; done
Installing for i386-pc platform.
Installation finished. No error reported.
Installing for i386-pc platform.
Installation finished. No error reported.
Installing for i386-pc platform.
Installation finished. No error reported.
Installing for i386-pc platform.
Installation finished. No error reported.

1

发生这种情况是因为在从RAID更换驱动器后,grub设备映射(/boot/grub/device.map)不再正确。只需运行

grub-mkdevicemap -n

用于更新设备图和

grub-install

用于相应的设备。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.