Inicio arrow Artículos arrow Linux arrow Restauración del gestor de arranque GRUB
Menú Principal
Lo más leído
Consigue Firefox
Usuarios
993 registrados
1 hoy
5 esta semana
138 este mes
Último: gabity...
Formulario de acceso



... Regenerar clave
... Registro
Restauración del gestor de arranque GRUB Imprimir E-Mail
viernes, 24 de marzo de 2006

Ocurre con alguna facilidad que, tras haber realizado determinadas tareas de administración en nuestro sistema, el gestor de arranque GRUB deja de ser funcional. Ya sea por haber instalado otro sistema operativo en aguna otra partición de nuestro disco, por haber actualizado las tablas de particiones o, simplemente, porque el sector de arranque de nuestro disco se ha corrompido, GRUB ya no existe o nuestro sistema linux ni siquiera empieza la carga del núcleo. Veremos en este artículo cómo rehacer el sector de inicio de nuestro disco de arranque para que el gestor GRUB vuelva a funcionar o se convierta en el gestor predeterminado.

Empezando con la recuperación

Si nuestro disco duro no ha sufrido daños físicos graves, la recuperación del sector de arranque para la inclusión de GRUB suele ser una tarea relativamente sencilla. De hecho no es muy complicado que, sobre todo cuando sistemas operativos Windows "conviven" con distribuciones linux en el mismo disco duro, el sector de arranque (MBR) se vea comprometido en más ocasiones de las que querríamos desear. Virus, actualizaciones de Windows, reinstalaciones o fallos de escritura pueden modificar o borrar por completo el sector de arranque dejando nuestro disco duro en un estado no deseado.
Para solucionar este problema, GRUB dispone de las herramientas necesarias para devolver al sector de arranque la configuración deseada. Para ello, necesitaremos arrancar el sistema con alguna herramiente que nos permita el acceso a nuestras particiones de linux, lo cual se consigue con la introducción del primer CD de casi cualquier distribución, eligiendo la opción de rescate o de arranque "en vivo". Por ejemplo, en las distribuciones de Fedora Core, la opción suele ser escribir "linux rescue" durante la primera pantalla de instalación. El programa de instalación nos dará incluso la opción de montar las particiones existentes sobre los discos duros disponibles, cosa que nos ayudará bastante a la hora de acceder a nuestros datos y comprobar que todo sigue en su sitio.

Una vez arrancado nuestro sistema, y si el programa de instalación no lo ha hecho ya, habremos de montar sobre el sistema de ficheros aquella partición sobre la cual arrancábamos nuestro sistema con GRUB, pero ¿Y si no recordamos cuál era? En este caso, usaremos la herramienta fdisk para tratar de averiguar qué partición es la que buscamos, por lo que escribiremos lo siguiente en una consola:

# fdisk -l

Esta orden listará por pantalla información sobre los discos y particiones que existen en nuestro ordenador. El listado puede quedar más o menos así:

Disco /dev/hda: 80.0 GB, 80026361856 bytes
255 cabezas, 63 sectores/pista, 9729 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hda1 * 1 3365 27029331 83 Linux
/dev/hda2 3366 8587 41945715 83 Linux
/dev/hda3 8588 9631 8385930 83 Linux
/dev/hda4 9632 9729 787185 5 Extendida
/dev/hda5 9632 9729 787153+ 82 Linux swap / Solaris

Disco /dev/hdb: 60.0 GB, 60022480896 bytes
255 cabezas, 63 sectores/pista, 7297 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/hdb1 * 1 3264 26218048+ 83 Linux
/dev/hdb2 3265 7297 32395072+ 83 Linux

Lo más habitual es que la partición de arranque sea aquella que se corresponde con el primer disco (hda) y está marcada con un asterisco (*). En el listado anterior, la partición de arranque sería /dev/hda1.

Seguidamente, y recordando que hacemos esto sólo en el caso de que el programa de instalación no haya montado ya las particiones, crearemos un directorio sobre el cual montaremos posteriormente nuestra raiz de directorios (/):

# mkdir /sysimage
# mount -t ext3 /dev/hda1 /sysimage

Con esto habremos montado el sistema de ficheros raiz sobre el directorio /sysimage.

Si el sistema de rescate que hemos ejecutado desde el CD de instalación nos lo permite, ejecutaremos el comando grub sobre la consola y pasaremos al siguinte punto. En caso contrario, tendremos que funcionar sobre nuestro sistema de ficheros como si fuese el real. Esto se consigue mediante el comando chroot:

#chroot /sysimage

Con el sistema de ficheros montado con chroot, ya tendremos acceso al programa grub, que habitualmente se encuentra bajo el directorio /sbin. También hay que tener en cuenta que, si en alguna de las otras particiones tenemos montadas ramas del sistema necesarias para la ejecución de grub (como puede ser el propio /sbin o la rama /etc), estas habrán de ser montadas de la misma forma que montamos la partición raiz.

Dentro de grub

El acceso al programa grub se consigue de una forma muy simple:

#grub

Con lo que obtenemos una salida similar a esta:

GNU GRUB version 0.95 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]

grub>

Para grub, la referencia a las particiones y a los discos se hace de forma algo distinta a como estamos acostumbrados. Así, si nuestro sistema de ficheros raíz se encuentra en /dev/hda1, para grub se encontrará en (hd0,0): disco maestro primario, primera partición.

Una vez dentro del intérprete de comandos grub, tendremos que localizar dónde se encuentran los ficheros de configuración del gestor de arranque, lo cual se consigue mediante el siguiente comando:

grub> find /boot/grub/stage1
(hd0,0)

Si la partición /boot no forma parte de la partición raíz (/) y los ficheros de GRUB están situados en /boot/grub, es probable que find no pueda saber dónde se encuentran los ficheros, así que utilizaremos el comando como find /grub/stage1 si lo primero falla.
Seguidamente, se establece el sistema de arranque sobre la unidad devuelta por el comando find:

grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83

Y finalmente instalaremos GRUB sobre la partición de arranque, en este caso sobre el primer disco (hd0):

grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2
/boot/grub/grub.conf"... succeeded
Done.

Con el comando quit saldremos del intérprete de comandos grub y ya podremos reiniciar el sistema y comprobar que todo ha salido como esperábamos.

Posteriormente, podremos realizar cambios al menú de GRUB modificando el fichero /boot/grub/menu.lst o el fichero de configuración /etc/grub.conf.

 

Comentario[s]
Excelente!!
Escrito por Jotaruiz30 el 2007-07-07 09:52:32
No se quien escribio este articulo pero les digo que es excenlente. Son las 3 a.m. y con la buena explicacion que se da me salvo la patria y tengo mi pc funcionando y arranca ya en linux o windows. 
Gracias al que lo escribio.
Muy Buena Explicación
Escrito por jose____ el 2008-06-25 16:48:13
De verdad que el artículo es de grandísima ayuda. Con solo seguir los pasos indicados solucioné mi problema en una sola leida.  
 
Gracias a quien lo haya escrito.

Sólo los usuarios registrados pueden escribir comentarios.
Por favor, valídate o regístrate.

Powered by AkoComment 2.0!

 
< Anterior   Siguiente >