
PartImage restaurando una imagen de disco
Muchos equipos nuevos se suministran con una imagen de restauración o con una partición oculta que nos permite reinstalar el sistema y dejarlo como cuando lo compramos. Pero el problema es que siempre se incluyen muchos programas que no nos interesan y además no se permite actualizar el contenido de esa imagen, para así permitirnos perder menos tiempo la próxima vez que nos interese restaurarla y tenerla lista para funcionar en un tiempo menor. En esta guía explicaremos como crear una imagen de Windows XP con formato NTFS, ya que PartImage todavía no tiene soporte para EXT4, a pesar de que para el resto de sistemas de ficheros soportados la explicación es la misma teniendo en cuenta los cambios que comento al final.
Este artículo es la tercera parte de:
Como restaurar fácilmente una partición con PartImage (Parte 1)
Como restaurar fácilmente una partición con PartImage (Parte 2)
Como restaurar fácilmente una partición con PartImage (Parte 3)
Anotaciones finales:
Estos scripts son de elaboración propia, y por tanto, hechos a medida para mis necesidades, pero he intentado dejarlos con los comentarios suficientes para que podáis modificarlos más fácilmente y usando variables PARTITION para indicar la partición a restaurar y DISP_PARTITION para indicar a que dispositivo hace referencia.
En mi script el valor para DISP_PARTITION puede observarse que se obtiene automáticamente, ya que la partición a restaurar cumple 2 características, es NTFS y esta marcada como bootable y con ese comando se obtiene ese tipo de partición, pero tal como se puede ver en la captura de pantalla de GParted, ese valor es /dev/sda2 en mi caso y podría poner ese valor directamente en lugar de obtenerlo automáticamente. Esto lo explico por si queréis utilizar el mismo script para restaurar una partición de GNU/Linux (OJO con el tipo de formato de la partición) y así esta misma explicación, sería reutilizable para hacer la imagen de disco de cualquier otra partición soportada por PartImage.
Alternativas: Clonezilla + Howto Backup/Restore Hard Drives And Partitions With CloneZilla Live
Útil para realizar imágenes de disco y restaurarlas desde particiones, disco duros externos o en red en formato LiveCD disponible con interfaz en español. Ver cappturas de pantalla.
Complemento para administradores de sistemas: Cómo utilizar la herramienta Sysprep.exe para automatizar la correcta implementación de Windows XP
Explicación para utilizar una imagen de disco para poderla utilizar en equipos con hardware diferente (útil para aprovechar la misma imagen en equipos con hardware diferentes, o por sí algún día existe la necesidad de cambiar alguna pieza y que Windows XP no deje de arrancar por que considere que se esta usando esta imagen con un equipo nuevo). Esta explicación debería realizarse antes del paso 5 de la presente guía.



