Avertissement GRUB «Certains modules peuvent être absents de l'image principale»

12

un disque dur s'est écrasé de mon RAID et j'ai ajouté un nouveau disque dur.
Maintenant, je voulais installer GRUB sur le nouveau disque dur: avec grub-install /dev/sdb. Je reçois ces avertissements:

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.

Sur - update-grub2je obtenir:

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

Sortie 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

J'ai réinstallé les deux noyaux avec apt-get install --reinstallmais ces erreurs / avertissements persistent.
Est-ce que quelqu'un sait comment je peux m'en débarrasser?

Mise à jour:

Comme ce n'était qu'un avertissement, pas une erreur (et GRUB doit être toujours sur sda), j'ai redémarré le système. Le système a démarré et les avertissements ont disparu. Je ne sais pas ce qui a déclenché les avertissements.

pythonimus
la source
On dirait que vous manquez quelque chose. Quel niveau RAID utilisez-vous? Après avoir ajouté un périphérique au RAID, vous ne devez pas travailler directement avec lui. Veuillez poster le résultat d' cat /proc/mdstatici.
maniaque
ajouté une sortie à mon message. Le niveau RAID est 1. la resynchronisation est déjà effectuée.
pythonimus
Ainsi, tous vos disques et périphériques md sont en place. Vous ne devez pas essayer d'installer grub directement - mdadm synchronise automatiquement le contenu du disque dur. Si vous souhaitez installer grub sur un appareil md, utilisez-le grub-install /dev/md1, mais êtes-vous sûr d'avoir besoin de grub sur un appareil md? Démarrez-vous à partir d'un périphérique md?
maniaque
1
Je l'ai dit comme mentionné ici Étape 12: Réinstaller GRUB 2 ([...] Ne spécifiez pas de numéro de partition) [...] Si les partitions système sont sur un RAID logiciel, installez GRUB 2 sur tous les disques du RAID. [...] Ou ici
pythonimus

Réponses:

16

Eu la même chose aujourd'hui. Il s'avère que cela est dû à la grub-probetentative d'accès aux partitions /dev/sda, ce qui n'est pas cohérent avec le cache /dev/sda1(et sda2etc.).

Vous pouvez le réparer en utilisant

blockdev --flushbufs /dev/sda1

(répéter pour les autres partitions si nécessaire).

Fruit
la source
cela l'a fait pour moi, il suffisait de l'exécuter sur la partition / boot
lifeofguenter
15

J'avais le même problème lors de la reconstruction d'une baie SW-RAID dégradée, et j'ai trébuché sur un autre site Web:

La source grub-2.00 où l'avertissement apparaît est dans ./grub-core/disk/diskfilter.c et a ce commentaire:

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

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

En d'autres termes, cette étrange erreur se produit lorsque vous avez dégradé des matrices RAID et devrait disparaître (ce qui s'est produit dans votre cas) une fois que vos matrices fonctionnent correctement.

Lorsque mes matrices RAID ont finalement terminé la synchronisation, l'erreur a disparu à la fois sur update-grub et grub-install.

Harald
la source
1
Je viens de changer un disque dur et de reconstruire le raid. Lorsque j'ai exécuté grub-install pendant la reconstruction, j'ai reçu ces avertissements. Je peux confirmer que lorsque la reconstruction est terminée et que j'ai relancé grub-install, ces avertissements ont disparu!
Vangelis Tasoulas
2
N'a pas disparu pour moi pendant 3 jours. La reconstruction a été effectuée lorsque j'ai essayé d'installer grub pour la première fois.
pythonimus le
3

Comme ce n'était qu'un avertissement, pas une erreur (et GRUB doit être toujours sur sda), j'ai redémarré le système.
Le système a démarré et les avertissements ont disparu.
Je ne sais pas ce qui a déclenché les avertissements.

pythonimus
la source
2

En utilisant grub2-install lors de la migration d'un seul disque vers raid1, j'ai eu des symptômes très similaires, avec plusieurs lignes d'avertissement comme suit. Je n'étais pas prêt à redémarrer juste pour "tester" si c'était ou non un problème fatal. Dans mon cas, je voulais mettre / démarrer sur un RAID1 à 4 disques tandis que les autres partitions allaient être séparées des RAID1 à 2 disques:

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

grub2-mkconfig a également montré plusieurs erreurs dans la configuration résultante:

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

J'ai trouvé que le problème était que j'avais créé la matrice RAID sans spécifier la version des métadonnées. Les versions antérieures de grub nécessitent --metadata = 0.90 lors de la création du tableau. Après avoir refait ce bit sur la partition / boot, grub2-install a fonctionné à 100%. Gardez à l'esprit que la partition d'origine avec / boot était / dev / sda1, d'où la raison pour laquelle les commandes ci-dessous ont 3 disques + 1 manquant au lieu des 4 disques.

Avant:

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

Après:

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

Lié à la carte des périphériques, grub avait la commande "grub-mkdevicemap". Ceci a été remplacé par le drapeau "--recheck" dans grub2-install:

Vieux:

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

Nouveau:

$ grub2-install --recheck /dev/sda

N'oubliez pas également, si vous utilisez plusieurs disques, de répéter la commande sur tous les disques. Cela empêche la situation où grub est installé sur un seul disque mais que ce disque se trouve mourir sur vous (ce qui entraînerait un système non amorçable):

$ 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
la source
1

Cela se produit car la carte de périphérique grub (/boot/grub/device.map) n'est plus correcte, après avoir échangé un lecteur de raid. Exécutez simplement

grub-mkdevicemap -n

pour mettre à jour la carte de l'appareil et

grub-install

pour les appareils correspondants.

Henrik
la source