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


12

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-grub2I取得します:

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こちらの結果を投稿してください。
マニアック14

投稿に出力を追加しました。RAIDレベルは1です。再同期はすでに完了しています。
pythonimus 14

これで、すべてのディスクとmdデバイスが起動しました。grubを直接インストールしないでください-mdadmはハードディスクの内容を自動的に同期します。grubをmdデバイスにインストールする場合、を使用grub-install /dev/md1しますが、mdデバイスでgrubが必要ですか?mdデバイスから起動しますか?
マニアック

1
ここで述べようにそれをやめましたステップ12:GRUB 2を再インストールします([...]パーティション番号を指定しないでください)[...]システムパーティションがソフトウェアRAIDにある場合、GRUB 2をRAIDのすべてのディスクにインストールします。[...]またはここ
pythonimus 14

回答:


16

今日も同じことをしました。ターンアウトそれはによって引き起こされていますgrub-probeを通じてアクセスパーティションにしよう/dev/sdaとキャッシュコヒーレントされていない、/dev/sda1(およびsda2エトセトラ)。

を使用して修正できます

blockdev --flushbufs /dev/sda1

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


これは私のためにそれをしました、/ bootパーティションでこれを実行するのに十分
でした-lifeofguenter

15

劣化した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の両方でエラーが消えました。


1
ハードディスクを交換し、レイドを再構築しました。再構築中にgrub-installを実行すると、これらの警告が表示されました。再構築が完了し、grub-installを再度実行すると、これらの警告が消えたことを確認できます。
ヴァンゲリスタズラス14

2
私のために3日間消えませんでした。再構築は、最初にgrub-installを試みたときに行われました。
pythonimus 14

3

これは警告ではなくエラーではないため(GRUBはまだsda上になければなりません)、システムを再起動しました。
システムが起動し、警告が消えます。
何が警告を引き起こしたのか分かりません。


2

単一のディスクから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

また、複数のディスクを使用する場合は、すべてのディスクでコマンドを繰り返すことを忘れないでください。これにより、1つのディスクにのみ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

対応するデバイス用。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.