Skip to main content
Backup de seguridad en Linux con el comando dd

Backup de seguridad en Linux con el comando dd

dd se trata de un comando perteneciente a la familia de unix que permite copiar y convertir datos de archivos a bajo nivel

Bienvenidos a un nuevo post en ByteMind. En el caso de hoy les traigo la herramienta dd, una utilidad que nos permitirá realizar backups de nuestros discos y que por defecto viene instalada en la mayoría de distribuciones Linux.

dd se trata de un comando perteneciente a la familia de unix que permite copiar y convertir datos de archivos a bajo nivel. En los tiempos que corren, la pérdida de según que datos puede ser muy costosa y la pérdida de datos críticos puede albergar un impacto financiero muy grande para las empresas sea cual sea su tamaño. También para particulares puede ayudar a la recuperación de datos si ocurre un error en nuestro sistema o incluso si fuésemos víctima de un ataque malintencionado necesitaríamos recuperar aquellos datos que son importantes para nosotros mismos.

En el post de hoy les traigo una serie de ejemplos prácticos con los que hacer copias de seguridad de nuestro sistema o incluso crear una unidad de arranque.

 

Copia de seguridad de un disco completo

Para hacer una copia de seguridad de una unidad completa de un disco duro en otro disco conectado al sistema, necesitaremos lanzar el comando dd de la siguiente manera:

En el comando anterior se observan varias opciones:

  • La opción “If” representa el origen de los datos
  • La opción “of” representa el destino de la copia de los datos

Con este comando realizaríamos una copia completa de los datos existentes en la unidad /dev/sda en la unidad /dev/sdb, es importante también no equivocarse al indicar las unidades de origen y destino ya que un error en el mismo podría provocar la pérdida de todos nuestros datos. Si ocurriese algún error durante dicha ejecución, la misma se pararía inmediatamente. Si por el contrario queremos evitar que pare al haber cualquier error durante la copia utilizaríamos la opción “conv=noerror” como vemos en el siguiente ejemplo:

Si además quisiéramos realizar una copia sincronizada, podríamos realizarlo añadiendo la opción sync al anterior comando, quedando de la siguiente manera:

 

Crear una imagen a partir de un disco duro

En lugar de realizar una copia de seguridad del disco duro, tal vez en algún momento les interese crear un archivo de imagen y guardarlo en otro dispositivo de almacenamiento. En este proceso existen muchas ventajas con respecto al guardado en imagen ya que es más fácil de utilizar y suele ser más rápido lo que permitiría restaurar los datos a una velocidad mayor después de una catástrofe inesperada. En este caso el comando sería el siguiente:

 

Restauración de datos a partir de una imagen

Para restaurar los datos en base a una imagen, el proceso sería el inverso al anterior, a continuación el comando para realizarlo:

El archivo de imagen utilizado, sdadisk.img, es la imagen generada previamente de la unidad /dev/sda, por lo que el comando restauraría los datos de /dev/sda sobre la unidad /dev/sdb

 

Copia de seguridad de una partición

Otra opción es realizar una copia de una partición del disco duro, y como salida podría utilizar otra partición del mismo u otro disco o la generación de un archivo de imagen como en los casos anteriores, en nuestro caso podemos verlo con el siguiente ejemplo:

 

Copia de seguridad de una unidad de CDROM

También es posible utilizar el comando dd para generar una imagen a partir de los datos almacenados en una unidad de CDROM. Para ello utilziaríamos el siguiente comando:

Como vemos es tan simple como indicar la ruta en la que se encuentra montado el CDROM para obtener los datos para su copia. Además como vemos en el anterior comando, también es posible especificar el tamaño de bloque tanto para el archivo de entrada como para el archivo de salida con la opción bs. En el ejemplo indicado especificamos que el tamaño de bloque debe de ser de 2048 bits.

 

Creación de una unidad USB de arranque

Además de las opciones mostradas, también es posible el uso del comando dd para la creación de una unidad de arranque, en nuestro caso crearemos una unidad de arranque usb en la cual especificaremos un tamaño de bloque de 1 megabit.

 

Además de estos ejemplos mostrados, puedes ver una descripción completa de todas las opciones existentes en el mismo viendo la ayuda o la documentación del mismo con los siguientes comandos:

 

Y eso es todo por el momento, espero les haya gustado y les sea útil en su día a día. Y ya saben, cualquier duda, opinión, aporte… es bienvenido en la sección de comentarios.

4 thoughts on “Backup de seguridad en Linux con el comando dd

  1. una vez hecha la imagen completa del sistema y para luego restaurarla, como seria el procedimiento? si se ejecuta ese comando (dd if=sdadisk.img of=/dev/sdb) no colapsaria el sistema?
    Suponiendo que la imagen que se hizo es de sda que tiene el sistema operativo en el

    1. Hola Felix,

      No, no colapsaría el sistema porque el disco sda sería el que se utilizaría para el arranque. Al cargar el backup sobre la unidad /dev/sdb, tendrías en /dev/sdb una copia restaurada, que posteriormente tendrías que montar en una ruta creada previamente para poder acceder a los datos almacenados en la misma.
      En caso de querer restaurar el sistema con la imagen creada, tendrías que restaurarla sobre el mismo disco, /dev/sda en este caso y posteriormente reiniciar el sistema.
      Completado este procedimiento se habría completado la restauración del mismo al estado en el que estuviese en el momento de realizar el backup.
      Espero haber resuelto tu duda, si tienes alguna más estamos para ayudar.

      Un saludo.

  2. Hola,

    Tengo una duda,

    la instalación de linux esta en un dsico de 465gb pero realmente solo utilizo 135GB, la otra parte del disco esta como no asignada

    sda 8:0 0 465.8G 0 disk
    ├─sda1 8:1 0 31.4M 0 part
    ├─sda2 8:2 0 9.8G 0 part
    ├─sda3 8:3 0 964.9M 0 part [SWAP]
    ├─sda4 8:4 0 1K 0 part
    ├─sda5 8:5 0 125.8G 0 part
    └─sda6 8:6 0 12.6G 0 part

    Si yo hago un clon con: dd if=/dev/sda of=/dev/sdb , va a hacer copia de los 465Gb o solo de las particiones?

    1. Hola Alberto,

      En ese caso te copiará el disco sda entero en el disco sdb (asegurate que el disco sdb tiene un tamaño igual o superior antes de llevarlo a cabo), en caso de necesitar que sólo te copie los datos de una partición deberías de indicarle cual quieres, por ejemplo, en lugar de ser el origen /dev/sda debería ser /dev/sda1 y lo mismo con el destino, en lugar de /dev/sdb debería ser el destino una partición previamente creada, por ejemplo /dev/sdb1

      Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *