¿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).