Inicio > Gestión de paquetes y sistema > dd

dd: Copia y conversión de datos (clonación de disco/creación de USB)

Es una potente herramienta para copiar o convertir archivos en bloques. Se utiliza para crear USBs de arranque, hacer copias de seguridad de discos (volcado de imagen) y crear archivos. Sin embargo, si se especifica incorrectamente el destino de salida, se pueden perder todos los datos, por lo que se le conoce como 'Disk Destroyer'.

¿Qué es dd?

dd es conocido como el acrónimo de 'Data Description' o 'Disk Dump'. A diferencia de la copia normal (`cp`), se utiliza para manipular directamente dispositivos de hardware (discos, USB) o para replicar datos originales bit a bit.

Estructura de sintaxis clave

Se utiliza en el formato `clave=valor` sin un guion (-) antes de la opción.

  • if (Archivo de Entrada): Es el objetivo de entrada. (Archivo original, imagen ISO, dispositivo de disco a leer, etc.)
  • of (Archivo de Salida): Es el objetivo de salida. (Ubicación de copia, dispositivo USB, archivo de copia de seguridad, etc.) **Esta es la opción más importante a tener en cuenta.**
  • bs (Tamaño de Bloque): Es el tamaño de los datos a leer y escribir a la vez. (Ej: 4M, 1G). Afecta a la velocidad.

⚠️ Advertencia: Verificación obligatoria antes de usar

Si por error se especifica el disco duro del sistema como `of=` (destino de salida), el sistema operativo y los datos desaparecerán instantáneamente. Asegúrese de verificar la ruta del dispositivo (ej: `/dev/sdb`) con el comando `lsblk`.

Opciones principales (Shell)

El orden de las opciones de dd no es crucial, pero generalmente se escriben en el orden `if` > `of` > `bs` > `status`.

1. Especificación de entrada/salida (obligatorio)

2. Control de tamaño y velocidad

3. Conversión y control de datos

Comando generado:

Combina los comandos.

Descripción:

`dd` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de escenarios de uso

Patrones de comandos dd de uso frecuente en la práctica.

Crear un USB de arranque

sudo dd if=ubuntu-22.04.iso of=/dev/sdb bs=4M status=progress

Graba un archivo ISO en un dispositivo USB (asumiendo `/dev/sdb`). `bs=4M` es para mejorar la velocidad.

Copia de seguridad completa del disco (creación de imagen)

sudo dd if=/dev/sda of=~/backup.img bs=64K status=progress

Crea un archivo `backup.img` a partir de todo el disco `/dev/sda`.

Borrado completo de disco (Wiping)

sudo dd if=/dev/urandom of=/dev/sdX bs=1M status=progress

Sobrescribe el disco (`/dev/sdX`) con datos aleatorios, haciéndolo irrecuperable.

Crear un archivo vacío de tamaño específico

dd if=/dev/zero of=testfile_1GB bs=1G count=1

Crea un archivo vacío de 1GB (relleno de ceros) para pruebas.

Consejos y precauciones

Consejos útiles

  • Permiso sudo: Siempre se necesita `sudo` para manipular dispositivos de hardware (/dev/...).
  • /dev/zero y /dev/urandom: `if=/dev/zero` es un archivo especial que produce un flujo infinito de ceros, y `if=/dev/urandom` produce un flujo infinito de datos aleatorios.
  • Encontrar dispositivo USB: Antes y después de conectar un USB, debe usar el comando `lsblk` para identificar con precisión el nombre del nuevo dispositivo (ej: sdb, sdc).

comandos relacionados

Son comandos que son funcionalmente similares o que se usan juntos con frecuencia.



Comandos de la misma categoría