miércoles, 28 de julio de 2010

Copia de seguridad de la configuración del Grub2

Resumiendo, para usar una copia de seguridad de la configuración del  grub2 hay que copiar/restaurar estos tres elementos:
- el archivo /etc/default/grub
- el directorio /etc/grub.d/ ( y todos los archivos - scripts - que contiene )
- y el archivo /boot/grub/grub.cfg .
Puedes copiarlos en donde consideres oportuno para tenerlos a mano por si te hacen falta en algún momento.

Pero esto no sirve para recuperar el grub2 que se haya perdido, ( eso es otro tema   http://hatteras-blog.blogspot.com.es/2010/08/recuperar-el-grub2.html ) sino que esto sirve para, una vez restaurado el grub2, volverlo a tener como lo teníamos antes del desastre.

Con el comando ejecutado en la terminal:
sudo tar zcvf grub2_`date +%d-%B-%Y-%H-hora-%M-minutos`.tar /etc/default/grub /etc/grub.d/  /boot/grub/grub.cfg
se crea un archivo comprimido grub2_fecha.tar ( por ejemplo: grub2_06-febrero-2011-02-hora-07-minutos.tar  ) con el contenido de los archivos y directorios  arriba indicados.

Con solo eso ya podríamos dar por terminado el tema, y si no te interesa saber mas, ni el porque de tener que copiar esos tres elementos no hace falta que sigas leyendo, pero si quieres saber algo mas, continua...

---------------------

Así como la configuración del antiguo grub se guardaba en este único archivo ( /boot/grub/menu.lst) la configuración del grub2 se guarda en varios archivos que se encuentran en tres lugares principales:

1- archivo /boot/grub/grub.cfg - Este es el principal archivo de configuración que reemplaza a menu.lst.
A diferencia de menu.lst, este archivo no se debe editar a mano; si lo abres con gedit, él mismo te lo advierte:

# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub

es decir, traducido:

# NO editar este archivo
#
# Se genera automáticamente por /usr/ sbin/grub-mkconfig usando plantillas
# de /etc/grub.d y la configuración de /etc/default/grub



2- directorio /etc/grub.d/ - Este directorio contiene scripts del nuevo grub2. Estos scripts son bloques de construcción de los que nace el archivo de grub.cfg. Cuando se ejecuta el comando de grub2 (update-grub) , los guiones se leen en una cierta secuencia y se crea grub.cfg .

Los scripts que contiene, entre otros, son:
00_header es el script que carga la configuración de GRUB en / etc / default / grub, incluyendo tiempo de espera, la entrada de arranque por defecto, y otros
05_debian_theme define el fondo, los colores y temas. El nombre de este script  seguramente cambiara en otras distribuciones cuando adopten el grub2.
10_linux se encarga del kernel de linux en la partición principal.
20_memtest86+ carga la utilidad memtest86+
30_os-prober es el guión que analizará los discos duros para otros sistemas operativos y añadirlas al menú de arranque.
40_custom es una plantilla que puede utilizar para crear entradas adicionales que se añadirán al menú de arranque.

3- archivo /etc/default/grub - Este archivo contiene los ajustes de menú de grub2 que son leídos por las secuencias de comandos de grub2  y escrita en grub.cfg. El directorio /etc/default/ contiene muchos otros archivos no relacionados con el grub2, no se emplea únicamente para el grub2.

--------------------------

El archivo /etc/default/grub contiene la personalización del grub2; el directorio /etc/grub.d/ tiene scripts que contienen la información del menú grub2 y el sistema operativo scripts de arranque.
Cuando se ejecuta el comando update-grub, se lee el contenido del archivo de arranque y los scripts de /etc/grub.d/ , y se acaba el proceso creandose el archivo grub.cfg.

Una vez comprendido esto, ya sabemos que no basta con hacer una copia de seguridad del archivo /boot/grub/grub.cfg ya que si no tenemos también el /etc/default/grub y  el /etc/grub.d/ de forma adecuada, al ejecutar update-grub se creará un archivo /boot/grub/grub.cfg distinto al que habíamos recuperado desde la copia de seguridad.

———————–

3 comentarios:

  1. Es exactamente lo que buscaba. MUCHAS GRACIAS.
    Sólo creo que podrías completarlo añadiendo el comando completo "tar -x" para restaurar en caso necesario.

    Otra pregunta: tenía instalado guadalinex en el notebook de mi hijo que le dieron en el cole (/dev/sda1). Posteriormente instalé linux mint nadia en /dev/sda3 y conviven perfectamente los dos, pero ¿qué archivos y carpetas de los que mencionas debo copiar, los de /dev/sda1 (boot) o los de /dev/sda3?

    Y ya puestos, otra: en caso de necesitar regenerar el arranque tras instalar Windows 7, ¿lo hago montando /dev/sda1 o montando /dev/sda3 antes de ejecutar #grub2-install y #grub2-mkconfig? A lo mejor es indiferente ya que se supone que este último comando detecta los sistemas operativos instalados.

    Gracias sinceras y un saludo.

    ResponderEliminar
  2. Jose Ignacio:
    Para recuperar el grub2 leete el tema http://hatteras.wordpress.com/2010/08/03/recuperar-el-grub2/
    De los métodos que se proponen el que mas me gusta es el de usar super-grub-disk

    El grub2 que tienes que recuperar, tanto si se estropea el arranque de linux, como si tienes que recuperarlo tras reinstalar windows, es el de el último sistema linux que instalaste, en tu caso parece ser que es el Mint, en /dev/sda3

    ResponderEliminar
  3. Muchas gracias.

    Leeré el tema.

    ResponderEliminar

A la vez que haces un comentario, por favor da una puntuación al tema: malo, normal, bueno o muy bueno.
Gracias.