Restaurando el GRUB después de un desastre

Ubuntu

Recientemente se me ocurrió cambiar el tamaño de la partición donde tengo instalado Windows XP para darle más espacio a la partición de Ubuntu y continuar con los experimentos de virtualización de otros SO en Ubuntu. Sin embargo todo fue un desastre, y no tan sólo un desastre, sino un DESASTRE mayúsculo.

Acostumbrado a utilizar Partition Magic en mis desktop procedí a hacer lo mismo en mi Inspiron 640m con booteo dual de Windows XP y Ubuntu 8.04. Partition Magic reinició el laptop para proceder con el reparticionado, pero aparentemente el hecho que tuviera GRUB hizo que Partition Magic colapsara, abortó los cambios y borró la tabla de partición del disco duro y el MBR, quedando éste no booteable… Fantástico.

Obviamente no estaba dispuesto a formatear y perder toda la información, a fin de cuentas el trabajo de formateo y reinstalación de todo iba a ser tanto o más largo que intentar recuperarlo.

Afortunadamente tenía una versión de Hiren’s Boot CD, con lo cual pude reescribir el MBR del disco, posterior a lo cual al menos intentaba bootear en Windows XP hasta presentar una hermosa Pantalla Azul de la muerte, la cual indicaba que el sistema se había detenido pues existía un error grave en el disco. Nuevamente Hiren’s Boot CD al rescate y utilizando la aplicación NTFSDOS pude realizar un CheckDisk con lo cual recuperé la partición de Windows.

Sin embargo lo que me tomó más horas fue la recuperación del GRUB para poder bootear Ubuntu, ya que requiere de varios procesos algo complicados pero no imposible, para lo cual fue imprescindible la información de Ubuntu Documentation.

Primero es necesario disponer de un Live CD de Ubuntu, el cual pueden descargar del sitio de Ubuntu, ponerlo en la unidad y bootear desde el Live CD. Una vez que Ubuntu haya iniciado es necesario abrir una ventana de Terminal y verificar la tabla de particiones de los dispositivos montados.

sudo fdisk -l

Disco /dev/sda: 58.5 GB, 58506416640 bytes
255 cabezas, 63 sectores/pista, 7113 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0x13e813e8

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 1 6 48163+ de Utilidad Dell
/dev/sda2 * 7 4107 32941282+ 7 HPFS/NTFS
/dev/sda3 4108 6720 20988922+ f W95 Ext’d (LBA)
/dev/sda4 6721 7112 3148740 c W95 FAT32 (LBA)
/dev/sda5 4108 6394 18370296 83 Linux
/dev/sda6 6395 6720 2618563+ 82 Linux swap / Solaris

Debido a que Ubuntu booteo desde el Live CD, el sistema detecta la tabla de particiones del disco duro del laptop, pero no está montado, por lo tanto hay que montarlo para lo cual es necesario crear un punto de montaje. Dado que hay varios comandos que deben ser ejecutados como root, pueden usar el comando sudo -i para evitar tener que escribir sudo en cada línea de comando.

En mi caso el disco duro es detectado como /dev/sda por el sistema, la partición de Ubuntu es /dev/sda5 y la partición de intercambio es /dev/sda6. Creamos un directorio de montaje en /mnt/root y montamos /dev/sda5 en el punto de montaje ya indicado con sistema de archivos EXT3.

sudo -i
mkdir /mnt/root
mount -t ext3 /dev/sda5 /mnt/root

Para verificar que realmente montamos la partición adecuada, usamos el comando ls /mnt/root el cual nos debiera mostrar la información recién montada. Si quieren estar más seguros de que efectivamente montaron la partición correcta, pueden utilizar el comando ls /mnt/root/home el cual debiera mostrarles la carpeta personal del usuario principal, que en mi caso es mranderson.

Si tienen creada una partición de booteo puede ser necesario también montar dicha partición, aunque en mi caso el GRUB va copiado en el MBR del disco duro y como no dispongo de una partición de booteo propiamente tal, este paso no fué necesario.

mount -t ext3 /dev/hda1 /mnt/root/boot

Ahora que tenemos montada la partición corresponde reinstalar el GRUB con el comando grub-install, indicando que la partición fué montada en /mnt/root.

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

Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install’.

(hd0) /dev/sda

Eventualmente pueden obtener una advertencia de BIOS, para lo cual deben ejecutar el comando grub-install con la opción –recheck.

sudo grub-install –root-directory=/mnt/root /dev/hda –recheck

Finalmente sólo tenemos que salir del modo root con el comando exit, cerrar el Terminal, reiniciar nuestro sistema y el GRUB volverá a aparecer permitiéndonos bootear nuevamente nuestra partición de Ubuntu sin haber perdido ningún dato, salvo la personalización del GRUB con GFXBoot.

Esto es lo que funcionó para mi, pero tal como indican en Ubuntu Documentation, existe una forma más fácil pero que no he comprobado, utilizando Super Grub Disk, el cual puede ser quemado a un CD, bootean desde CD, seleccionan GRUB => MBR & !LINUX!, luego seleccionan la instalacion de Linux o Grub que quieren restaurar, posterior a lo cual verán el mensaje “SGD has done it!”, reinician y listo.

Por último, reparticioné el disco utilizando GParted Live booteando desde un pendrive USB, con lo cual no hubo nuevos problemas. La verdad es que fué una lección amarga de aprender, con una solución algo dificultosa, pero que finalmente llegó a un buen final.

Links:

5 Responses to “Restaurando el GRUB después de un desastre”


  • Una duda. Yo tengo XP en una laptop de fabrica, pero encuentro que me está quedando chico el disco duro. Hay alguna manera de traspasar el XP a un nuevo disco duro pero dejando el XP original, no colocando versiones crackeadas ni piratas? Saludos.

  • Lo que podrias hacer camelot si quieres es tener un Windows XP USB, onda correrlo desde el pendrive o desde un CD, o borra los archivos que estan de mas en XP, lo dejas como en 300 Mb.

  • Camelot: Para poder traspasar TODO el contenido de un disco duro a otro de mayor capacidad y que el sistema también modifique el tamaño de las particiones, puedes usar Acronis TrueImage, creo que es la única utilidad que hace el trabajo bien.

    En Ubuntu puedes usar Acronis TrueImage Server for Linux, no lo he probado. Por supuesto que el disco nuevo tienes que ponerlo en un cofre USB adecuado ya sea PATA o SATA dependiendo del disco que usa tu laptop. Saludos.

  • dr higueras ruz Chile Windows XP Internet Explorer 7.0

    Colega… Ahora que parte esta semana de 18, voy a instalar Ubuntu en mi PC… Y voy a necesitar de su ayuda. La primera pregunta, puedo tener Vista Starter y Ubuntu en el mismo PC?

  • Dr Higueras Ruz: No hay problema. ¿Quedará en booteo dual con Vista y Ubuntu? Saludos.

Leave a Reply

Licencia de Creative Commons

RSS

  • Subscribe with iTunes
  • Podcast Feed
  • Subscribe to the RSS Feed
  • Subscribe to the comments RSS Feed

Google AdSense

Mi Twitter

Posting tweet...

Powered by Twitter Tools

Mis Apps

Software tracking