Antes de publicar este prodecimiento aquí, decidí exponer algunos bosquejos en un sitio llamado http://www.linuxquestions.org, si saben inglés pueden leer estos bosquejos aquí:
http://www.linuxquestions.org/questions ... re-854292/
A grandes razgos, el siguiente es el procedimiento que resultó después de recibir algunas críticas constructivas de parte de los miembros de http://www.linuxquiestions.org y hacer las modificaciones pertinentes.
Esta guía está un poco bosquejada y en realidad es más bien una pauta. Se supone que el usuario la adapte a sus propias necesidades y es posible que los principiantes deban pasar por un proceso de prueba y error, pero una vez que se logra amaestrar la técnica, puede ser de mucha utilidad. Les recomiendo que lean la guía completa y el material referenciado antes de intentar hacer cualquier cosa.
Este es un procedimiento para lograr que tu computadora se restaure a un estado definido por ti. Sirve para eliminar virus por completo o deshacerte de cualquier configuración errónea que se le haya hecho accidentalmente a cualquier sistema operativo que desees instalar. Para comprender esta guía necesitarás conocimientos acerca de cómo instalar sistemas operativos, cómo particionar discos duros, algunos detalles sobre el funcionamiento del al línea de comandos de linux, entre otras cosas.
EDIT: Advertencia: En este manual se hace uso de los comandos dd y gzip/zcat. Estos comandos, si se utilizan de manera equivocada, pueden causar pérdida permanente de información. Asegúrate que el disco duro de la computadora en la que vas a llevar a cabo las instrucciones de este manual no contenga ningún archvo importante antes de comenzar, ya que toda la información de tu disco duro se perderá a partir del paso 1.
Sin más preámbulos, estos son los pasos a seguir, a grandes razgos:
1. Particiona tu disco duro en 4 partes. Para esto puedes utilizar gparted o cualquier herramienta que prefieras. Los tamaños de estas particiones dependerán del espacio total que esté disponible. Puedes utilizar estas fórmulas para obtener unos tamaños de particiones adecuados para lo que queremos lograr:
tamañosda3 = ((capacidadtotal-swap)/3)+tamañodelinux
tamañosda4 = swap
tamañosda1 = (capacidadtotal-tamañosda3-swap)/2
tamañosda2 = tamañosda1
Donde
capacidadtotal = el espacio total disponible en tu disco duro
swap = el espacio que quieras dejar para la partición de swap del sistema operativo que instalarás en /dev/sda3 (ver el paso 5)
tamañodelinux = el espacio que requerirá la instalación de linux que harás en /dev/sda3, por ejemplo, podría ser 50 MB para Damn Small Linux (o de preferencia un poco más, como 60 o 70, para más seguridad) ó 30 MB para SliTaz (de preferencia más también), etc.
tamañosda1 = tamaño de la partición /dev/sda1
tamañosda2 = tamaño de la partición /dev/sda2
tamañosda3 = tamaño de la partición /dev/sda3
tamañosda4 = tamaño de la partición /dev/sda4
El objetivo de hacer estas particiones es tener una partición sda1, la cual debe tener espacio para el SO que utilizarás y para todos los programas que vayas a instalar en él, una partición sda2, donde respaldarás todos los archivos que quieras rescatar cuando hagas tu recuperación del sistema, una partición sda3, que debe tener suficiente espacio para almacenar todo el contenido de sda1 y además un pequeño SO que hará todo el trabajo de recuperación y respaldo, y una partición sda4 que será simplemente la partición de swap. Las proporciones de estas particiones se pueden cambiar acorde la aplicación que quieras hacer. Una proporción que sí debería mantenerse siempre es la de:
tamañosda3 > tamañosda1 + tamañodelinux
Ahora sería bueno mencionar que, en lugar de utilizar una partición primaria entera para sda4, podrías simplemente usar 3 particiones, y utilizar particiones lógicas para establecer el espacio de swap dentro de la misma partición /dev/sda3. Desde luego que tendrías que calcular tus propias fórmulas para lograr esto. En otras palabras: este método es solamente una sugerencia, deberás particionar acorde a tus necesidades. Las razones que podrías tener para hacer esto se harán más claras una vez que termines de leer la guía.
Hay que señalar que si estás utilizando un disco duro IDE en lugar de uno SATA, los nombres de tus particiones serán /dev/hda1, /dev/hda2, etc.
2. En este momento deberás decidir qué sistema operativo es el que querrás someter al procedimiento de respaldo y recuperación. Si se trata de windows, deberás formatear /dev/sda1 como NTFS, si deseas que sea linux, deberás crear dos particiones lógicas, una con ext2, o ext3, o cualquier sistema de archivos que soporte linux, y la otra para swap, si deseas instalar algún OS de mac, deberás hacer lo pertinente. El objetivo aquí es que todo el sistema operativo quede instalado en /dev/sda1. Es absolutamente necesario que todo el SO esté almacenado solamente en /dev/sda1.
3. Instala tu SO favorito en /dev/sda1.
4. Instala todos los programas que desees en tu nuevo sistema operativo. No entres a internet todavía, pues por ahora queremos que tu sistema esté libre de cualquier riesgo de infección viral, para poder restaurarlo a ese mismo estado cuando lo deseemos.
5. Una vez que hayas instalado tu SO en sda1, deberás instalar, ya sea, Damn Small Linux (DSL), SliTaz, o cualquier otra distribución mínima de linux que tenga incluídos los programas dd y/ó gzip y zcat. Si decidiste utilizar sda4 como swap, selecciona esta partición como tu espacio de swap durante la instalación de la distribución que elijas. Consulta el sitio web de la distribución que elijas para saber cómo instalarla correctamente. Al momento de elegir tu boot loader, elige grub de preferencia. Al finalizar, tendrás un sistema de arranque dual con el sistema operativo que instalaste en sda1 y el que hayas instalado en sda3. sda2 se deja libre para hacer respaldos de archivos personales.
6. Cuando termines, accede al sistema que hayas instalado en el paso 5 por medio de grub, y desde la linea de comandos, utiliza el siguiente comando:
Código: Seleccionar todo
gzip -c /dev/sda1 > ~/sda1.img.gz
O si lo prefieres, podrías utilizar
Código: Seleccionar todo
dd if=/dev/sda1 of=~/sda1.img
El objetivo de este paso es poder disponer de esta secuencia binaria, ya que es lo que se necesita para recuperar tu sistema al mismo estado exacto que tenía al terminar el paso 4.
7. Para recuperar tu sistema primero respalda todos tus archivos preciados en /dev/sda2 desde el sistema que hayas instalado en /dev/sda1. Si este sistema fue windows, podría ser que /dev/sda2 se llame D: ó E:, etc. Después, reinicia tu computadora y vuelve a acceder al sistema operativo que hayas instalado en /dev/sda3 desde grub, pero esta vez utiliza el comando
Código: Seleccionar todo
zcat ~/sda1.img.gz > /dev/sda1
Si preferiste utilizar el comando dd del paso 6, deberás utilizar este otro comando para recuperar tu sistema:
Código: Seleccionar todo
dd if=~/sda1.img of=/dev/sda1
8. Algo crucial que debes recordar es siempre respaldar tu sector de arranque (MBR) y tener una copia de DSL o cualquier otra distro que hayas instalado en sda3 para que puedas reinstalar grub en caso de que este falle por alguna razón. El error 13 o cualquier otro error de grub puede convertirse en un dolor de cabeza. Existen muchas guías en línea acerca de cómo recuperar tu grub o acerca de cómo utilizar dd para volver a grabar tu sector de arranque en el disco duro. Esta es la falla más común que he experimentado utilizando esta configuración, así que es importante no olvidar estar preparado.
Te recomiendo que cuando estés utilizando el SO que instalaste en sda1, en lugar de guardar tus archivos personales en el mismo sda1, mejor los guardes en sda2 desde un principio, para no correr riesgos al momento de aplicar el paso 7.
Lo único que haría falta para mejorar este sistema sería escribir un script que haga la recuperación del sistema de manera automática, quizás configurar el menú de grub para que el primer elemento de la lista sea el sistema operativo que instalaste en sda1, y el segundo sea una opción que diga "Recuperación del sistema" o algo por el estilo, y programarle un tiempo de espera de 2 segundos. Esto lo volvería perfecto para que amas de casa, niños o maridos cansados recuperen sus sistemas con solo presionar un botón, en lugar de tener que enviar su PC al técnico para que le vuelva a instalar windows cada vez que este se infecte. Pero eso va más allá del enfoque de esta guía, así que se los dejo como ejercicio. Recuerden, esta guía es para ser adaptada a las necesidades particulares de cada individuo.
Y bueno, las ventajas de utilizar este sistema son obvias: puedes recuperar rápidamente cualquier SO que se te antoje instalar cuantas veces quieras, no necesitas discos de instalación, no necesitas sentarte dos horas frente al monitor instalando cada programa que quieres, no necesitas discos duros externos para respaldar tus archivos, puedes elegir el estado exácto al que quieres regresar en los pasos 3, 4, 5, y 6. Es como tener tu propia recuperación de sistema, como las que venían preinstaladas en las thinkpad de la IBM, pero con el SO y los programas de tu preferencia personal, o sea, programable.
EDIT: Les recomiendo que averigüen cómo adaptar HAL91 a esta guía porque es una distro de 1.44 MB (minúscula) y tiene dd, gzip y zcat, que son lo único que se necesita para esto.
EDIT: 17 de septiembre, 2011 IMPORTANTE: Acabo de enterarme de que existe un progrma que forma parte del paquete ntfsprogs llamado ntfsclone que sirve para respaldar una compresión de cualquier sistema de archivos NTFS que se encuentre almacenado en una partición, y además de eso también es posible restaurar dicho sistema de archivos en la partición en cuestión de minutos. Así que les recomiendo que averigüen cómo adaptarlo a esta guía (o sea, cómo sustituír dd o gzip/zcat por ntfsclone) para cuando necesiten respaldar instalaciones de windows, ya que esto agiliza muchísimo el proceso de respaldo y de recuperación y reduce significativamente el tamaño requerido por la partición tamañodelinux.
EDIT: 29 de agosto, 2011 Bien, he estado probando este sistema en varias PC's y he escrito algunos scripts en bash para automatizar el proceso de regrabado del sistema. Estos scripts se pueden invocar, en el caso de DSL, desde /home/dsl/.bash_profile (en caso de que DSL haya sido instalado en modo de single-user) o en el caso de Slitaz, desde /etc/inittab
NOTA: Este script ha sido probado solamente en DSL 4.4.10, en Slitaz habria que hacerle algunas modificaciones.
Código: Seleccionar todo
#!/bin/bash
OPT1=x
OPT2=x
while [ X"$OPT1" != "Xs" -a X"$OPT1" != "Xn" ]
do
clear
echo 'Bienvenid@ a la recuperacion de sistema automatica.'
echo
echo 'Recuperar tu sistema significa regresarlo al mismo estado en el que estaba el'
echo 'dia 28 de agosto del 2011. Este proceso puede tardar algunas horas y durante'
echo 'este tiempo sera imposible usar la computadora, asi que preparate para esperar.'
echo
echo 'IMPORTANTE: Al recuperar tu sistema se BORRARAN TODOS tus datos, MENOS los que'
echo 'hayas guardado en tu carpeta del escritorio llamada "RESPALDE AQUI". Si has'
echo 'borrado tu icono de escritorio llamado "RESPALDE AQUI" puedes guardar tus'
echo 'archivos importantes en el disco "D:" accediendo a "Mi PC".'
echo
echo 'Si todavia te falta rescatar algunos datos presiona la tecla "n" seguida de la'
echo 'tecla "enter" para reiniciar tu computadora y primero guardar tus datos'
echo 'importantes en "RESPALDE AQUI" o en "D:".'
echo
echo 'Opciones:'
echo
echo 's + enter = Recuperar sistema.'
echo 'n + enter = Reiniciar sin recuperar sistema.'
echo
echo -n 'Elije: '
read OPT1
done
if [ X"$OPT1" = "Xs" ]
then
clear
while [ X"$OPT2" != "Xs" -a X"$OPT2" != "Xn" ]
do
echo 'Has elegido recuperar tu sistema. Esto borrara todos los datos que NO hayan sido'
echo 'guardados en "RESPALDE AQUI" o en el disco "D:".'
echo
echo 'Antes de comenzar, asegurate de que tu computadora este conectada a una toma'
echo 'electrica ya que si se agota la bateria se interrumpira el proceso. Tambien'
echo 'asegurate de que se encuentre en una superficie plana y estable, y tambien'
echo 'asegurate de que no vas a tener que moverla durante la recuperacion del sistema'
echo 'ya que cualquier sacudon podria afectar este procedimiento.'
echo
echo 'Cualquier programa que hayas instalado despues del dia 28 de agosto del 2011'
echo 'tambien sera borrado por esta recuperacion, asi que asegurate de guardar los'
echo 'programas instaladores de tus programas en "RESPALDE AQUI" o en "D:" para'
echo 'que los puedas volver a instalar una vez que termine la recuperacion.'
echo
echo 'Si este procedimiento se interrumpe por una falla electrica o por cualquier otra'
echo 'razon, simplemente repitelo desde el principio.'
echo
echo 'Opciones:'
echo
echo 's + enter = Continuar y recuperar sistema.'
echo 'n + enter = Reiniciar sin recuperar sistema.'
echo
echo -n 'Elije: '
read OPT2
done
if [ X"$OPT2" = "Xs" ]
then
clear
echo 'Espera un momento porfavor...'
#Aqui se puede sustituir /dev/hda1 por /dev/null para hacer pruebas
sudo dd if=/home/dsl/hda1.img of=/dev/hda1 2>dderr2 &
#dd if=/home/dsl/hda1.img of=/dev/hda1 2>dderr2 &
#sudo dd if=/home/dsl/hda1.img of=/dev/null 2>dderr2 &
#dd if=/home/dsl/hda1.img of=/dev/null 2>dderr2 &
#Para no tener que usar 'sudo' se puede ejecutar el script en modo de superusuario.
#Se recomienda precaucion al hacer esto.
START=`date`
sleep 2
#Esto de abajo sirve para monitorear el progreso de la grabacion de dd
DDPID=$!
#DDPS=`ps | grep "^[ ]*$DDPID .*"`
sudo kill -USR1 $DDPID
#kill -USR1 $DDPID
sleep 2
RECORDS=`cat dderr2 | tail -n 1 | sed 's/+.*$//'`
#while [ -n "$DDPS" ]
while [ -n "$RECORDS" ]
do
clear
echo 'Recuperando sistema. No mueva su computadora de lugar ni permita que se sacuda.'
echo 'Porfavor espere...'
echo
echo 'Si este proceso se interrumpe debera repetirlo desde el principio, de lo'
echo 'contrario su sistema Windws XP no funcionara.'
echo
echo 'Progreso de la recuperacion:'
echo
#Esto se puede descomentar para hacer debug
#echo RECORDS: $RECORDS
#echo TOP: 23443392
############################################################
#El numero 23443392 es un caso especifico para una imagen que consta de 11721696 K donde K = 1024 bytes
#o sea 23443392 registros de 512 bytes, que es la cantidad que dd usa por defecto, aunque ese numero (512)
#se puede modificar usando el parametro bs en dd. En general, este numero depende de cada caso particular.
############################################################
echo " "`expr \( $RECORDS \* 100 \) / 23443392`% completado
echo
echo 'Tiempo de inicio del proceso:'
echo
echo " $START"
echo
echo 'Tiempo actual:'
echo
echo " "`date`
sleep 20
#DDPS=`ps | grep "^[ ]*$DDPID .*"`
>dderr2
sudo kill -USR1 $DDPID
#kill -USR1 $DDPID
sleep 2
RECORDS=`cat dderr2 | tail -n 1 | sed 's/+.*$//'`
done
clear
echo "RECUPERACION COMPLETADA"
sleep 2
clear
echo "Reiniciando sistema..."
sleep 2
sudo reboot
#reboot
fi
if [ X"$OPT2" = "Xn" ]
then
clear
echo "Reiniciando sistema..."
sleep 2
sudo reboot
#reboot
fi
fi
if [ X"$OPT1" = "Xn" ]
then
clear
echo 'Reiniciando sistema...'
sleep 2
sudo reboot
#reboot
fi
Cómo instalar DSL
http://www.configurarequipos.com/doc1050.html
Cómo instalar Mac OS X
http://www.cristalab.com/tutoriales/ins ... x86-c116l/
Cómo instalar windows xp
http://www.configurarequipos.com/doc317.html
Cómo usar gparted
http://www.espaciolinux.com/2006/02/par ... ed-livecd/
Introducción al álgebra básica
http://www.profesorenlinea.cl/matematic ... Basica.htm
Información sobre el comando dd
http://pintucoperu.wordpress.com/2008/0 ... omando-dd/
Información sobre gzip/zcat
http://manpages.ubuntu.com/manpages/nat ... zip.1.html
Cómo configurar grub
http://dns.bdat.net/documentos/grub/
Cómo respaldar tu MBR
http://www.esdebian.org/wiki/copia-seguridad-mbr
Cómo ejecutar un script desde el inicio de, por decir, DSL
http://es.debugmodeon.com/articulo/como ... -gnu-linux
Introducción al scripting de shell en linux
http://www.abcdatos.com/tutoriales/tutorial/z3211.html
Para finalizar, aquí les dejo una imagen que ilustra las etapas del procedimiento anterior:


Se aceptan críticas y sugerencias de cualquier tipo. Gracias por la atención y espero les haya gustado.