carpeta / boot borrada por error y reiniciada

16

Eliminé por error la carpeta / boot de mi sistema de archivos, reinicié, y todo lo que obtengo ahora es esto:

error: file '/boot/grub/i368-pc/linux.mod' not found.

grub rescue>
Imad Nouari
fuente
es diferente, en este caso, la carpeta / boot se eliminó por completo. no solo algunos archivos, gracias.
Imad Nouari
No creo que ninguna de las respuestas sobre la otra pregunta sea suficiente para solucionar esto ...
Graeme
Muy bien, realmente no leí todas las respuestas. Siempre sugeriría reconstruir todo en lugar de perder el tiempo tratando de resolver lo que faltaba, así que asumí que alguien allí también lo habría hecho. Toma la mitad del tiempo.
Tentáculos de Cthulhu el
77
El error mucho mayor en comparación con la eliminación /bootes, por supuesto, reiniciar el sistema antes de que esto se solucione.
Anthon el

Respuestas:

36

¡Uy!

Esto es lo que debes hacer:

  1. Arranca una distribución en vivo. Este puede ser su disco de instalación de Ubuntu u otro como Knoppix .

  2. Encuentre la unidad / partición donde ha instalado su sistema de archivos raíz. Para hacer esto, puede abrir una terminal y ejecutar sudo parted -lo sudo fdisk -l. Si no puede saberlo, edite su pregunta y agregue el resultado.

  3. Suponiendo que su partición raíz que encontró en el último paso es /dev/sdxy( xdebería ser otra letra y ydebería ser un número), ejecute los siguientes comandos en un terminal:

    mkdir mnt
    sudo mount /dev/sdxy mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    sudo chroot mnt
    
  4. Ahora estará dentro de un chrootentorno, lo que significa que ejecutar comandos aquí es equivalente a ejecutarlos en su sistema instalado. Lo primero que debe hacer es reinstalar GRUB2 en el dispositivo para que copie los archivos correctos en la /bootcarpeta. Para hacer esto, ejecute lo siguiente con la unidad en la que está su partición raíz (es decir, /dev/sdxycon el número ( y) eliminado):

    grub-install /dev/sdx
    
  5. Ahora desea averiguar qué paquetes ha instalado que tienen archivos en el directorio de arranque y reinstalarlos. Esto reemplazará las imágenes del núcleo que se han eliminado, entre otras cosas. El comando para encontrar los paquetes es:

    dpkg -S /boot
    

    Y para reinstalarlos:

    apt-get --reinstall install ...
    

    Donde ...se reemplaza con los nombres de los paquetes del primer comando. No incluya las comas, solo tenga los nombres de los paquetes con espacios para separar.

    Este paso probablemente requerirá acceso a Internet (a menos que los paquetes ya estén en la caché), así que asegúrese de estar conectado si hay un problema.

  6. Como habrá eliminado sus núcleos y reinstalado, esto debería haber desencadenado una actualización GRUB2 automáticamente. Pero en caso de que no lo hayan hecho, puede ejecutar:

    update-grub
    
  7. Reiniciar y las cosas ahora deberían estar arregladas. Un problema que tuve la última vez que hice algo similar fue que las instalaciones de Windows no se encontraban update-grubcuando se ejecutaban chrootdebido a un error os-prober. Si esto es un problema, simplemente sudo update-grubvuelva a ejecutarlo en el sistema reparado.

Graeme
fuente
@ Olivier, gracias que originalmente tenía en /dev/sdaxtodas partes y luego lo cambié a /dev/sdxy.
Graeme
Gracias por la gran información, me salvó, con una adición. Como tengo un RAID de software, también tuve que seguir las instrucciones aquí: help.ubuntu.com/community/Grub2/Installing bajo la reinstalación usando el método chroot para iniciar mdadm y ensamblar los miembros RAID y hacer los montajes en consecuencia. Luego, después de chroot, reinstale los paquetes como se describe en esta respuesta y ¡todo está bien!
bitfiddler