GRUB "Попередження" У деяких зображеннях модулів може бути відсутнє "


12

один жорсткий диск вийшов з ладу з мого 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-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тут.
маніяк

додано вихід до моєї публікації. Рівень RAID - 1. пересинхронізація вже зроблена.
pythonimus

Отже, всі ваші диски та md-пристрої створені. Не слід намагатися встановити grub безпосередньо - mdadm автоматично синхронізує вміст жорсткого диска. Якщо ви хочете встановити grub на md пристрій, то використовуйте grub-install /dev/md1, але ви впевнені, що вам потрібна grub на md пристрої? Ви завантажуєте з пристрою md?
маніяк

1
Я даю це так, як згадувалося тут. Крок12: Перевстановіть GRUB 2 ([...] Не вказуйте номер розділу) [...] Якщо системні розділи є на програмному RAID, встановіть GRUB 2 на всіх дисках RAID. [...] Або тут
pythonimus

Відповіді:


16

Мав те саме сьогодні. Виявляється, це викликано grub-probeспробою отримати доступ до розділів через /dev/sda, що не є кеш-когерентним /dev/sda1(та sda2etcetera).

Ви можете виправити це за допомогою

blockdev --flushbufs /dev/sda1

(повторіть для інших розділів, якщо потрібно).


це зробило це для мене, досить було запустити це на розділі / boot
lifeofguenter

15

У мене виникли ті ж проблеми, коли відбудовувався деградований масив 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 нарешті закінчили синхронізацію, помилка зникла як у update-grub, так і при встановленні grub.


1
Я просто змінив жорсткий диск і відновив рейд. Коли я запустив grub-install під час відновлення, я отримав ці застереження. Я можу підтвердити, що після відновлення завершено, і я знову запустив grub-install, ці попередження зникли!
Vangelis Tasoulas

2
Не зникав для мене 3 дні. Відновлення було зроблено, коли я вперше спробував встановити grub-install.
pythonimus

3

Оскільки це було лише попередження, а не помилка (і GRUB має бути ще на sda), я перезапустив систему.
Система завантажилася, і попередження вже відсутні.
Я не знаю, що викликало попередження.


2

Використовуючи grub2-install під час міграції з одного диска на raid1, у мене були дуже схожі симптоми, будучи декількома рядками попередження, як описано нижче. Я не хотів перезавантажуватись лише для того, щоб "перевірити", чи це фатальна проблема чи ні. У моєму випадку я хотів поставити / завантажитися на 4-дисковий RAID1, тоді як інші розділи збиралися розділити дводискові 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 вимагають --metaданих = 0,90 при створенні масиву. Після повторного виконання цього біта на / boot розділі grub2-install працював на 100%. Майте на увазі, що в початковому розділі з / boot був / dev / sda1, отже, чому в наведених нижче командах відсутні 3 диски + 1, а не всі 4 диски.

Перед:

$ 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". Це було замінено прапором "--recheck" у 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.

1

Це трапляється через те, що карта пристрою, що працює на ґрунті (/boot/grub/device.map) більше не коректна, після обміну приводу з рейду. Просто запустіть

grub-mkdevicemap -n

для оновлення карти пристрою та

grub-install

для відповідних пристроїв.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.