Comando dd: cómo usarlo y principales aplicaciones

El comando dd está considerado como una de las utilidades más potentes de Linux. Aunque el significado de estas letras es Data Definition, la doble «D» hace que comúnmente reciba nombres tan llamativos como es «destructor de discos» o «duplicador de discos». En realidad, se trata de una herramienta de copia y conversión de datos a nivel de bloques, aunque tiene más utilidades.

En este artículo vamos a repasar todos los aspectos del comando dd que cualquier usuario de Linux debería conocer, desde su sintaxis básica hasta sus aplicaciones más destacadas, enter las que figuran la copia de archivos, la copia de seguridad y restauración de particiones de discos o la creación de unidades USB de arranque.

Hay que decir que el comando dd debe ser utilizado con mucha precaución. Si se usa sin realizar las necesarias verificaciones, puede acabar provocando una pérdida de datos irreversible. Por esa razón hay que prestar a máxima atención cuando se trabaja con él.

Sintaxis del comando dd

Entre las opciones más comunes dentro de la sintaxis del comando dd, hay que destacar las siguientes:

  • bs=: Para determinar el tamaño del bloque que dd leerá o escribirá (por ejemplo, bs=4M).
  • conv=: Para especificar las opciones de conversión.
  • count=: Para establecer el número de bloques que dd va a copiar.
  • if=: Archivo o dispositivo de entrada (input file).
  • of=: Archivo o dispositivo de salida (output file).
  • seek=: Para saltarse una cantidad específica de bloques o bytes mientras se lee el archivo de salida.
  • skip=: Para saltarse una cantidad específica de bloques o bytes mientras se lee el archivo de entrada.
  • status=progress: Para mostrar el progreso de la operación en tiempo real.
Contenido exclusivo - Clic Aquí  Cómo montar una imagen ISO en Windows macOS Linux

Usos prácticos del comando dd

comando dd

Veamos algunas aplicaciones más prácticas del comando dd y cómo trabajar en ellas. Solo se trata de algunos ejemplos de uso común, ya que sus posibilidades reales son mucho más amplias:

Crear imágenes de disco

Este es uno de los usos más frecuentes del comando dd: la creación de imágenes de discos o particiones, lo cual se realiza copiando bit a bit su contenido. Muy útil para crear copias de seguridad. En el siguiente ejemplo, el dispositivo de origen es origen.txt y el de destino, destino.txt.

sudo dd if=/origen.txt of=/destino.txt

Clonar discos

Es decir, copiar el contenido completo de un disco y guardarlo en otra ubicación. Un ejemplo: para copiar todo el contenido del disco sda1 a sda2, hay que usar el comando del siguiente modo:

sudo dd if=/sda1 of=/sda2

Crear una unidad USB de arranque

Otro uso habitual del comando dd es el de la creación de unidades USB de arranque a partir de imágenes ISO. Para esto, es necesario especificar el archivo ISO como archivo de entrada (if) y la unidad USB como archivo de salida (of). Allá va otro ejemplo:

sudo dd if=linux_x.iso of=/dev/sda bs=3M status=progress

En este caso, linux_x.iso representa la imagen ISO de la distribución de Linux, mientras que /dev/sda es la unidad USB. Por otra parte, bs=3M nos informa del tamaño del bloque (3 megabytes), mientras que status=progress muestra el progreso del comando. Algunas veces, dicho progreso se visualiza con la imagen de una barra.

Contenido exclusivo - Clic Aquí  ¿Cómo cambio la configuración de la hora en mi Mac?

Saltar bytes o caracteres al leer el archivo de entrada

He aquí un ejemplo del uso de la utilidad skip: la de omitir una cantidad específica de bytes o caracteres en el momento de leer el archivo de entrada. Se usa cuando es necesario excluir ciertas partes del archivo. En este ejemplo, los primeros 200 bits:

sudo dd if=abc.txt of=zyx.txt skip=200

Borrar un dispositivo de bloque

Por último, un recurso que resulta muy conveniente en ciertas situaciones. Por ejemplo, cuando tenemos que vender o pasar un disco a alguien y queremos asegurarnos de que su contenido anterior es completamente inaccesible. Cuestión de privacidad. Esta operación se ejecuta a través de dos comandos, tal y como ilustramos en este ejemplo:

sudo dd if=/dev/zero bs=1M of=/dev/sda

Este primer paso reduce los datos existentes en el dispositivo a una simple secuencia de ceros. Para que la operación sea completa, hay que rellenar el resto del disco con datos aleatorios:

sudo dd if=/dev/random bs=1M of=/dev/sda

Conclusión

En definitiva, podemos afirmar que el comando dd es una herramienta esencial en Linux cuando se trata de relacionadas con copiar, clonar y convertir datos a bajo nivel. Entre otras muchas cosas, se usa para  la creación de imágenes de disco o la limpieza segura de discos, como hemos visto.

Contenido exclusivo - Clic Aquí  Cómo habilitar el rendimiento máximo en Windows 10

Otras de sus aplicaciones prácticas son la de comprimir los datos leídos por el comando dd, copiar contenido desde un CD o DVD, realizar copias de seguridad parciales o totales, convertir mayúsculas a minúsculas o viceversa, etc. Sin duda, vale la pena aprender a usar este comando.

En todo caso, es un arma poderosa que hay que saber manejar con mucha precisión y cuidado, ya que puede sobreescribir e incluso borrar datos sin previo aviso.

Deja un comentario