Para aquellos que no les funciono el procedimiento Arriba descrito les paso una modificacion de como me funciono a mi en 9.04 y 9.10:
1.En este punto es cuando instalaremos PartImage, GParted:
sudo apt-get install partimage parted
en caso de instalar el paquete .deb manualmente
sudo dpkg -i partimage_0.6.7-1_i386.deb
2. Añadiremos el script necesario para la restauración de imagen y creación de imagen:
Antes que todo debemos verificar donde estan montadas las particiones de windows para esto utilizar el comando:
sudo fdisk -l
Device Boot Start End Blocks Id System
/dev/sda1 1 8682 69738133+ 83 Linux
/dev/sda2 * 8683 8695 102400 7 HPFS/NTFS
/dev/sda3 8695 13397 37770337 7 HPFS/NTFS
/dev/sda4 17092 17820 5855692+ 5 Extended
/dev/sda5 17092 17820 5855661 82 Linux swap / Solaris
En este caso nos interesa sda2 y sda3 porque son NTFS
Ver donde estan montadas ambas particiones ejecutar el comando:
df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 102396 24916 77480 25% /media/System Reserved
/dev/sda3 37770332 11069148 26701184 30% /media/disk
Tomando en cuenta los datos de arriba crear un archivo con el nombre win-recuperacion con el siguiente contenido:
if grep -q -w — “-s\|back\|S” /proc/cmdline; then
umount /media/disk
umount “/media/System Reserved”
partimage -z1 -o -f2 -d -b save /dev/sda3 /root/Windows.partimg.gz
fi
# Parametros de partimage:
# -z1: compress using gzip: fast and small image file (default)
# -o: Overwrite the existing image file without confirmation
# -d: Don’t ask any description for the image file.
# -b: batch mode: the GUI won’t wait for an user action.
if grep -q -w — “-s\|restore\|S” /proc/cmdline; then
umount /media/disk
umount “/media/System Reserved”
partimage -b -f2 restore /dev/sda3 /root/Windows.partimg.gz.000
fi
# Parametros de partimage:
# -b: batch mode: the GUI won’t wait for an user action.
# -f2: reboot (restart the computer)
3. Guardamos el script win-recuperacion en /etc/init.d/ y le damos los siguientes privilegios:
sudo chmod +x /etc/init.d/win- recuperacion
4. Creamos un enlace en el nivel 2:
sudo ln -s win-recuperacion.sh /etc/rc2.d/S29win-recuperacion
5.Y finalmente, configuraremos GRUB para que muestre las opciones desde el arranque del equipo:
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.backup
sudo gedit /boot/grub/menu.lst
Buscaremos algo similar a lo siguiente :
title Ubuntu 9.04, kernel 2.6.28-11-generic
uuid ba134259-04dd-4721-8d90-db98c3fb7f65
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=ba134259-04dd-4721-8d90-db98c3fb7f65 ro quiet splash
initrd /boot/initrd.img-2.6.28-11-generic
quiet
La copiamos, pegamos 2 veces y hacemos los cambios en negrita
title Restaurar Windows
uuid ba134259-04dd-4721-8d90-db98c3fb7f65
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=ba134259-04dd-4721-8d90-db98c3fb7f65 ro quiet splash restore
initrd /boot/initrd.img-2.6.28-11-generic
quiet
title Copiar Windows a Imagen
uuid ba134259-04dd-4721-8d90-db98c3fb7f65
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=ba134259-04dd-4721-8d90-db98c3fb7f65 ro quiet splash back
initrd /boot/initrd.img-2.6.28-11-generic
quiet
Como pueden ver en una opcion anadimos restore con esto el script sabra cuando restaurar y cuando crear una nueva imagen… porque recordemos que debian (ubuntu) toma los niveles 2-5 sin ninguna diferencia.
Espero esto les sirva!!!
Muchas gracias por el aporte Oscar
Oscar Romero buen e interesante aporte, revisaré con más tiempo y detalle lo que comentas y si veo que me sirve para aclarar la explicación lo haré y creo que así será.
De todos modos, te importaría decir que paso/cosa no te funcionó? Me interesa que la explicación no contenga errores, que aunque creo que no es complicada, es demasiado densa
Que tal Shawe
El problema que yo me enfrente fue que ubuntu nunca iniciaba con en nivel 3 o 4, como indica el procedimiento original.
Por tal cuando seleccionabas en el grub la opcion restaurar por ejemplo, nunca hacia nada porque aun cuando indicabas con el telinit el nivel con el que querias iniciar “/etc/event.d/rc-default” ubuntu siempre iniciaba con nivel 2 y los scripts los ejecutaba en rcd.3 y rc4.d respectibamente…
Me di cuenta que ubuntu nunca entraba en nivel 3 o 4 investigando di con que debian a diferencia de las demas distros de linux no hace diferencia en cuanto a los niveles 2-5, Asi que puse un solo script en el rc2.d y agregue una condicion para saber cuando restaurar y cuando hacer una nueva imagen…
Esta funcionando a la perfeccion!!!
Cualquier duda por favor haganla saber!!!
Oscar Romero, la mía también funciona, pero con Ubuntu 9.04. Ahora mismo lo estoy probando con Ubuntu 9.10 y no me funciona ni a tu manera
(supongo que por cosas que he modificado de nuevo en el script)
Si no me equivoco con esto:
if grep -q -w — “-s\|back\|S” /proc/cmdline; then
if grep -q -w — “-s\|restore\|S” /proc/cmdline; then
Le indicas que con el parámetro -s o back o S haga el backup, mientras que si le llega -s o restore o S haga el restore, para lo que dices que se haga no hay problema, pero si hubiera una entrada que haga uso de -s o single o S, habría “problemas” ya que haría el backup y se reiniciaría ignorando el modo single
ya que uno de los parámetros que uso de partimage hace que se reinicie al acabar
El problema viene realmente que con Ubuntu 9.10 han cambiado lo que hace referencia a los runlevels y al grub y por tanto esta explicación ya se me quedo obsoleta en el momento de su publicación ya que solo lo tenía probada en Ubuntu 9.04.
Cuando consiga hacerlo funcionar de nuevo, escribiré una nueva entrada o un comentario aquí mismo para dejarlo más claro.
Casi 4 meses después editaré el post como dije, para hacer que funcione igual y sea más fácil incorporar esta función con Ubuntu Karmic 9.10, y en principio el método ya será compatible con futuras versiones de Ubuntu sin necesidad de cambios.