Exponemos dos casos reales y típicos en los ordenadores de hoy día.
Ejemplo 1.
Con restaurador en el mismo equipo
Tenemos un ordenador con la siguiente configuración:
Partición 1, sda1, Windows, con NTFS.
Partición 2, sda2, Datos, con NTFS.
Partición 3, sda3, Windows rescate, con NTFS.
Con Gparted lo dejaremos, por ejemplo, así:
Partición 1, sda1, Windows, con NTFS.
Partición 2, sda2, Linux, con ext3.
Partición 3, sda3, Intercambio, con swap.
Partición 4, sda4, Linux rescate, con ext3.
Tras dejar Windows y Linux como deseamos, con todos los drivers, con todas las instalaciones, configuraciones, optimizaciones, y todas las ...ciones que nos parezcan, vamos a construir una partición de rescate mejor que la que teníamos, pues también soportará nuestra partición Linux.
Instalamos cualquier mini-distribución en la partición de rescate, asegurándonos de que disponemos de las herramientas que vamos a utilizar, por ejemplo, SystemRescueCD o GALPon MiniNo.
SCRIPT_COPIAWIN
#!/bin/bash
mkdir -p /opt/backups
rm /opt/backups/copia_win.00*
rm /opt/backups/*.tmp
partimage --finish=3 -b -z1 -c -o -d save /dev/sda1 /opt/backups/copia_win
SCRIPT_COPIALIN
#!/bin/bash
mkdir -p /opt/backups
rm /opt/backups/copia_lin.00*
rm /opt/backups/*.tmp
partimage --finish=3 -b -z1 -c -o -d save /dev/sda2 /opt/backups/copia_lin
SCRIPT_RESTAURAWIN
#!/bin/bash
partimage --finish=3 -b restore /dev/sda1 /opt/backups/copia_win.000
SCRIPT_RESTAURALIN
#!/bin/bash
partimage --finish=3 -b restore /dev/sda2 /opt/backups/copia_lin.000
Esto es básicamente lo que deben hacer los scripts. Luego podemos añadirles todos los adornos que queramos, mensajes explicando qué se va a hacer, avisos de que se va a sobreescribir una partición, etc...
TRUCO 1.
Añadimos un pequeño menú gráfico con Zenity
operacion=$(zenity --list --text "¿Qué operación desea realizar?" --radiolist --column "Elija" --column "Operación" TRUE "Copia de la partición Windows" FALSE "Copia de la partición Linux" FALSE "Restaurar Windows" FALSE "Restaurar Linux")
case "$operacion" in
"Copia de la partición Windows")
SCRIPT_COPIAWIN ;;
"Copia de la partición Linux")
SCRIPT_COPIALIN ;;
"Restaurar Windows")
SCRIPT_RESTAURAWIN;;
"Restaurar Linux")
SCRIPT_RESTAURALIN;;
esac
TRUCO 2.
Realizamos previamente una simulación de volcado
Otro detalle que se puede incluir es que realice una simulación de volcado antes de hacer el auténtico por si la imagen o el disco están corruptos:
partimage --finish=3 --simulate -b restore /dev/sda1 /opt/backup/copia_win.000
#Comprobamos que terminó correctamente la simulación y en caso afirmativo hacemos el volcado real.
if [ $? -eq 0 ];then
clear;echo "Parece que todo fue bien. Procedemos al volcado..."
sleep 5
partimage --finish=3 -b restore /dev/sda1 /opt/backup/copia_win.000
else
echo "La imagen está corrupta o no se terminó de hacer correctamente."
sleep 5
exit
fi
TRUCO 3.
Copiar o restaurar desde el inicio todo automatizado.
Si ponemos los scripts en el inicio del sistema conseguiremos que sea lo primero que vea el usuario.
Pero además de esto, podemos hacer que el usuario lo único que tenga que hacer sea elegir una entrada del menú de GRUB y sentarse a esperar cómodamente a que su sistema se restaure solo.
El truco está en la línea /proc/cmdline donde se guarda la línea elegida en el GRUB con todos sus parámetros.
Lo que haremos será inventarnos un parámetro "carga" y añadirlo a la línea de GRUB, por ejemplo, una línea típica de grub puede ser esta:
kernel /vmlinuz root=/dev/sda2 ro vga=768 quiet splash
Nosotros añadiremos una como esta:
kernel /vmlinuz root=/dev/sda2 ro vga=768 quiet splash carga=restaurawin
Luego en nuestro script lanzado en el inicio (podría ser incluso en /etc/rc.local antes de cargar las X), analizaríamos dicha línea para conseguir el parámetro que necesitamos:
carga=`cat /proc/cmdline | awk -F 'carga=' '{print $2}' | awk '{print $1}'`
cat lee cmdline
awk toma "carga=" como separador de campos
print $2 toma el segundo campo, toma todo lo que haya a la derecha de "carga="
print $1 es para tomar el primer elemento de lo que haya a la derecha (es solo por precaución)
Y de nuevo usaríamos una estructura "case" para analizar la variable "carga" y actuar en consecuencia...
A modo de ejemplo:
case "$carga" in
'copiawin')
SCRIPT_COPIAWIN;;
'copialin')
SCRIPT_COPIALIN;;
'restaurawin')
SCRIPT_RESTAURAWIN;;
'restauralin')
SCRIPT_RESTAURALIN;;
'reproductor_multimedia')
SCRIPT_LANZA_XBMC
esac
Ejemplo 2.
Con restaurador fuera del equipo, dvd o usb externo
Imagina: metemos nuestro DVD/USB de rescate, encendemos el ordenador y en varios minutos, se restaura nuestro sistema impecable tal y como estaba el día que hicimos la imagen.
En esta ocasión usaremos un pequeño LiveCD llamado SystemRescueCD que ya incluye partimage. Sólo hay que añadir al CD un archivo llamado "autorun", que contendrá un script con los comandos necesarios para hacer la copia o la restauración.
Caso 1.
La imagen la tenemos en el disco duro y queremos que se restaure automáticamente.
1) Creamos un archivo ejecutable llamado autorun, por ejemplo y a modo de idea, con el siguiente contenido:
#!/bin/bash
mkdir /mnt/sda5 ; mount /dev/sda5 /mnt/sda5
partimage --finish=2 -b restore /dev/sda1 /mnt/sda5/copia_win.000
#--finish=2 para que reinicie si todo fue bien -b para que no haga preguntas
2) Grabamos la ISO de SystemRescueCD dejando el CD abierto sin cerrar la sesión y luego incluiremos el archivo autorun en la siguiente sesión (en K3b pulsa en la pestaña de avanzado para seleccionar “iniciar cd multisesión”).
Caso 2.
Las imágenes las tenemos en el DVD/USB y queremos que se restauren automáticamente.
1) Creamos el archivo autorun:
#!/bin/bash
# Restauramos la tabla de particiones
sfdisk --force /dev/hda < tabla
sync; partprobe
partimage --finish=3 -b restore /dev/sda1 /mnt/cdrom/copia_win.000
partimage --finish=2 -b restore /dev/sda2 /mnt/cdrom/copia_lin.000
2) Igual que antes, copiamos todo a un DVD/USB con todos los archivos (imágenes+tabla+autorun) en una segunda sesión.
Si es un DVD, se pueden hacer dos sesiones de manera sencilla en la consola:
1) growisofs -Z /dev/sr0=systemrescue.iso
2) growisofs -M /dev/sr0 copia_win.000 (o si tienes varias imágenes en un directorio: growisofs -M /dev/sr0 /directorio/de/imagenes)
Comments (0)
You don't have permission to comment on this page.