¿Cómo ejecuto update-grub desde un LiveCD?

62

Bien, hice algo estúpido. Estaba tratando de limpiar mis entradas de Grub, y accidentalmente eliminé todos mis núcleos de Linux de Grub (todavía están en el disco duro). Entonces, obviamente, Grub no me da ninguna forma de iniciar Ubuntu; Puedo arrancar en Windows muy bien, pero Ubuntu ni siquiera está en la lista.

Así que solo quiero ejecutar "sudo upgrade-grub" de alguna manera para restaurar Ubuntu en la lista. Puedo arrancar desde un LiveCD, pero una vez allí, ¿cómo ejecuto ese comando? (Por cierto, mi instalación de Ubuntu está en sda5).

Kelley
fuente
Esto funciona perfectamente ... lo hizo hace solo 2 días- opensource-sidh.blogspot.in/2011/06/…
Nirmik
en este hilo quiero señalar, que en 12.10 el comando update-grub no funciona con grub <2.0?! - Yo mismo había estropeado el fin de semana pasado mi instalación de 12.10 (pear OS 7.0.1) con grub-install y luego update-grub no funcionaba - tuve que rescatar con supergrub-CD ...
dschinn1001

Respuestas:

81

Como dice que aparece su gestor de arranque grub, pero el menú está vacío, creo que no necesita reinstalar grub, sino que, como lo solicita, ejecute update-grub. Para lograr esto, puede usar un Live CD, montar las particiones relevantes de su disco duro, hacer un chroot en el directorio montado y ejecutar update-grub, que debería funcionar como si estuviera operando en el disco duro real.

Arranque con su Live CD, seleccionando "Probar Ubuntu sin instalar".

Una vez que se inicia, abra una terminal (ctrl-alt-t) y monte su partición de Ubuntu en / mnt. Supongo que la partición de Ubuntu es / dev / sda5, pero debe determinar esto usted mismo. Avísame si necesitas ayuda para hacer esto:

sudo mount /dev/sda5 /mnt

Luego monte algunos directorios más que se necesitan:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

Además, si tiene una partición de arranque de Ubuntu separada (bastante poco común en estos días, pero puede ser el caso):

sudo mount /dev/sdaX /mnt/boot

¿Cómo puede saber si tiene una partición de arranque?

Una vez que tenga su partición Ubuntu montada, ábrala /mnt/etc/fstab. Si ve una entrada para /boot, observe a qué dispositivo está apuntando ( /dev/sda4¿tal vez?). Este es el que tienes que montar.

Una vez que estén montados, haga chroot para comenzar a usar el directorio montado como la partición raíz:

sudo chroot /mnt

Recibirás un #/aviso. Lo primero que debe hacer es confirmar que está utilizando el /bootdirectorio correcto . Ve /boot/gruby mira los archivos allí. Debería haber un montón de archivos .mod y un archivo grub.cfg. Si el directorio está vacío, no continúe, porque significa que este NO es su bootdirectorio real . Mire arriba para ver cómo determinar si necesita montar un bootdirectorio adicional .

Una vez que haya confirmado que /boot/contiene los archivos correctos, lo que significa que es la ubicación correcta, escriba:

sudo update-grub

Esto debería reconstruir su archivo /boot/grub/grub.cfg con las entradas del menú.

Luego salga del chroot:

exit

En este punto, es posible que desee comprobar que las cosas se actualizaron correctamente. Para esto, cd /mnt/boot/gruby verifique que los archivos de grub estén allí, debe haber un montón de archivos .mod y grub.cfg, este último debe tener entradas para sus núcleos de Ubuntu. Si solo ve grub.cfg y no hay archivos .mod, significa que este NO es el directorio de arranque correcto, mire arriba para saber cómo montar una partición de arranque separada.

Desmontar los sistemas de archivos:

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

Y luego reinicie, con suerte su menú Grub será restaurado.

