Crear imágenes de disco desde la consola de Ubuntu 18.04 LTS

Publicado por P. Ruiz en

Existe un programa universal para la línea de comandos de GNU/Linux, llamado dd, que podemos utilizar para copiar datos a bajo nivel (byte a byte) desde un dispositivo o una partición, pudiendo crear un dispositivo que sea un clon perfecto del primero o un archivo de imagen de éste.

Si hemos creado un archivo de imagen, en el futuro podemos usarla para crear un disco que sea una copia exacta del original (en el momento en el que se hizo la copia) o tras una catástrofe que haya corrompido nuestros datos, para recuperar el estado exacto del dispositivo de origen.

Como hemos dicho más arriba, la copia se realiza byte a byte, lo que significa que, si el dispositivo de origen tiene un tamaño de 500 GB, necesitaremos, como mínimo, otros 500 GB libres en el dispositivo que va a albergar la imagen. No obstante, al final del artículo comentaremos un método que nos permita ahorrar espacio en el tamaño de la imagen.

Como ya hicimos en el artículo Crear una imagen de disco en Ubuntu 18.04 LTS, usaremos el disco de instalación de Ubuntu. Así, no necesitaremos tener el disco principal montado (donde se encuentra instalado el sistema operativo del equipo) y estaremos seguros de que no cambia ninguno de sus archivos mientras realizamos la operación. Como entonces, comenzaremos por iniciar el ordenador con el disco de instalación de Ubuntu.

… Y en la pantalla de bienvenida del asistente de instalación, elegimos el idioma Español y, a continuación, hacemos clic sobre el botón Probar Ubuntu.

Crear-una-imagen-de-disco-en-Ubuntu-1804-LTS

Crear una imagen

Puedes abrir la ventana de terminal usando la combinación de teclas Alt + Control + T.

Cuando nos disponemos a crear una imagen, lo primero será conocer qué dispositivos tenemos en nuestro sistema. Algo muy sencillo si utilizamos un comando como este en una ventana de terminal:

sudo fdisk -l

Escribimos el comando y pulsamos la tecla Intro.

Crear-imagenes-de-disco-desde-la-consola-de-Ubuntu-1804-LTS-001

Al hacerlo, comprobamos que tenemos dos discos (sda y sdb). El primero con 50 GB y el segundo con 60 GB de capacidad. Esto significa que, si el disco de destino está vacío (que es nuestro caso), podremos realizar la copia sin ningún inconveniente.

Información sobre los discos

Crear-imagenes-de-disco-desde-la-consola-de-Ubuntu-1804-LTS-002

Con esto, tenemos la información básica para aplicar el comando dd. Para ello, basta con escribir una orden como esta:

sudo dd if=/dev/sda of=/media/ubuntu/Nuevo/imagen.img

Escribimos el comando y pulsamos la tecla Intro.

Crear-imagenes-de-disco-desde-la-consola-de-Ubuntu-1804-LTS-003

Puede que, al tratar de ejecutar el comando anterior, recibas un mensaje de error. En ocasiones, este mensaje está provocado porque el volumen donde pretendes guardar la imagen no se encuentre montado.

La forma más fácil de resolverlo consisten en abrir una ventana del explorador de archivos y mostrar el contenido de la unidad. Después, podrás cerrar la ventana inmediatamente, pero el disco ya se habrá montado.

Como habrás imaginado, detrás del argumento if debemos poner el dispositivo, la partición o el archivo de origen y, detrás del argumento of, escribiremos el de salida. En nuestro caso, toda la unidad sda como origen y el archivo imagen.img como destino.

El proceso de creación se tomará su tiempo. Piensa que se está copiando todo el disco byte a byte.

Cuando termine, aparecerá un resumen del trabajo realizado, indicando el número de bloques leídos, la cantidad de información copiada, el tiempo empleado (medido en segundos) y la velocidad media a la que se ha producido la copia (medida en MB/s).

La imagen creada tiene el mismo tamaño que el disco de origen.

Crear-imagenes-de-disco-desde-la-consola-de-Ubuntu-1804-LTS-004

Después de esto, ya tendremos la imagen lista para usar cuando sea necesario.

Recuperar la imagen

Cuando sea necesario (normalmente, cuando el sistema ha dejado de funcionar de forma adecuada), podremos utilizar la imagen que hemos creado en el apartado anterior para devolver el equipo al estado en el que se encontraba cuando la hicimos.

Para lograrlo, usaremos de nuevo el disco de instalación de Ubuntu,con el fin de  evitar que el disco principal esté montado. Así, nos aseguramos de que no cambia ninguno de sus archivos mientras realizamos la operación.

Por lo tanto, comenzamos de nuevo iniciando el ordenador con el disco de instalación de Ubuntu.

Después, sólo tenemos que aplicar la sintaxis que usamos para crear el archivo, pero intercambiando los valores de sus argumentos. Es decir, algo como esto:

sudo dd if=/media/ubuntu/Nuevo/imagen.img of=/dev/sda

Como antes, escribimos el comando y pulsamos la tecla Intro.

Crear-imagenes-de-disco-desde-la-consola-de-Ubuntu-1804-LTS-005

De nuevo, el proceso de restauración puede tomar un tiempo considerable, en función del tamaño de la imagen, ya que se está copiando todo el disco.

Al final, volveremos a obtener el resumen con el número de bloques leídos, la cantidad de información copiada, el tiempo empleado (medido en segundos) y la velocidad media a la que se ha producido la copia (medida en MB/s).

La imagen recuperada.

Crear-imagenes-de-disco-desde-la-consola-de-Ubuntu-1804-LTS-006

Después de esto, ya puedes reiniciar el sistema y comprobar que todo ha funcionado correctamente.

La ventaja de utilizar el comando dd para crear la imagen es que tenemos a nuestra disposición toda la potencia de la línea de comandos de GNU/Linux. Por ejemplo, podemos canalizar la salida del comando dd hacia un programa de compresión. Así, la imagen obtenida será de menor tamaño que el disco original. Algo como esto:

sudo dd if=/dev/sda | bzip2 > /media/ubuntu/Nuevo/imagen2.bz2

… Y para recuperarla, bastará con usar la sintaxis contraria:

sudo bunzip2 -c /media/ubuntu/Nuevo/imagen2.bz2 | sudo dd of=/dev/sda

Hasta aquí el artículo de hoy. Espero que te resulte útil.

Recuerda que en SomeBooks.es ya hemos dedicado dos artículos a la creación de imágenes usando el disco de instalación de Ubuntu:

También hemos aprendido a manejar las imágenes en sistemas Windows con los artículos: