Credit image

Recuperar el arranque de Linux

Uno de los principales problemas que suelen tener los usuarios que utilizan linux y windows (en el mismo ordenador), es que si se ven en la necesidad de reinstalar windows, se suelen «cargar el arranque» que hace posible la elección del sistema operativo.

La tarea de estos gestores de arranque, es arrancarse al iniciar el equipo, y mostrar un menú donde el usuario puede elegir el sistema operativo (windows, linux, beos, unix...) que quiere utilizar.

Existen varios gestores como lilo o syslinux, pero sin duda el más utilizado y extendido es el grub, algo similar a esta imagen:

Así, varios sistemas operativos diferentes (o varias versiones iguales) pueden coexistir en el mismo ordenador como sistemas independientes.

Para instalar varios sistemas operativos en un mismo disco, debemos realizar las llamadas particiones en el disco duro, unas divisiones más pequeñas donde instalaremos los diferentes sistemas por separado.

El grub se «activa» en el sector de arranque (MBR) del disco duro (primera zona del disco que se lee), y así, al arrancar el equipo, se lee este sector (que redirige a donde está realmente instalado) para luego iniciar el sistema seleccionado.

He perdido el arranque de Linux


Si tenemos linux instalado en nuestro equipo, e instalamos (o reinstalamos) windows, este último instala su propio cargador en el MBR (en el caso de tener un sólo windows es transparente al usuario), sobreescribiendo por lo tanto, el gestor de arranque grub de linux, y evitando la posibilidad de entrar a los demás sistemas operativos.

Para recuperar el grub sólo tenemos que arrancar desde un live CD de linux como Ubuntu y restaurar el MBR para que vuelva a dirigir a donde está instalado grub.

Recuperar el grub de Linux


Arrancamos desde el live CD de Ubuntu. Vamos al menú Aplicaciones / Accesorios / Terminal para abrir una consola y comenzar. En un live CD no tenemos password de root, así que con escribir sudo su basta para acceder con privilegios de administrador.

Lo primero es conocer la estructura de nuestro disco. Para ello utilizamos el siguiente comando:

fdisk -l

Con él se puede ver la lista de particiones del disco. En linux, los dispositivos físicos (ratón, tarjeta sonido, disco duro, etc...) se almacenan en la carpeta /dev/ (devices).

Los discos duros se suelen denominar /dev/hdaX (IDE) o /dev/sdaX (SATA o USB), donde X es el número de la partición del disco.

Usaremos las columnas dispositivo, inicio y sistema para identificar las particiones.

Si nos fijamos, en nuestro ejemplo, tenemos -entre otras- las siguientes particiones:

  • /dev/sda1: Una partición Compaq diagnostics. La clásica partición para restaurar sistema que utilizan algunas marcas como Acer.
  • /dev/sda2: La partición donde está instalado Windows (marcada como partición de inicio), en este caso con sistema de ficheros FAT32, aunque también puede estar en NTFS.
  • /dev/sda5: La partición donde tenemos instalado linux. No confundir con /dev/sda6, que es la partición swap (intercambio).

La partición que nos interesa es /dev/sda5, pues es donde tenemos instalado nuestro linux. Nos dirigimos al directorio /media/, que es donde se suelen montar las particiones, y creamos el directorio linux:

cd /media/
mkdir linux

Una vez creado, montamos la partición linux del disco duro en ese directorio, especificando el sistema de ficheros ext2 (el más usual, aunque no el único):

mount -t ext2 /dev/sda5 /media/linux

Hay que tener en cuenta que actualmente estamos trabajando sobre un linux live (en CD), la idea es montar el linux del disco duro y comenzar a utilizar su estructura, en lugar del linux de CD (actual).

Pero aún nos falta tener en cuenta una cosa: Las rutas /dev/ (dispositivos físicos) y /proc/ (información del kernel, sistema, etc...) se montan una sola vez al iniciar el sistema (montado en la estructura del CD), necesitamos montarlo ahora en la partición linux del disco duro.

mount -t proc none /media/linux/proc
mount -o bind /dev /media/linux/dev

Con esto, montamos la ruta /proc/ y la ruta /dev/ (con bind, hacemos un montaje de un directorio ya existente y montado). Ahora sólo queda establecer el linux del disco duro como raiz con chroot:

chroot /media/linux

