Aviso "Alguns módulos podem estar ausentes na imagem principal" do GRUB

12

um disco rígido caiu do meu RAID e eu adicionei um novo disco rígido.
Agora eu queria instalar o GRUB no novo HDD: with grub-install /dev/sdb. Eu recebo estes avisos:

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.

Em update-grub2eu recebo:

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

Saída de 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

Eu reinstalei os dois kernels com apt-get install --reinstallmas esses erros / avisos persistem.
Alguém sabe como posso me livrar deles?

Atualizar:

Como era apenas um aviso, não um erro (e o GRUB ainda precisa estar no sda), reiniciei o sistema. O sistema inicializou e os avisos sumiram. Não sei o que desencadeou os avisos.

pythonimus
fonte
Parece que está faltando alguma coisa. Qual nível RAID você usa? Depois de adicionar o dispositivo ao RAID, você não deve trabalhar diretamente com ele. Poste o resultado cat /proc/mdstataqui.
Maniaque
adicionado saída ao meu post. O nível de RAID é 1. a ressincronização já está concluída.
Pythonimus
Portanto, todos os seus discos e dispositivos MD estão funcionando. Você não deve tentar instalar o grub diretamente - o mdadm sincroniza o conteúdo do disco rígido automaticamente. Se você deseja instalar o grub no dispositivo md, use-o grub-install /dev/md1, mas tem certeza de que precisa do grub no dispositivo md? Você inicializa a partir do dispositivo md?
Maniaque
1
Eu o faço como mencionado aqui Etapa12: Reinstalar o GRUB 2 (não especificar um número de partição) [...] Se as partições do sistema estiverem em um RAID de software, instale o GRUB 2 em todos os discos no RAID. [...] Ou aqui
pythonimus 4/08/14

Respostas:

16

Teve a mesma coisa hoje. Acontece que isso é causado pela grub-probetentativa de acessar partições /dev/sda, o que não é coerente com o cache /dev/sda1(e sda2etc.).

Você pode corrigi-lo usando

blockdev --flushbufs /dev/sda1

(repita para outras partições, conforme necessário).

Fruta
fonte
este fez isso por mim, era suficiente para executar este na partição / boot
lifeofguenter
15

Eu estava tendo o mesmo problema ao reconstruir uma matriz SW-RAID degradada e tropeçou em outro site:

A fonte do grub-2.00 em que o aviso surge está em ./grub-core/disk/diskfilter.c e tem este comentário:

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

(Retirado de https://bbs.archlinux.org/viewtopic.php?id=160785 )

Em outras palavras, esse erro estranho ocorre quando você destrói matrizes RAID e deve desaparecer (o que ocorreu no seu caso) depois que suas matrizes estiverem funcionando corretamente.

Quando minhas matrizes RAID finalmente terminaram a sincronização, o erro desapareceu no update-grub e no grub-install.

Harald
fonte
1
Acabei de trocar um disco rígido e reconstruí o ataque. Quando executei o grub-install durante a reconstrução, recebi esses avisos. Posso confirmar que, quando a reconstrução terminou e executei o grub-install novamente, esses avisos desapareceram!
Vangelis Tasoulas
2
Não desapareceu para mim por 3 dias. A reconstrução foi feita quando tentei instalar o grub pela primeira vez.
Pythonimus 8/09/14
3

Como era apenas um aviso, não um erro (e o GRUB ainda precisa estar no sda), reiniciei o sistema.
O sistema inicializou e os avisos sumiram.
Não sei o que desencadeou os avisos.

pythonimus
fonte
2

Usando o grub2-install durante a migração de um único disco para o raid1, tive sintomas muito semelhantes, sendo várias linhas de aviso da seguinte maneira. Eu não estava disposto a reiniciar apenas para "testar" se esse era um problema fatal ou não. No meu caso, eu queria colocar / inicializar em um RAID1 de 4 discos enquanto as outras partições seriam RAID1s de 2 discos separados:

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

O grub2-mkconfig também mostrou vários erros na configuração resultante:

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

Achei que o problema era que havia criado a matriz RAID sem especificar a versão dos metadados. As versões mais antigas do grub requerem --metadata = 0.90 ao criar a matriz. Depois de refazer esse bit na partição / boot, o grub2-install funcionou 100%. Lembre-se de que a partição original com o / boot era / dev / sda1, por isso os comandos abaixo têm 3 discos + 1 faltando, em vez dos 4 discos.

Antes:

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

Depois de:

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

Relacionado ao mapa do dispositivo, o grub tinha o comando "grub-mkdevicemap". Isso foi substituído pelo sinalizador "--recheck" no grub2-install:

Velho:

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

Novo:

$ grub2-install --recheck /dev/sda

Lembre-se também, se estiver usando vários discos, para repetir o comando em todos os discos. Isso evita a situação em que você tem o grub instalado apenas em um disco, mas esse disco morre em você (o que resultaria em um sistema não inicializável):

$ 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
fonte
1

Isso acontece porque o mapa do dispositivo grub (/boot/grub/device.map) não está mais correto, após a troca de uma unidade de ataque. Simplesmente corra

grub-mkdevicemap -n

para atualizar o mapa do dispositivo e

grub-install

para os dispositivos correspondentes.

Henrik
fonte