TRUCO: ¿ Cómo hacer una imagen de un disco duro ?

per Victor Carceler darrera modificació 2020-03-31T12:34:55+01:00

Intro:

Instalar y configurar una máquina puede llevar cierto tiempo. Una vez que la tenemos funcionando, es posible que queramos realizar una imagen del disco duro para poder restaurar más adelante esa imagen si tenemos problemas, o símplemente queremos volver a la situación inicial.

Algunas opciones para realizar imágenes son Partimage (software libre) y Norton Ghost (software propietario), pero veremos cómo es posible realizar las imágenes directamente utilizando un CD de arranque como Knoppix y el comando dd existente en cualquier distribución de GNU/Linux.

Al realizar la imagen del disco duro, obtendremos un fichero (el fichero imagen) que tiene una instantánea del estado de todos los bloques del disco duro. Por lo tanto, en la imagen se incluye:

  1. Todas las particiones del disco duro, sean del sistema de archivos que sean
  2. El MBR con el gestor de arranque

Así, si en la máquina teniamos configurado un arranque dual con varios sistemas operativos, la imagen incluye TODO el disco duro.

A tener en cuenta:

  1. Para hacer la imagen (o para restaurarla), es necesario que el disco duro sobre el que se trabaja no esté en uso. De ahí la necesidad de arrancar desde otro medio (que puede ser otro disco duro, un CD o un llavero USB)
  2. Para guardar la imagen necesitaremos un medio de almacenamiento que sea distinto al disco duro del que estamos haciendo la imagen. Así podremos utilizar la red para montar un recurso compartido de otra máquina y guardar allí la imagen a medida que se va haciendo. Otra posibilidad será guardarla en un disco duro USB conectado temporalmente a dicha máquina.

Procedemos a realizar la imagen:

Los pasos son los siguientes:

  1. Arrancar desde un medio de almacenamiento diferente al disco duro del que se va a realizar la imagen. Tenemos varias opciones: otro disco duro con GNU/Linux, un LiveCD como Knoppix o un llavero USB con una distribución de GNU/Linux.

    En este caso nos vamos a centrar en un LiveCD como Knoppix por ser probablemente el caso más común.

    Podemos arrancar directamente Knoppix al poner su CD en la unidad, reiniciar el ordenador y pulsar intro (para arrancar con las opciones por defecto), o podemos pulsar F2 y escribir algunas opciones para el arranque de Knoppix.

    Sugiero las siguientes opciones para el arranque de Knoppix (pulsar F2 en lugar de enter cuando salga el gestor de arranque de Knoppix y allí escribir):

    knoppix lang=es 2

    Con estas opciones pedimos a Knoppix que arranque con el teclado en español y en el nivel de ejecución 2 (cónsola sin entorno gráfico) para agilizar el proceso en ordenadores con poca RAM.

    Observación: En el gestor de arranque de Knoppix el teclado no está en español, así que el símbolo '=' normalmente está en la tecla '¿'.

  2. Una vez que hemos arrancado y tenemos abierta una cónsola de administrador, hemos de montar un dispositivo de almacenamiento en el que guardaremos el fichero imagen. Vuelvo a repetir que el fichero imagen ha de guardarse en un medio diferente del disco duro que se está preservando.

    Opciones:

    • Utilizar otro disco duro de esta máquina:

      mkdir /mnt/imagen
      mount /dev/hdb1 /mnt/imagen

      Si se trata de un disco duro USB conectado a esta máquina, el dispositivo a montar probablemente sea /dev/sda1

    • Utilizar la red para guardar la imagen en el disco duro de otra máquina. En la máquina en la que se va a guardar la imagen hay que exportar un recurso mediante NFS o Samba (o compartiendo la carpeta si se trata de una máquina Windows).

      Suponiendo que la imagen la vamos a guardar en un servidor Samba o en una carpeta compartida de una máquina Windows, los pasos a dar serian:

      Configurar la tarjeta de red en la máquina que acabamos de arrancar con Knoppix (si es que nuestra red no tiene ningún servidor DHCP). Por ejemplo, para configurar la primera tarjeta de red con la IP 192.168.0.25 hariamos:

      ifconfig eth0 192.168.0.25 up

      Comprobar que vemos a la otra máquina (que supondremos que tiene por IP 192.168.0.100):

      ping 192.168.0.100

      Montar el recurso compartido, si el recurso se llama 'imagen' haríamos:

      mount -t smbfs -o username=usuario,password=clave //192.168.0.100/imagen /mnt/imagen
  3. Ahora es necesario asegurarse de que nadie va a acceder al disco duro mientras hacemos la imagen. La única posibilidad es que Knoppix utilice alguna partición de swap, por eso la desactivamos:

    swapoff -a
  4. Utilizar el comando dd para realizar la imagen. Si el disco duro a preservar es el primer disco duro IDE, tecleariamos:

    dd if=/dev/hda | gzip --best >/mnt/imagen/ficheroimagen

    Este paso tardará más o menos dependiendo del tamaño y velocidad del disco duro del que se está haciendo la imagen, y de la velocidad del medio de almacenamiento. Al acabar, el fichero /mnt/imagen/ficheroimagen (que se está guardando en el dispositivo elegido durante el paso 2) será una imagen completa de todo el disco duro salvado.

  5. Podemos reiniciar la máquina para que vuelva a arrancar con normalidad:

    init 6

    Observación: Si hemos arrancado con Knoppix, quitamos el CD cuando se abra la bandeja y pulsamos enter.

