GRUB Ostrzeżenie „Brak niektórych modułów w obrazie rdzenia”

12

jeden dysk twardy rozbił się z mojej macierzy RAID i dodałem nowy dysk twardy.
Teraz chciałem zainstalować GRUB na nowym dysku twardym: z grub-install /dev/sdb. Otrzymuję te ostrzeżenia:

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.

Na update-grub2uzyskać:

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

Wyjście z 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

Ponownie zainstalowałem oba jądra, apt-get install --reinstallale te błędy / ostrzeżenia nadal występują.
Czy ktoś wie, jak się ich pozbyć?

Aktualizacja:

Ponieważ było to tylko ostrzeżenie, a nie błąd (a GRUB musi być nadal na sda) zrestartowałem system. System uruchomił się i ostrzeżenia zniknęły. Nie wiem, co wywołało ostrzeżenia.

pythonimus
źródło
Wygląda na to, że czegoś brakuje. Z jakiego poziomu macierzy RAID korzystasz? Po dodaniu urządzenia do macierzy RAID nie należy bezpośrednio z nim pracować. Proszę zamieścić wynik cat /proc/mdstattutaj.
maniaque
dodano wyjście do mojego postu. Poziom RAID wynosi 1. resynchronizacja jest już wykonana.
pythonimus
Więc wszystkie twoje dyski i urządzenia MD są gotowe. Nie powinieneś próbować instalować grub bezpośrednio - mdadm automatycznie synchronizuje zawartość dysku twardego. Jeśli chcesz zainstalować gruba na urządzeniu md, skorzystaj grub-install /dev/md1, ale czy na pewno potrzebujesz gruba na urządzeniu md? Czy startujesz z urządzenia MD?
maniaque
1
Dit it jak wspomniano tutaj Krok 12: Ponownie zainstaluj GRUB 2 ([...] Nie podawaj numeru partycji) [...] Jeśli partycje systemowe znajdują się w oprogramowaniu RAID, zainstaluj GRUB 2 na wszystkich dyskach RAID. [...] Lub tutaj
pythonimus,

Odpowiedzi:

16

Miałem dzisiaj to samo. Okazuje się, że jest to spowodowane grub-probepróbą uzyskania dostępu do partycji /dev/sda, co nie jest spójne z pamięcią podręczną /dev/sda1(i sda2etcetera).

Możesz to naprawić za pomocą

blockdev --flushbufs /dev/sda1

(w razie potrzeby powtórz dla innych partycji).

Owoc
źródło
zrobiło to dla mnie, wystarczyło uruchomić to na partycji / boot
lifeofguenter
15

Miałem ten sam problem podczas przebudowy zdegradowanej macierzy SW-RAID i potknąłem się o to na innej stronie internetowej:

Źródło grub-2.00, w którym pojawia się ostrzeżenie, znajduje się w ./grub-core/disk/diskfilter.c i ma ten komentarz:

/* 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.  */

(Źródło: https://bbs.archlinux.org/viewtopic.php?id=160785 )

Innymi słowy, ten dziwny błąd występuje, gdy zdegradowałeś macierze RAID, i powinien zniknąć (tak jak w twoim przypadku), gdy tablice działają poprawnie.

Kiedy moje macierze RAID w końcu zakończyły synchronizację, błąd zniknął zarówno w przypadku aktualizacji-grub, jak i grub-install.

Harald
źródło
1
Właśnie zmieniłem dysk twardy i przebudowałem nalot. Kiedy uruchomiłem grub-install podczas przebudowy, otrzymałem te ostrzeżenia. Mogę potwierdzić, że po zakończeniu przebudowy i ponownym uruchomieniu grub-install ostrzeżenia zniknęły!
Vangelis Tasoulas,
2
Nie zniknął dla mnie na 3 dni. Przebudowa została wykonana, kiedy po raz pierwszy spróbowałem zainstalować grub.
pythonimus
3

Ponieważ było to tylko ostrzeżenie, a nie błąd (a GRUB musi być nadal na sda) zrestartowałem system.
System uruchomił się i ostrzeżenia zniknęły.
Nie wiem, co wywołało ostrzeżenia.

pythonimus
źródło
2

Korzystając z grub2-install podczas migracji z pojedynczego dysku do raid1, miałem bardzo podobne objawy, będąc wieloma liniami ostrzegawczymi w następujący sposób. Nie chciałem zrestartować się tylko po to, by „przetestować”, czy to był fatalny problem. W moim przypadku chciałem umieścić / uruchomić na 4-dyskowym RAID1, podczas gdy inne partycje miały być oddzielone 2-dyskowymi RAID1:

grub2-install: warning: Couldn't find physical volume ‘(null)’. Some modules may be missing from core image..

grub2-mkconfig pokazał także wiele błędów w wynikowej konfiguracji:

/usr/sbin/grub2-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..

Problem polegał na tym, że utworzyłem macierz RAID bez określania wersji metadanych. Starsze wersje gruba wymagają --metadata = 0,90 podczas tworzenia tablicy. Po ponownym wykonaniu tego bitu na partycji / boot grub2-install działał w 100%. Pamiętaj, że oryginalną partycją z / boot był / dev / sda1, dlatego w poniższych poleceniach brakuje 3 dysków + 1 zamiast wszystkich 4 dysków.

Przed:

$ mdadm --create --level 1 /dev/md2 --raid-devices=4 /dev/sd{b,c,d}1 missing

Po:

$ mdadm --create --level 1 /dev/md2 --raid-devices=4 --metadata=0.90 /dev/sd{b,c,d}1 missing

Powiązane z mapą urządzeń, grub miał polecenie „grub-mkdevicemap”. Zostało to zastąpione flagą „--recheck” w grub2-install:

Stary:

$ grub-mkdevicemap -n
$ grub-install /dev/sda

Nowy:

$ grub2-install --recheck /dev/sda

Pamiętaj również, aby w przypadku korzystania z wielu dysków powtórzyć polecenie na wszystkich dyskach. Zapobiega to sytuacji, w której grub jest zainstalowany tylko na jednym dysku, ale ten dysk zdarza się zginąć (co spowodowałoby, że system nie uruchomi się):

$ 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.
zaTricky
źródło
1

Dzieje się tak, ponieważ mapa urządzeń grub (/boot/grub/device.map) nie jest już poprawna po wymianie dysku z raidu. Po prostu biegnij

grub-mkdevicemap -n

do aktualizacji mapy urządzeń i

grub-install

dla odpowiednich urządzeń.

Henrik
źródło