error: archivo '/grub/i386-pc/normal.mod' no encontrado

47
error: file '/grub/i386-pc/normal.mod' not found.
grub rescue>

¿Que puedo hacer? Solo me siento y lo miro.

Encontré mi viejo netbook (Dell Inspiron 1010) que no he usado durante aproximadamente cuatro años. Reemplacé Windows XP con Ubuntu 12.10. Usé mi unidad USB de arranque. Instalé y reinicié. Recibí el mensaje que normal.modno se encuentra.

¿Qué tengo que hacer? Tipo exit, rebooto quit? ¿Debo reinstalar?

Don Metlay
fuente
1
LA RESPUESTA A CONTINUACIÓN NUNCA FUNCIONA. ESTO FUNCIONA: reinstale su sistema operativo, vaya a "hacer otra cosa", cree sus tablas de partición, luego use your windows partition as your primary boot device. Ese último paso es esencial. NO USE / arranque. Puede haber otra solución: intente cambiar manualmente su dispositivo de arranque durante el inicio; Sin embargo, no creo que eso funcione. Este es un problema de larga data que ha persistido en Ubuntu hasta e incluyendo 17.10. Gracias.
Wolfpack'08
Ninguna de estas instrucciones me funcionó. De hecho, el uso de varias herramientas de recuperación empeoró el problema. Pude volver a instalar grub, pero como uso lvm2, el kernel no pudo iniciarse. Si está utilizando lvm2 para cualquier cosa, cuando ocurra este problema, deberá reinstalar el sistema operativo. Por lo que puedo decir, no hay recuperación de una combinación fallida de actualización del núcleo + grub + lvm2. lvm2 ve muy poco soporte oficial a pesar de ser empujado para Ubuntu Server LTS en un punto. Estoy haciendo una copia de seguridad de mis datos y reinstalando el sistema operativo y no volveré a tocar lvm2. Aprendí mi lección.
CubicleSoft
1
Ya me cambié de lvm2 y desde entonces no he tenido ningún problema. Ninguna de mi infraestructura lo usa más. Las soluciones de rescate del sistema predeterminadas (tanto gráficas como de CLI) no son conscientes o apenas son conscientes de LVM y esa es una razón suficiente para que no use LVM. Incluso si siguiera sus instrucciones para recuperar el sistema y funcionaran, el problema probablemente volvería a ocurrir en el futuro. Reinstalar el sistema operativo y deshacerse de LVM fue la mejor y más rápida opción para mí.
CubicleSoft
1
@Wolfpack en mi caso, el problema es que sin el conjunto normal.mod me impiden posiblemente reinstalar ubuntu, lgoin no funciona. ¿Que puedo hacer?
HoCo_
1
@ Wolfpack'08 Vuelva a publicar su solución como respuesta. Publicar soluciones como comentarios está eludiendo los principios del sitio. También debe mencionar qué "respuesta a continuación nunca funciona", ya que hay más de ellos.
Melebius

Respuestas:

40

Grub tiene una pequeña imagen central que se carga en el momento del arranque. La imagen central carga dinámicamente módulos que proporcionan una mayor funcionalidad. i386-pc/normal.mod not foundindica que grub no puede cargar normal.mod , que es un módulo grub que proporciona el comando normal . Para cargar normal.mod necesita decirle a grub dónde está. Para hacer esto, puede usar la línea de comandos de grub (también conocida como Consola de rescate). Grub iniciará la línea de comando si hay un problema al arrancar, o puede iniciarlo manualmente manteniendo presionada la tecla Mayús mientras se inicia Grub (para forzar la visualización del menú de Grub) y luego presionando la tecla 'c'.

Usando grub puedes explorar las unidades, particiones y sistemas de archivos. Necesitas:

  • localizar la instalación de grub usando ls o search.file
  • establecer las variables grub $ prefix y $ root
  • cargar y ejecutar el módulo normal

Ejemplo

El siguiente es solo un ejemplo. Deberá adaptarlo a su unidad local y configuración de partición.

donde es normal.mod? mirar en algunos lugares probables

grub> search.file /i386-pc/normal.mod
error: no such device: /i386-pc/normal.mod