Restaurar una imagen

Una vez que tenemos hecha la imagen de la máquina, podemos trabajar con ella tranquilos. Cuando queramos volver a restaurar la imagen, símplemente tendremos que repetir los pasos 1, 2 y 3 del procedimiento para realizar una imagen.

Después hemos de teclear:

zcat /mnt/imagen/ficheroimagen | dd of=/dev/hda

Para volcar el fichero imagen en el disco duro y dejarlo tal y como estaba cuando hicimos la imagen.

Observación: Al restaurar una imagen se reescribe TODO el disco duro con los datos que contiene la imagen. El contenido anterior se pierde.

Finalmente, reiniciamos la máquina:

init 6

Más información:

Esta sección no es de obligada lectura, pero contiene información útil para aquellos que quieran saber más.

  1. ¿ Como se ha guardado y restaurado la imagen: ?

    El fichero de imagen contiene toda la información guardada en el disco duro que preserva, así que puede tener un tamaño considerable.

    Por ello, al realizar la imagen se leen los datos del disco duro con el comando dd y se comprimen utilizando el programa gzip para que ocupen menos en el fichero imagen (y si se está realizando la imagen en red, se tenga menos tráfico). Al restaurar la imagen se hace el proceso contrario, leyendo del fichero imagen (y descomprimiendo sus datos) con zcat y escribiendo la información en disco con dd.

    Debe tener en cuenta que esta técnica no lee los ficheros que contiene el disco duro (no entiende de sistemas de archivos, da igual cuál se utilice), símplemente preserva todos los bloques de información del disco duro.

  2. ¿ Puedo minimizar el tamaño del fichero imagen ?

    Se consigue un buen ratio de compresión en el fichero imagen, en la medida en la que en el disco duro hay datos redundantes (bloques con el mismo valor).

    Para asegurárse de que el disco duro tiene todos los bloques con el mismo valor, es conveniente, antes de comenzar a instalar el sistema operativo (o los sistemas operativos), arrancar desde un Knoppix y ejecutar:

    dd if=/dev/zero of=/dev/hda

    ATENCIÓN: Esta operación borra completamente el contenido del dispositivo sobre el que se ejecuta, en este caso /dev/hda. Los datos que contenía el dispositivo no se podrán recuperar.

    De esta manera, se escriben con ceros todos los bloques del disco duro, de modo que tras la instalación, todos aquellos bloques que no han sido modificados (la mayoría en un disco grande) tienen el mismo valor y se comprimen con un buen ratio.

    De esta manera, un disco duro de 60GB con arranque dual Windows2000 y GNU/Linux Mandrake 10 se queda en un fichero imagen de unos 3GB.