¿Cómo puedo reparar el grub? (¿Cómo recuperar Ubuntu después de instalar Windows?)

Instalé Windows 7, que se comió el archivo de arranque de Ubuntu'. Al arrancar el ordenador, ahora va directamente a Windows, sin darme la opción de arrancar Ubuntu.

¿Cómo puedo recuperar Ubuntu?

Solución

Cuando se instala Windows, éste asume que es el único sistema operativo (SO) en la máquina, o al menos no tiene en cuenta a Linux. Así que reemplaza a GRUB con su propio cargador de arranque. Lo que hay que hacer es sustituir el cargador de arranque de Windows por GRUB. He visto varias instrucciones para reemplazar GRUB jugando con los comandos de GRUB o algo así, pero para mí la forma más fácil es simplemente hacer chroot en su instalación y ejecutar update-grub. El chroot es genial porque te permite trabajar en tu instalación real, en lugar de tratar de redirigir las cosas aquí y allá. Es realmente limpio.

Aquí'es cómo:

  1. Arrancar desde el CD en vivo o USB en vivo, en "Try Ubuntu" modo.

  2. Determine el número de la partición principal. sudo fdisk -l, sudo blkid o GParted (que ya debería estar instalado, por defecto, en la sesión en vivo) pueden ayudarte aquí. Voy a asumir en esta respuesta que es /dev/sda2, pero asegúrate de usar el número de partición correcto para tu sistema.

    Si tu partición principal está en un LVM, el dispositivo estará ubicado en /dev/mapper/, más probablemente, /dev/mapper/{volume}--{os}-root donde {volume} es el nombre del volumen LVM y {os} es el sistema operativo. Ejecute ls /dev/mapper para obtener el nombre exacto.

  3. Monte su partición:

     sudo mount /dev/sda2 /mnt #Reemplaza sda2 con la partición del paso 2

    Si tienes particiones separadas /boot, /var o /usr, repite los pasos 2 y 3 para montar estas particiones en /mnt/boot, /mnt/var y /mnt/usr respectivamente. Por ejemplo,

     sudo mount /dev/sdXW /mnt/boot
     sudo mount /dev/sdXY /mnt/var
     sudo mount /dev/sdXZ /mnt/usr

    sustituyendo sdXW, sdXY y sdXZ por los respectivos números de partición.

    1. Montar algunas otras cosas necesarias:

      for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done

  4. Si Ubuntu está instalado en modo EFI (vea esta respuesta si no está seguro), utilice sudo fdisk -l | grep -i efi o GParted para encontrar su partición EFI. Tendrá una etiqueta de EFI. Monte esta partición, sustituyendo sdXY por el número de partición real de su sistema:

     sudo mount /dev/sdXY /mnt/boot/efi
    1. Haga el chroot en su instalación de Ubuntu:

      sudo chroot /mnt

  5. En este punto, estás en tu instalación, no en la sesión en vivo, y ejecutando como root. Actualiza el grub:

     update-grub

    Si obtienes errores o si el paso 7 no ha solucionado tu problema, ve al paso 8. (De lo contrario, es opcional).

  6. Dependiendo de tu situación, puede que tengas que reinstalar el grub:

     grub-install /dev/sda
     update-grub # Para encontrar y añadir windows al menú de grub.
  7. Si Ubuntu está instalado en modo EFI, y el UUID de la partición EFI ha cambiado, es posible que tenga que actualizarlo en /etc/fstab. Compárelo:

     blkid | grep -i efi
     grep -i efi /etc/fstab

    Si el UUID actual de la partición EFI (de blkid) difiere del que aparece en /etc/fstab, actualice /etc/fstab con el UUID actual.

  8. Si todo ha funcionado sin errores, entonces está todo listo:

     salir de
     sudo reboot
  9. En este punto, debería ser capaz de arrancar normalmente.

Si no puede arrancar normalmente, y no hizo el paso 8 porque no había mensajes de error, intente de nuevo con el paso 8.

  • A veces dar a GRUB2 la configuración correcta para sus particiones no es suficiente, y debe instalarlo (o reinstalarlo) en el Registro de Arranque Maestro, lo que hace el paso 8. La experiencia ayudando a los usuarios en el chat ha demostrado que el paso 8 es a veces necesario incluso cuando no se muestran mensajes de error.
Comentarios (20)

Boot-Repair me ha funcionado. Es una aplicación gráfica muy fácil de usar, no es necesario utilizar la línea de comandos, sólo tiene que hacer clic en un botón :)

Todas las opciones de reparación disponibles se describen en la documentación de Ubuntu y hay una página separada que explica cómo iniciar Boot-Repair (creando un disco de arranque o instalándolo en un disco vivo de Ubuntu existente) y cómo utilizarlo.

Sólo tienes que arrancar un CD en vivo de Ubuntu, instalar Boot-Repair y ejecutarlo.

Comentarios (1)

Cuando GRUB se rompe, el usuario generalmente no tiene acceso a los sistemas, por lo que la reparación debe realizarse desde una sesión en vivo (live-CD o live-USB).

Hay muchas causas posibles para que se rompa GRUB: Escritura de Windows en el MBR, DRM que impide que GRUB se instale correctamente, error del instalador, cambio de hardware... Actualizar GRUB como propuso inicialmente Scott no suele ser suficiente, reinstalar GRUB como propone Marco es más eficiente, pero aún así hay varias situaciones que requieren otros ajustes (añadir opciones al kernel, desocultar el menú de GRUB, cambiar las opciones de GRUB, elegir la arquitectura de host adecuada...). Otras dificultades para reparar GRUB es el uso de chroot, y la elección de las particiones / discos adecuados.

Todo esto se ha hecho fácil en una pequeña herramienta gráfica: Boot-Repair. Es se integrará en el CD de Ubuntu 12.04 para facilitar su uso, pero para la gente que lo necesite ahora, ya hay algunas distros que lo integran: Ubuntu-Secured-Remix (CD de Ubuntu que integra Boot-Repair), Boot-Repair-Disk (CD que ejecuta Boot-Repair al inicio), ...

Espero que esto ayude.

Comentarios (0)