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にある必要があります)システムを再起動しました。システムは起動し、警告は表示されなくなりました。警告の原因はわかりません。
それは単なる警告であり、エラーではなかった(そしてGRUBはまだsdaにある必要がある)ので、システムを再起動しました。
システムは起動し、警告は出ていません。
警告の原因はわかりません。
今日も同じことがありました。これは、grub-probe
が/dev/sda
(および/dev/sda1
etcetera)とキャッシュコヒーレントではないsda2
を介してパーティションにアクセスしようとしたことが原因であることがわかります。
あなたはそれを使って修正することができます
blockdev --flushbufs /dev/sda1
(必要に応じて他のパーティションについて繰り返します)。
劣化した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の両方でエラーが消えました。
単一のディスクから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.
これは、RAIDからドライブを交換した後、GRUBデバイスマップ(/boot/grub/device.map)が正しくないために発生します。単に走る
grub-mkdevicemap -n
デバイスマップの更新と
grub-install
対応するデバイス用。