roadmr
fuente
Cuando intento ejecutar los tres comandos de montaje, obtengo "punto de montaje / mnt / dev no existe" o el correspondiente para cada uno.
Kelley
¿Está su instalación de Ubuntu en / dev / sda5? Si es así, luego sudo mount /dev/sda5 /mntdebería poder cd /mntver el árbol de instalación de Ubuntu allí. Debería tener dev, sys y proc. Si no, tal vez estás montando la partición incorrecta. ¿Puedes comprobar esto? ¡Gracias!
roadmr
Reinicié el LiveCD y esta vez parece estar funcionando. Debí haber escrito algo mal la primera vez, aunque tuve cuidado. De todos modos, estoy reiniciando ahora ... y no, nada ha cambiado. Todavía no hay opción de Ubuntu en el menú Grub.
Kelley
Entonces, para responder a su pregunta, después de ejecutar "sudo mount / dev / sda5 / mnt", y luego "cd / mnt", veo dev, sys y proc.
Kelley
1
Usted señor, es un salvavidas :) Gracias por esto. Trabajado como un encanto.
antes del
14

Arrancar desde un CD en vivo.

Presione Alt+ Ctrl+ Tpara abrir la terminal y ejecutar los siguientes comandos:

sudo mount / dev / sda5 / mnt

Instale el cargador de arranque GRUB2:

sudo grub-install --root-directory = / mnt / dev / sda

Es decir, /dev/sdael disco duro en sí, no la partición de Ubuntu /dev/sda5.

Desmonta la partición de Ubuntu y reinicia la computadora así:

sudo umount / dev / sda5; reinicio de sudo

Si tiene más de un sistema operativo instalado, vuelva a detectar los sistemas operativos de esta manera:

sudo update-grub

¡Eso es!

Basharat Sialvi
fuente
1
marcó la mía para su eliminación - no hay punto en lo mismo dos veces
23 93 26 35 19 57 3 89
Gracias, pero eso no funciona. Reinstala Grub, pero cuando reinicio todavía no se ha actualizado, por lo que mi instalación de Ubuntu todavía no aparece en Grub. De alguna manera necesito actualizar Grub antes de reiniciar, como desde el LiveCD.
Kelley
@Kelley ¿Estás seguro de que la instalación de Ubuntu está en sda5? Puede verificarlo ejecutando sudo fdisk -l. La instalación de Ubuntu tendrá un *after / dev / sdxx.
Basharat Sialvi
Sí, está en sda5. Sin embargo, el * está después de sda2, que es mi partición de Windows (y la última partición en la que he podido iniciar, ya que es la única opción en mi menú Grub).
Kelley
Chroot Por favor, lea otras respuestas.
ish
1

Mi solución a ese problema fue:

  1. descargue supergrub2disk desde http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/
  2. póngalo en el pendrive http://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. arranque la computadora desde pendrive con supergrub2disk
  4. inicia sesión en tu Ubuntu
  5. Obtenga Boot-Repair para Ubuntu desde https://help.ubuntu.com/community/Boot-Repair

Tal vez no sea la solución más rápida, pero para mí fue la más fácil.

jmarceli
fuente
1

Esta solución es exactamente la misma que la respuesta de roadmr, pero es mucho más fácil.

  1. Arrancar en AntiX Live CD.
  2. Menú> Aplicaciones> Herramientas del sistema> Reparación de arranque
  3. Seleccione 'Reparar archivo de configuración de GRUB' (esta opción ejecuta update-grub)
  4. Seleccione la unidad / partición donde reside / boot
  5. Reiniciar cuando haya terminado.

En mi caso particular, 'Reinstalar GRUB Bootloader' me lo arregló. Tengo una configuración de arranque dual de Windows / Linux. Usé Macrium 7 para crear un clon de una unidad en un archivo. Luego restaure ese archivo a una nueva unidad. Después de restaurarlo en la nueva unidad, arrancaría en una pantalla negra con un cursor parpadeante en la esquina superior izquierda .

Jeff Luyet
fuente
-1

¡Gracias por la gran ayuda! Sin embargo, al final nada parecía funcionar, y como tenía una partición separada / doméstica, pude reinstalar Ubuntu sin perder ningún dato. Todavía tengo que reinstalar programas y hacer algunas configuraciones, pero todo parece estar bien en este punto.

Kelley
fuente
1
Me alegra saber que lo resolvió de alguna manera, pero el chrooting debería haber funcionado, y eso, considero la mejor solución.
Mahesh
Si. No sé por qué no funcionó, pero la respuesta fue excelente (y lo voté). Ustedes proporcionaron mucha ayuda, y tal vez las respuestas ayudarán a alguien más a superar este problema.
Kelley