Perfecto. La estructura actual es ahora la del disco duro en lugar de la del CD. Ahora sólo falta reestructurar el grub, así que entramos en su entorno de control:

grub
find /boot/grub/stage1

Al buscar el fichero /boot/grub/stage1, nos devuelve algo similar a esto: (hdA,B), donde A es el disco duro (en el caso de tener varios) y B es la partición.

root (hdA,B)
setup (hdA)
quit

Al realizar estos pasos, hemos reestablecido el grub como gestor de arranque.

En el caso de que al seleccionar un sistema operativo en el menú del grub, nos de un error, nos quedaría modificar el menú (/boot/grub/menu.lst) para cambiar las particiones que están mal configuradas.

Escrito por Manz, el , en linux. Comentarios recibidos: 12.

12 comentarios de lectores
Alfonso
Alfonso
1

Yo cuando reinstalo Windows y se carga el MBR hago lo siguiente: Arranco con un CD live o USB live y montar la partición que contiene el arranque mount /dev/hdXX /mnt Después ejecuto grub-install que me reinstala el grub. grub-install --root-directory=/mnt /dev/hdXX Y finalmente reinicio, no sin antes modificar /boot/grub/menu.lst si se desea cambiar algo o incluir Windor en la lista de opciones de arranque.

Jose
Jose
2

Otra opción sería usar el super grub disk :wink:

Manz
Manz
3

@Alfonso: Buena puntualización. El comando grub-install puede ser una buena y sencilla forma de restaurarlo, sin embargo, en algunos casos puede dar problemas con el montado de dispositivos /dev o /proc. Aplicaciones como super grub disk -que comenta Jose- o wingrub o grub4dos pueden realizar esta tarea desde un software adicional.

Capsule2
Capsule2
4

Estoy con Jose. Super Grub Disk es de lo mejor que he usado ;)

Stick Boy
Stick Boy
5

Ah, sí, pero al final en el momento crítico nadie tiene el maldito Super Grub Disk, o está rayado, o... yo me guardo el apunte por si acaso, que formas de cargarse el sistema hay muchas pero de recuperarlo no tantas...

geaman
geaman
6

Buen post. El próximo que sea para sistemas Mac (OS X). No veas la de gente que anda perdida con el Dual Boot Win - OS X y los problemas que ello deriva. Saludos.

Brayan Habid
Brayan Habid
7

me uno a la del super grub disk ... lo llevo en el mismo sobre que ubuntu, por si acaso.

Sanbor
Sanbor
8

Los temerarios tambien pueden intentar cargar linux desde el gestor de arranque de Windows http://oreilly.com/pub/h/2337

Rosenberg
Rosenberg
9

utilicen supergrub solo grabenlo y escogen la opcion a arrancar sin tanto lio y sin saber nada de programacion o commando, etc http://supergrub.forjamari.linex.org/?section=download

Seichi Nakayama
Seichi Nakayama
10

yo tengo un disco particionado, uno tiene WinVista Ultimate y el otro Linux Mint9, me compre una Toshiba X02T (tg01 enotros lados ), y no puedo instalar nada, me pide el activesybc y el vista no funca, quiero instalar el WinXP en vez del vista, pero se vaa ir a la merd el grub, vere eso a ver que pasa

pepe
pepe
11

hola seichi, te sugiero que hagas una copia de seguridad del gestor de arranque en este caso usas grub y lo almacenes en un dispositivo, luego formatees la particion que contiene windows vista e instales windows xp, esto solo te volvera a cargar el ntldr en mbr y el gestor de arranque boot.ini, como te interesa cargar linux , tienes que indicarle en el cd de instalacion de linux que te vuelva a instalar el grub en la primera particion activa y luego sobreescribirlo con tu grub original.Saludos

potrilium
potrilium
12

buenos dias mzeta muy bueno lo que postiaste sobre los aranques , tenia un problemita con ubuntu 9.04 y pude resolver mi problema soy de venezuela y voy agregar tu direcfcion en mi blog para que mis amigos tengan conocimiento de ti y te visiten feliz dia y gracias por tu gran ayuda.

Publica tu opinión

Si lo deseas, puedes utilizar el siguiente formulario para publicar tu opinión o responder a alguna de las existentes:

Previsualización

Aquí se previsualizará su comentario. Revise que sea correcto antes de publicarlo.