GRUB “Некоторые модули может пропускать из базового изображения” предупреждение

один жесткий диск отказал от моего 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), я перезапустил систему. Загруженной системы и предупреждения не стало. Я не знаю то, что инициировало предупреждения.

12
задан 15 March 2018 в 18:02
6 ответов

Так как это было только предупреждение, а не ошибка (а GRUB должен быть еще на sda), я перезапустил систему.
. Система загрузилась, а предупреждения исчезли.
Я не знаю, что вызвало предупреждения.

3
ответ дан 2 December 2019 в 21:29

У меня была та же проблема во время восстановления деградировавшего массива 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.

.
15
ответ дан 2 December 2019 в 21:29

Это происходит потому, что grub device map (/boot/grub/device.map) больше не корректен, после замены диска с рейда. Просто запустите

grub-mkdevicemap -n

для обновления карты устройств и

grub-install

для соответствующих устройств.

.
1
ответ дан 2 December 2019 в 21:29

Используя 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.
2
ответ дан 2 December 2019 в 21:29

Сегодня было то же самое. Оказывается, это вызвано тем, что grub-probe пытается получить доступ к разделам через / dev / sda , что несовместимо с кешем / dev / sda1 sda2 и т.д.).

Вы можете исправить это с помощью

blockdev --flushbufs /dev/sda1

(при необходимости повторите для других разделов).

16
ответ дан 2 December 2019 в 21:29

Он также будет жаловаться, если 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.
0
ответ дан 8 July 2021 в 18:01

Теги

Похожие вопросы