web-dev-qa-db-ja.com

GRUB「コアイメージから一部のモジュールが欠落している可能性があります」という警告

rAIDから1台のHDDがクラッシュし、新しいHDDを追加しました。
今、新しいHDDに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.

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にある必要があります)システムを再起動しました。システムは起動し、警告は表示されなくなりました。警告の原因はわかりません。

12
pythonimus

それは単なる警告であり、エラーではなかった(そしてGRUBはまだsdaにある必要がある)ので、システムを再起動しました。
システムは起動し、警告は出ていません。
警告の原因はわかりません。

3
pythonimus

今日も同じことがありました。これは、grub-probe/dev/sda(および/dev/sda1 etcetera)とキャッシュコヒーレントではないsda2を介してパーティションにアクセスしようとしたことが原因であることがわかります。

あなたはそれを使って修正することができます

blockdev --flushbufs /dev/sda1

(必要に応じて他のパーティションについて繰り返します)。

16
Fruit

劣化したSW-RAIDアレイを再構築しているときに同じ問題が発生し、別のWebサイトでこれを実行しました。

警告が発生する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の両方でエラーが消えました。

15
Harald

単一のディスクからraid1に移行するときにgrub2-installを使用すると、次のように複数の警告行が表示されるという非常に似た症状がありました。ただし、これが致命的な問題であるかどうかに関係なく、「テスト」のためだけに再起動するつもりはありませんでした。私の場合、他のパーティションが2ディスクRAID1に分離されている間に、4ディスクRAID1に/ bootを配置したいと思いました。

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だったので、以下のコマンドには4つのディスクすべてではなく、3つのディスク+ 1つのディスクが欠落しているので注意してください。

前:

$ 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が1つのディスクにのみインストールされていても、そのディスクが死んでしまうという状況が回避されます(その結果、システムが起動できなくなります)。

$ 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.
2
zaTricky

これは、RAIDからドライブを交換した後、GRUBデバイスマップ(/boot/grub/device.map)が正しくないために発生します。単に走る

grub-mkdevicemap -n

デバイスマップの更新と

grub-install

対応するデバイス用。

1
Henrik