grub> search.file /grub/i386-pc/normal.mod
error: no such device: /grub/i386-pc/normal.mod

grub> search.file /boot/grub/i386-pc/normal.mod
hd0,msdos1

Si obtiene "Unknown command 'search.file'"esto significa que el comando search.file no está disponible. Esto probablemente se deba a que está en el grub rescue>indicador y no en el grub>indicador. En este caso, aún puede continuar y utilizar el lscomando y su conocimiento del diseño de su partición para buscar normal.mod.

lo encontré en (hd0, msdos1)

grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod

¿Por qué Grub no lo encontró?
check $ prefix: ubicación absoluta del directorio grub
(esto se establece cuando grub-install instala grub)

grub> echo $prefix
(hd0,msdos2)/boot/grub

compruebe $ root: el dispositivo predeterminado para las rutas que no incluyen un
grub de dispositivo establece inicialmente esto en el dispositivo desde el prefijo $

grub> echo $root
hd0,msdos2

root y prefix apuntan a la partición incorrecta (hd0, msdos2)
establezca $ root y $ prefix en la partición donde encontramos normal.mod (hd0, msdos1)

grub> set root=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)/boot/grub

cargar y ejecutar el módulo normal

grub> insmod normal
grub> normal

Algunos otros comandos que pueden ser útiles

ls enumera todos los dispositivos y particiones

grub> ls
(hd0) (hd0,msdos5) (hd0,msdos1)

partición ls

grub> ls (hd0,msdos1)
        Partition hd0,msdos1: Filesystem type ext* - Last modification time
2014-05-08 15:56:38 Thursday, UUID c864cbdd-a2ba-43a4-83a3-66e305adb1b6 -
Partition start at 1024KiB - Total size 6290432Kib

sistema de archivos ls (nota / al final)

grub> ls (hd0,msdos1)/
lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/
root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz initrd.img cdrom/

mirar dentro / boot / grub la
presencia del directorio i386-pc significa que esta es una
presencia de instalación de BIOS del directorio x86_64-efi indicaría una instalación EFI

grub> ls (hd0,msdos1)/boot/grub
i386-pc/ locale/ fonts/ grubenv grub.cfg

baño
fuente
+1 Después de seguir estos pasos para iniciar mi instalación de ubuntu, corrí sudo grub-install /dev/sdXpara instalar mi grub. Creo que la instalación de LVM confundió mi grub de alguna manera.
DavidG
Supongo que si obtienes el "comando desconocido 'buscar-archivo' como lo acabo de hacer, es hora de rendirte. Mi consejo para la gente es que nunca instales Ubuntu sin un DVD de recuperación de Windows. Como acabo de descubrir, tener una partición de recuperación es no es suficiente una vez que Grub se equivoca. Y también, nunca instales Ubuntu en la computadora con Windows de otra persona, porque si se estropea, realmente se enojará.
Scooter
@Scooter Consulte esta respuesta para obtener instrucciones sobre cómo reinstalar Grub iniciando un CD / USB en vivo.
bain
@bain Gracias por la respuesta. En mi caso hice una reinstalación desde el disco iso de Ubuntu. Ubuntu descubrió que grub estaba en mal estado o tal vez simplemente escribe automáticamente sobre él, pero lo rehizo a donde estaba nuevamente para poder iniciar Windows nuevamente.
Scooter
El shell de rescate de Grub no parece admitir ninguno de estos comandos. "Comando desconocido 'search.file'"
Cerin
30

Resolvió esto en una máquina esta tarde. Parece que una de las causas de este problema es que el instalador piensa que tiene un arranque seguro EFI, cuando no lo hace y, por lo tanto, carga los archivos GRUB incorrectos.

Lo que debe hacer es instalar GRUB 2. Para hacer esto, debe iniciar desde la instancia en vivo, montar su partición raíz e instalar.

Desde una instancia en vivo, busque la partición en la que se carga su partición raíz. GParted te dirá esto, o podrías usar

sudo fdisk -l

Vaya a la partición en la que está instalado ubuntu.

Una vez que tenga su partición, necesita montarla. Suponiendo que la partición raíz esté en / dev / sda5, eso sería:

