Recuperación de archivos .mod movidos usando grubrescue


33

Hice una tontería ... Olvidé que Ubuntu 10.04 (Lucid Lynx) cambió a GRUB  2 que pone una tonelada de archivos * .mod (módulos del núcleo) /boot/grub. Pensé que eran archivos de banda sonora colocados allí erróneamente, y los moví. No hace falta decir que el siguiente reinicio fue traumático. Me presentaron algo que no recordaba haber visto nunca ... un mensaje de 'grub rescue>'.

Sin embargo, con la ayuda de Fixing GRUB error: "error: sistema de archivos desconocido" , pude recuperar ...

  • Descubrí que GRUB rescue no tiene 'cd', 'cp' ni ningún otro comando del sistema de archivos, excepto su propia variación de 'ls'.
  • Así que primero tuve que encontrar la partición con el /bootdirectorio que contiene el vmlinuzarchivo y otros archivos de imagen de arranque ... (aproximación de la memoria de intentos fallidos, así como líneas en blanco para mayor claridad, añadido 2014-07-10 por docsalvage)

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
  • Encontré un /bootdirectorio que contiene el vmlinuzarchivo vmlinuz-2.6.32-33-genericen la partición (hd0,2).

  • Luego arranqué manualmente desde el indicador 'grub rescue>'. Los siguientes comandos ...

    • Configure el rootpara usar el /bootdirectorio en la partición (hd0,2).
    • Cargue el módulo del kernel linux.
    • Configure ese módulo para usar la imagen del núcleo vmlinuz-2.6.32-33-generic.
    • Configure initrd (inicializar disco RAM) para usar la imagen initrd.img-2.6.32-33-generic.
    • Arranque Linux.
  • grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
  • Esto arranca y se bloquea en el indicador de BusyBox que TIENE algunos comandos rudimentarios del sistema de archivos.

  • Luego moví los archivos * .mod nuevamente al /boot/grubdirectorio ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • El reinicio fue exitoso, pero eso fue mucho trabajo.

hay una manera mas facil?


1
La reparación de arranque sería mucho más fácil, en mi opinión. Echa un vistazo a una de mis múltiples respuestas en Boot-Repair para obtener detalles sobre su uso.
SirCharlo

1
La forma "más fácil" no siempre es la mejor. Estoy totalmente en desacuerdo con todos los comentarios que sugieren usar un Live CD; Es realmente muy difícil arrancar desde un Live CD en sistemas que no tienen un lector de CD / DVD.
Simón

ican no localiza la partición con el directorio / boot. Todas las particiones con el comando ls dan una salida desconocida del sistema de archivos.
Rafed Nole

1
Su publicación fue muy útil para arrancar manualmente el kernel y el initrd, pero mi sistema no pudo encontrar dev, sys o proc, etc / fstab o sbin / init. Eso me llevó a otra publicación , que sugería cargar el kernel y configurar la raíz como se detalla en las instrucciones de arranque manual en la documentación de grub , por ejemplo: grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaX dónde Xestá la partición con /boot,a.b.c-d es la versión del kernel. Entonces mi sistema arrancó bien! ¡Gracias!
Mark Mikofski

1
además de [Solucionando error GRUB: "error: sistema de archivos desconocido" [duplicado]] ( askubuntu.com/q/142300/36961 ) otro gran enlace que cubre estos pasos es Cómo rescatar un GRUB 2 sin arranque en Linux , el grub 2 manual también es muy útil
Mark Mikofski

Respuestas:


5

No. Creo que encontraste la forma más fácil de recuperarte del estado de tu sistema usando grub rescue ; Es un sistema muy minimalista que ofrece la capacidad suficiente para arrancar el sistema.

Por cierto, creo que debe haber encontrado los .modarchivos y ejecutado insmod linuxo el linuxcomando habría fallado.

La única otra forma, como se mencionó, sería arrancar un Live CD y reinstalar grub2 después de hacer un chroot en el sistema 'roto'.


¡Estás absolutamente en lo correcto! Olvidé que había hecho eso. Agregado a mi publicación original arriba para referencia futura. Necesito ser más disciplinado para mantener notas cuidadosas en estas situaciones. Por favor avise si se necesitan más ediciones.
DocSalvager

También tuve que especificar la raíz al cargar el kernel como en los documentos de grub, por ejemplo grub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
Mark Mikofski,

También tenga en cuenta que si encuentra los archivos .mod, puede restaurar "grub rescue" a GRUB con todas las funciones: # Inspect the current prefix (and other preset variables): set # Find out which devices are available: ls # Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal Fuente: gnu.org/software/grub/manual/html_node/…
MegaBrutal

7

Aquí hay algunas instrucciones generales y básicas para ayudar con errores de arranque como GRUB loading stage 1.5 error 15 (por ejemplo, después de la instalación de Windows en una unidad de disco diferente):

  1. Arranque con un LiveDVD (por ejemplo, el disco Ubuntu Desktop).

  2. Abra una terminal y vuelva a escribir la configuración de grub con estos comandos:

    • sudo mount /dev/sdXY /mnt
    • sudo grub-install --root-directory=/mnt /dev/sdX

Dónde /dev/sdXestá el disco donde está instalado Ubuntu, y /dev/sdXYes la partición en el disco donde está instalado Ubuntu. En otras palabras, /dev/sdXYcontiene /booty así sucesivamente.

Use fdisk -lpara verificar la ubicación de instalación de Ubuntu.


No funcionó. Quizás si las instrucciones fueran más específicas, habría funcionado.
Tim Stewart

Cuando tuve un problema de grub2 en una máquina sin unidad de CD pude recuperarme usando mi unidad de memoria USB Gparted Live. Arranqué en Gparted live. ENTONCES comencé un terminal y escribí fdisk -l (esa es la letra ell, no el número 1) El resultado de eso me permitió identificar la partición que tenía la partición raíz y desde allí seguí las excelentes instrucciones anteriores y pronto volví a arrancar felizmente .
Vic

4
  1. Arrancar en Live CD

  2. Terminal abierto (CTRL + ALT + T)

  3. Ingrese los siguientes comandos:

sudo fdisk -l

Y encuentre su partición de Ubuntu (debería ser / dev / sda1 si es la primera partición)

sudo mount /dev/sda1 /mnt

sudo mount --bind /sys /mnt/sys

sudo mount --bind /proc /mnt/proc

sudo mount --bind /dev /mnt/dev

sudo chroot /mnt

Ahora reinstale Grub2

sudo apt-get install --reinstall grub2

2
¿Es esta una mejor manera mejor que sudo mount /dev/sda1 /mnty sudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub?

4

Tuve el mismo problema cuando actualicé mi sistema.

Sugiero los siguientes pasos simples:

  1. Arranque su sistema con ubuntu live CD o live USB.
  2. Abra el terminal y ejecute el comando sudo add-apt-repository ppa: yannubuntu / boot-repair && sudo apt-get update
  3. Luego instale la reparación de arranque ejecutando el comando sudo apt-get install -y boot-repair && boot-repair

  4. Inicie la reparación del arranque después de la instalación. Por ejemplo, desde el menú, use System->Administration->Boot-Repair (solo Ubuntu 10.04) y siga las instrucciones.

    Puede llevar entre 15 y 20 minutos descubrir el problema y solucionarlo.

Para obtener más ayuda, vaya al enlace https://help.ubuntu.com/community/Boot-Repair


0

Puede iniciar Live CD, montar su disco duro, abrir nautilus como root y copiar esos archivos en / boot.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.