один жесткий диск отказал от моего 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.
На 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), я перезапустил систему.
.
Система загрузилась, а предупреждения исчезли.
Я не знаю, что вызвало предупреждения.
У меня была та же проблема во время восстановления деградировавшего массива 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-массивы наконец-то закончили синхронизацию, ошибка исчезла как на updateate-grub, так и на grub-install.
.Это происходит потому, что grub device map (/boot/grub/device.map) больше не корректен, после замены диска с рейда. Просто запустите
grub-mkdevicemap -n
для обновления карты устройств и
grub-install
для соответствующих устройств.
.Используя grub2-install при переходе с одного диска на raid1, у меня были очень похожие симптомы, состоящие из нескольких предупреждающих линий, как показано ниже. Однако, я не хотел перезагружаться только для того, чтобы "проверить", является ли это фатальной проблемой или нет. В моем случае я хотел перезагрузить /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, поэтому в командах, приведённых ниже, вместо всех 4 дисков было 3 диска + 1.
Before:
$ mdadm --create --level 1 /dev/md2 --raid-devices=4 /dev/sd{b,c,d}1 missing
After:
$ mdadm --create --level 1 /dev/md2 --raid-devices=4 --metadata=0.90 /dev/sd{b,c,d}1 missing
Upon:
$ mdadm --create --level 1 /dev/md2 --raid-devices=4 --metadata=0.90 /dev/sd{b,c,d}1 missing
Ассоциируясь с картой устройства, grub имел команду "grub-mkdevicemap". В grub2-install:
Старое:
$ 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.
Сегодня было то же самое. Оказывается, это вызвано тем, что grub-probe
пытается получить доступ к разделам через / dev / sda
, что несовместимо с кешем / dev / sda1
(и sda2
и т.д.).
Вы можете исправить это с помощью
blockdev --flushbufs /dev/sda1
(при необходимости повторите для других разделов).
Он также будет жаловаться, если MD по какой-либо причине не исправен, даже если он работает нормально (например, 1 диск удален из 3-дискового RAID1):
# grub-install --recheck /dev/sda
Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Installation finished. No error reported.
# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md61 : active raid1 sdb1[0] sda1[1]
1048564 blocks super 1.2 [3/2] [UU_]
bitmap: 1/1 pages [4KB], 65536KB chunk
После исправления количество имеющихся дисков, он будет работать без жалоб:
# mdadm --grow /dev/md61 -n 2
raid_disks for /dev/md61 set to 2
# grub-install --recheck /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.