sudo mount /dev/sda5 /mnt

Luego instale GRUB 2

sudo grub-install /dev/sda --root-directory=/mnt [use copiar y pegar para este, ya que hay algunos espacios que necesita hacer bien.]

Suponiendo que este sea su problema, entonces debería poder reiniciar y todo funcionará bien.

La solución original para esto fue desde aquí: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html

MorrisseyJ
fuente
1
No funciono para mi. Tengo el mismo problema y todavía estoy buscando una solución.
ExpatEgghead
3
--root-directory ahora es --boot-directory en grub2
bain
1
Otra solución fácil que funcionó para mí es copiar la copia de seguridad del grupo ubicada en /etc/grub.d/backup a / boot / grub. Consulte el archivo Léame adjunto para ver las carpetas y rutas adecuadas.
jhexp
En mi caso, el problema era que tenía 2 discos duros y la secuencia de BIOS estaba buscando primero en el disco incorrecto. Esa unidad tenía una vieja instalación corrupta de grub.
eusoubrasileiro
Si no puede saber cuál es el correcto de fdisk, este SO puede ayudar (me ayudó a encontrar qué dispositivo / media / ubuntu / some-name estaba activado
Michael
2

No encontré esa información en los foros, por lo que quiero compartir información a pesar de que esta pregunta se hizo hace mucho tiempo:

Si tiene una partición grande (por ejemplo, 1 TB) con Ubuntu instalado y no asignó una adicional para / boot /, podría ser la razón de tales errores. Cuando se inicia GRUB, utiliza el controlador de biosdisk para leer los controladores normales del directorio / boot / grub /. A veces, este directorio podría ubicarse físicamente en el disco duro en algún lugar después del máximo admitido por el sector de biosdisk. El problema podría aparecer, por ejemplo, después de la actualización del sistema. Además, siempre me enfrento a ese problema después de una nueva instalación de Ubuntu 13.10, pero podría diferir, ya que depende de la placa base / BIOS.

Puede verificar que utilizando grub recovery, después de configurar PREFIX y ROOT correctos, intente ls / boot, si no ve nada, pero puede ver los archivos allí cuando arranca desde un CD / flash en vivo, entonces tiene el problema descrito anteriormente .

Puede hacer diferentes cosas para hacer que el sistema arranque, pero la única forma de evitar ese problema en el futuro (durante las actualizaciones de dist) es colocar el directorio / boot en una pequeña partición separada.

Dolor
fuente
1

Es posible que otras soluciones no funcionen si llega al grub-rescueindicador y / o su configuración usa LVM, esta debería funcionar.

Arrancar en un disco de rescate (consejo: mantengo una pequeña distribución en una partición dedicada de mi disco USB de respaldo).

Si usa LVM, busque el nombre de su grupo de volúmenes con lvdisplayu otros comandos relacionados con LVM. Actívelo (de lo contrario, obtendrá un mount: special drive /dev/volumegroupname/partition does not existerror al intentar montar):

vgchange -a y volumegroupname

Ahora monte su /partición habitual , por ejemplo, en /mnt :

mount /dev/volumegroupname/partition /mnt

Monte también algunos dispositivos especiales (así como también /booten una partición separada):

mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t sysfs /sys /mnt/sys

Luego chrooten su distribución habitual:

chroot /mnt

Finalmente, reinstale GRUB2: los comandos pueden variar según su distribución, esto funciona en Slackware (si su unidad es /dev/sda):

grub-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

Reinicie y ya debería haber terminado.

Skippy le Grand Gourou
fuente
0

! LA RESPUESTA SELECCIONADA NUNCA FUNCIONA.

ESTO FUNCIONA:

  1. Vuelva a instalar su sistema operativo , vaya a " hacer otra cosa ", cree sus tablas de partición,
  2. Use su partición de Windows como su dispositivo de arranque principal .

El segundo paso es esencial .

No consumo/boot .

Puede haber otra solución: intente cambiar manualmente su dispositivo de arranque durante el inicio; sin embargo, no creo que eso funcione, y todavía tengo que probarlo.

Este es un problema de larga data que ha persistido en Ubuntu hasta e incluyendo 17.10.

Wolfpack'08
fuente