Vamos a ver que ocurre cuando se elimina el sector de arranque del disco y como se puede recuperar para poder seguir usando el PC. El sector de arranque según la Wikipedia es:
Un bloque de arranque (a veces llamado sector de arranque o MBR) es un sector en un disco duro, disquete, o cualquier otro dispositivo de almacenamiento de datos que contiene código de arranque, por lo general (pero no necesariamente), de un sistema operativo almacenado en otros sectores del disco.
El sector de arranque en PC ocupa los primero 512 bytes del disco (incluyendo la tabla de particiones). Cuando no hay nada ahí el sistema no sabe como iniciar y puede quedar en un estado indeterminado, por ejemplo un cursor parpadeando o un mensaje indicando que se introduzca algún dispositivo de arranque.
Para borrar esta parte del disco vamos a arrancar con un LiveCD e introducir el siguiente comando:
dd if=/dev/zero of=/dev/hda bs=446 count=1
Cuando ahora tratemos de arrancar el sistema veremos lo siguiente:
FATAL: No bootable medium found! System halted.
Indicando que no hay ningún medio para arrancar.
Si queremos borrar el MBR completo tomaríamos los 512 bytes.
dd if=/dev/zero of=/dev/hda bs=512 count=1
Para ambos casos sustituir hda por el dispositivo adecuado.
Ahora vamos a recuperar el GRUB volviéndolo a instalar en el sector de arranque.
Lo primero será volver a arrancar la máquina con el LiveCD.
Una vez arrancada, miramos la tabla de particiones para saber que discos están en el sistema.
trk ~ # fdisk -l Disk /dev/hda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/hda1 * 1 991 7960176 83 Linux /dev/hda2 992 1044 425722+ 82 Linux swap / Solaris
Vemos una tabla simple con una partición del sistema y otra para swap. Tenemos que acceder a los datos del sistema para eso vamos a hacer chroot. La razón es que tenemos que ejecutar la instalación de grub desde dentro del sistema ya que es ahí donde se encuentra toda la información necesaria para llevarla a cabo.
En primer lugar vamos a crear un directorio de trabajo.
# mkdir linux
Vamos a montar la partición del sistema sobre este directorio de trabajo.
# mount /dev/hda1 /root/linux
Ahora vamos a montar los pseudos sistemas de ficheros /dev y /proc para poder hacer chroot.
# mount -t proc none /root/linux/proc # mount --rbind /dev /root/linux/dev
Ahora podemos hacer chroot, hay que tener en cuenta que si el LiveCD es de 32 bits sólo podremos hacer chroot a sistemas de 32 bits y viceversa, sistemas de 64 bits con 64 bits.
# chroot /root/linux /bin/bash
Cambiará el PS1 de la consola que será la primera señal de que estamos en otro sistema. Aparecemos sobre la raíz del sistema. Podemos en este punto cargar nuestro .bashrc haciendo lo siguiente.
# source /root/.bashrc
Pero es opcional y casi que no merece la pena.
Ahora vamos a ejecutar el comando que nos restaurará Grub en el MBR.
# grub-install /dev/hda
Veremos la siguiente salida.
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'. # this device map was generated by anaconda (hd0) /dev/hda
Este sistema es una CentOS así que la salida que veais puede variar en otras distribuciones. La primera línea es la que indica que la instalación ha sido correcta, la segunda es un pequeño informe con el mapeo de dispositivos.
Concluida la instalación salimos de la sesión de chroot y desmontamos la partición.
# exit # umount /root/linux
Los psudos sistemas de ficheros no se pueden desmontar porque están asociados al sistema del LiveCD, es decir, están en uso.
Ya podemos reiniciar a nuestro sistema.
# reboot
Herramientas
Como viene siendo habitual, todo a sido probado y comprobado sobre una CentOS 5.3 y Ubuntu 11.04 en máquinas virtuales de VirtualBox y el CD de rescate el gran TRK 3.4 build 367.













Recent Comments
(15 weeks ago)
(28 weeks ago)
(44 weeks ago)
(44 weeks ago)
(46 weeks ago)
(46 weeks ago)
(48 weeks ago)
(48 weeks ago)
(48 weeks ago)
(48 weeks ago)