El caso es que no paran de llegar búsquedas de algo que no está explicado en este blog, así que vamos a ello.
Te acabas de cargar grub por la razón que sea: has actualizado a una versión que no arranca, has reinstalado windows, has borrado tu MBR porque te aburrías, querías saber para qué servía dd, … Aquí tienes tu solución.
A día de hoy me parece que los cds de Ubuntu llevan un “restaurador de grubs” y existen cosas molonas como Super Grub Disk pero será que estoy chapado a la antigua así que yo sigo fiel a usar un livecd (o un usb arrancable) y una shell.
Lo primero será hacernos con un livecd. Si el sistema instalado es de 32bits arranca con uno de 32bits y si es de 64bits con uno de 64bits o en uno de los pasos cascará el tema.
Paso 1: Arrancar
Arrancamos: configura la bios para arrancar de donde toca y arranca apretando el botoncito de power on. En cuanto esté el sistema arrancado abre una shell de root.
Paso 2: Montar
Lo primero es montar nuestro sistema dentro del árbol de directorios del sistema live.
Creamos una carpeta que será ‘raíz’
# mkdir /mnt/caca
Seguramente ya conoceremos cuales son nuestras particiones pero si no podemos usar fdisk para verlas
# fdisk /dev/sda
Suponiendo un caso sencillo y común: sda5 es “/boot”, sda6 es swap, sda7 “/” y sda8 “/home”. Montamos las particiones
# mount /dev/sda7 /mnt/caca
# mount /dev/sda5 /mnt/caca/boot
# mount /dev/sda8 /mnt/caca/home
Swap no hace falta montarla y en realidad /home tampoco pero bueno.
Ahora tenemos que ‘duplicar’ /dev porque es un directorio que se rellena dinámicamente en el arranque gracias a udev y si el sistema a recuperar no ha arrancado… pues puede no haber nada. Cogemos el generado por el livecd.
# mount -o bind /dev /mnt/caca/dev
Y por último montamos /proc que es, de una manera rápida y cerda, donde el sistema tiene información sobre sí mismo.
# mount -t proc none /mnt/caca/proc
Si quieres tener internet y no tienes las DNS configuradas quizá quieras copiar las DNS del livecd.
# cp /etc/resolv.conf /mnt/caca/etc/resolv.conf
Paso 3: Acceder al sistema
Ahora vamos a hacer un chroot y hacer que la nueva raíz del sistema sea /mnt/caca.
# chroot /mnt/caca /bin/bash
Ahora estamos dentro del sistema que queremos recuperar, lo propio sería actualizar lo primero las variables de entorno y esas cosas para asegurarnos que las cosas no fallen. En Gentoo se haría:
# env-update && source /etc/profile
Ahora vamos a modificar el mtab con los montajes del sistema:
# cat /proc/mounts | grep -v rootfs > /etc/mtab
Paso 4: Arreglar
Si hemos puesto una versión de grub que falla, cambiamos a la versión anterior X, en Gentoo:
# emerge =grub-XX
Para el resto de casos simplemente lo reinstalamos en el MBR
# grub-install /dev/sda
Si grub-install te falla, lo puedes hacer a mano ejecutando grub y luego en la shell de grub (siendo root el sitio donde está grub, es decir /boot)
grub> root (hd4,0)
grub> setup (hd0)
grub> quit
Paso 5: Reiniciar
Ya lo tenemos recuperado así que ahora toca salir del chroot con exit, desmontar todas las particiones, reiniciar, quita el livecd y s’acabó!
No hace falta decir que en el caso de que cambiáramos de kernel, fallara y no tuviéramos otro para arrancar podríamos hacer el mismo proceso para acceder al sistema, recompilarlo e instalarlo.
–
Fuente original en http://vierito.es/wordpress

5 responses so far ↓
1 kuasar
// Sep 28, 2008 at 10:50 pm
Esto está mu bien tenerlo aquí de tan fácil acceso. Siempre pregunta alguien en los cursos de Linux, y yo nunca he tenido que hacerlo.
2 mageles
// Sep 29, 2008 at 10:10 am
Gracias a Dios no he tenido que hacerlo nunca, pero entre esto y la docu del curso de Linux Básico espero poder salir del paso si me hace falta algún día
3 carrie
// Sep 29, 2008 at 5:11 pm
El 100% de tus lectores que han comentado el post no lo han tenido q hacer nunca.
Además el 100% de los mismos son mujeres.
Conclusión: Si tienes tetas no tendrás q reinstalar el grub.
Gracias por el post vai, parece útil.
PD: Avisaré a mazcu de q no se le va a joder el grub nunca
4 vierito5
// Sep 29, 2008 at 11:17 pm
@kuasar: el siguiente post testdisk!!
Ahora cuando vengan con el problema en los cursos de linux los redireccionáis aquí jeje.
@carrie: se confirma la regla! yo no tengo tetas, por ahora, y más de una vez me ha tocado para cambiar la versión de grub y un huevo para arreglarle el arranque a la gente. Mazcu puede estar tranquilo.
5 Testdisk | It should work...
// Sep 30, 2008 at 2:43 pm
[...] RSS ← [HOW TO] Cómo recuperar GRUB [...]
Leave a Comment