Advertencia de GRUB "Puede que falten algunos módulos de la imagen principal"

12

un HDD se bloqueó de mi RAID y agregué un nuevo HDD.
Ahora quería instalar GRUB en el nuevo HDD: con grub-install /dev/sdb. Recibo estas advertencias:

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.

En update-grub2obtengo:

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

Salida 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

Reinstalé ambos núcleos apt-get install --reinstallpero estos errores / advertencias persisten.
¿Alguien sabe cómo puedo deshacerme de ellos?

Actualizar:

Como era solo una advertencia, no un error (y GRUB todavía debe estar en sda), reinicié el sistema. El sistema se inició y las advertencias desaparecieron. No sé qué provocó las advertencias.

pythonimus
fuente
Parece que te falta algo. ¿Qué nivel de RAID usas? Después de agregar el dispositivo a RAID, no debe trabajar con él directamente. Por favor, publique el resultado de cat /proc/mdstataquí.
maniaque
Salida agregada a mi publicación. El nivel RAID es 1. la resincronización ya está hecha.
pythonimus
Por lo tanto, todos sus discos y dispositivos md están activos. No debe intentar instalar grub directamente: mdadm sincroniza automáticamente el contenido del disco duro. Si desea instalar grub en el dispositivo md, utilícelo grub-install /dev/md1, pero ¿está seguro de que necesita grub en el dispositivo md? ¿Arrancas desde el dispositivo md?
maniaque
1
Lo hice como se menciona aquí Paso 12: Vuelva a instalar GRUB 2 ([...] No especifique un número de partición) [...] Si las particiones del sistema están en un RAID de software, instale GRUB 2 en todos los discos del RAID. [...] O aquí
pythonimus

Respuestas:

16

Tenía lo mismo hoy. Resulta que es causado al grub-probeintentar acceder a las particiones /dev/sda, lo que no es coherente con el caché /dev/sda1(y sda2etcétera).

Puedes arreglarlo usando

blockdev --flushbufs /dev/sda1

(repita para otras particiones según sea necesario).

Fruta
fuente
esto lo hizo por mí, fue suficiente para ejecutar esto en la partición / boot
lifeofguenter
15

Estaba teniendo el mismo problema al reconstruir una matriz SW-RAID degradada, y tropecé con esto en otro sitio web:

La fuente grub-2.00 donde surge la advertencia está en ./grub-core/disk/diskfilter.c y tiene este comentario:

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

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

En otras palabras, este extraño error ocurre cuando ha degradado las matrices RAID y debe desaparecer (lo que sucedió en su caso) una vez que sus matrices funcionan correctamente.

Cuando mis matrices RAID finalmente terminaron de sincronizarse, el error desapareció tanto en update-grub como en grub-install.

Harald
fuente
1
Acabo de cambiar un disco duro y reconstruí la redada. Cuando ejecuté grub-install durante la reconstrucción, recibí estas advertencias. Puedo confirmar que cuando la reconstrucción terminó y ejecuté grub-install nuevamente, ¡estas advertencias desaparecieron!
Vangelis Tasoulas
2
No desapareció por mí durante 3 días. La reconstrucción se realizó cuando intenté instalar grub por primera vez.
pythonimus
3

Como era solo una advertencia, no un error (y GRUB todavía debe estar en sda), reinicié el sistema.
El sistema se inició y las advertencias desaparecieron.
No sé qué provocó las advertencias.

pythonimus
fuente
2

Al usar grub2-install mientras migraba de un solo disco a raid1, tuve síntomas muy similares, siendo varias líneas de advertencia de la siguiente manera. Sin embargo, no estaba dispuesto a reiniciar solo para "probar" si esto era o no un problema fatal. En mi caso, quería poner / arrancar en un RAID1 de 4 discos mientras las otras particiones iban a ser RAID1 de 2 discos separadas:

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

grub2-mkconfig también mostró múltiples errores en la configuración resultante:

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

Encontré que el problema era que había creado la matriz RAID sin especificar la versión de metadatos. Las versiones antiguas de grub requieren --metadata = 0.90 al crear la matriz. Después de volver a hacer este bit en la partición / boot, grub2-install funcionó al 100%. Tenga en cuenta que la partición original con / boot era / dev / sda1, de ahí que los siguientes comandos tengan 3 discos + 1 faltantes en lugar de los 4 discos.

Antes de:

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

Después:

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

En relación con el mapa del dispositivo, grub tenía el comando "grub-mkdevicemap". Esto ha sido reemplazado con el indicador "--recheck" en grub2-install:

Antiguo:

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

Nuevo:

$ grub2-install --recheck /dev/sda

También recuerde, si usa varios discos, repetir el comando en todos los discos. Esto evita la situación en la que tiene instalado grub en un solo disco, pero ese disco muere en usted (lo que daría como resultado un sistema que no se puede iniciar):

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

Esto sucede porque el mapa del dispositivo grub (/boot/grub/device.map) ya no es correcto, después de cambiar una unidad de raid. Simplemente corre

grub-mkdevicemap -n

para actualizar el mapa del dispositivo y

grub-install

para los dispositivos correspondientes.

Henrik
fuente