Al instalar/reinstalar Windows en un sistema que utiliza dual-boot con GRUB 2, éste sobrescribirá el sector de arranque (MBR, Master Boot Record) y se perderá el acceso a GRUB 2, por lo que ya no podremos volver a iniciar otros sistemas operativos. Este artículo explica cómo recuperar GRUB 2 utilizando un Live CD/DVD de Ubuntu o Linux Mint (o cualquier Live CD/DVD de alguna distribución que utilice GRUB 2).
Seguramente la mayoría disponemos de una copia en CD o DVD de la distribución instalada en el sistema. A modo de ejemplo, utilizo un Live CD Linux Mint 15.
Manos a la obra
Reiniciar el sistema e iniciar desde el Live CD (es necesario configurar la BIOS del sistema para que permita iniciar desde un medio óptico).
Una vez iniciado el Live CD, abrir una terminal y cambiar a superusuario (root
):
mint@mint ~ $ sudo su
Obtener información de particionado de discos:
mint mint # fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x000bbc48 Device Boot Start End Blocks Id System /dev/sda1 2048 3999743 1998848 83 Linux /dev/sda2 4001790 532000767 263999489 5 Extended Partition 2 does not start on physical sector boundary. /dev/sda3 * 532000768 532205567 102400 7 HPFS/NTFS/exFAT /dev/sda4 532205568 615886847 41840640 7 HPFS/NTFS/exFAT /dev/sda5 4001792 63999999 29999104 83 Linux /dev/sda6 64002048 124000255 29999104 83 Linux /dev/sda7 124002304 131999743 3998720 82 Linux swap / Solaris /dev/sda8 132001792 532000767 199999488 83 Linux
Determinar qué particiones corresponden con el sistema GNU/Linux (son las que indican "Linux" en la columna "System"). En este ejemplo /dev/sda1
corresponde con /boot
, /dev/sda5
corresponde con /
y /dev/sda6
con /home
.
Montar el sistema de archivos raíz (/
) en el directorio /mnt
:
mint mint # mount /dev/sda5 /mnt/ mint mint # ls /mnt/ bin dev initrd.img lib64 mnt root selinux tmp vmlinuz boot etc initrd.img.old lost+found opt run srv usr data home lib media proc sbin sys var
Montar /boot
(en aquellos casos en los que se encuentre en una partición separada, de lo contrario saltar este paso):
mint mint # mount /dev/sda1 /mnt/boot/ mint mint # ls /mnt/boot/ abi-3.8.0-19-generic memtest86+.bin config-3.8.0-19-generic memtest86+_multiboot.bin grub System.map-3.8.0-19-generic initrd.img-3.8.0-19-generic vmlinuz-3.8.0-19-generic lost+found
Montar los sistemas de archivos /dev
y /proc
:
mint mint # mount --bind /dev /mnt/dev/ mint mint # mount --bind /proc /mnt/proc/
Cambiar el directorio raíz actual a /mnt
para reinstalar GRUB como si estuviéramos ejecutando en el sistema destino:
mint mint # chroot /mnt
Instalar GRUB en el MBR:
mint / # grub-install --recheck /dev/sda Installation finished. No error reported.
Salir de chroot
y reiniciar el sistema:
mint / # exit exit
Finalmente reiniciar el sistema, iniciar GNU/Linux y actualizar GRUB para que detecte el nuevo sistema Windows instalado:
$ sudo update-grub2
En el siguiente reinicio tendremos la opción de iniciar GNU/Linux o Windows.