Introducción al comando dd
La utilidad dd es una pieza angular en la administración de sistemas Linux, indispensable para clonar dispositivos, orquestar copias de seguridad de bajo nivel o aprovisionar archivos de prueba. En este tutorial examinaremos sus parámetros operativos clave (bs, count, status=progress, conv y oflag) a través de pruebas prácticas de terminal concebidas para ilustrar su comportamiento en escenarios reales.
1. Fundamentos de dd: gestión de flujo (if/of) y dimensionamiento de bloques
Para ejecutar estas operaciones con total seguridad y evitar interferencias sobre el árbol de directorios principal, habilitamos un espacio temporal mediante mkdir -p /tmp/dd_demo && cd /tmp/dd_demo:

A nivel interno, dd manipula y transfiere flujos binarios procesando la información en bloques definidos. A modo de prueba inicial, generamos un archivo ficticio llamado sample_10m.img con un tamaño exacto de 10 MB extrayendo secuencias continuas de ceros desde /dev/zero mediante 10 bloques consecutivos de 1 MB.
⚙️ [Parámetros esenciales]
if=FILE : Indica el origen desde donde se capturan los datos de entrada (archivo regular o nodo de dispositivo).of=FILE : Especifica la ruta receptora donde se volcará el flujo procesado.bs=BYTES : Determina la cantidad de bytes que la utilidad transfiere por cada ciclo de lectura/escritura.count=N : Fija el número de bloques que se procesarán antes de dar por concluida la operación.status=LEVEL : Regula el nivel de detalle de los mensajes informativos en consola (por ejemplo, mostrando la evolución en directo con progress).conv=CONVS : Define transformaciones de contenido o mecanismos de sincronización de datos durante la transferencia (tales como sync o fdatasync).

Para cerciorarnos de que la estructura resultante ocupa exactamente la cuota fijada de 10 MB, examinamos sus atributos con ls -lh sample_10m.img:

2. Supervisión de transferencias en tiempo real con status=progress
Retomamos el entorno de pruebas asegurando la posición en el directorio con cd /tmp/dd_demo:

De manera predeterminada, dd ejecuta sus operaciones sin devolver información hasta finalizar. Añadir el modificador status=progress permite monitorizar en pantalla la velocidad de escritura, el volumen transferido y el tiempo acumulado mientras construimos el archivo sample_100m.img de 100 MB. Esta retroalimentación instantánea es crucial cuando se vuelcan volúmenes extensos o imágenes completas de disco.

Verificamos la correcta asignación de almacenamiento del fichero de 100 MB mediante la instrucción ls -lh sample_100m.img:

3. Transformación de flujos de datos: aplicación práctica de conv
Ingresamos al entorno de pruebas ejecutando cd /tmp/dd_demo antes de evaluar las opciones de transformación:

Creamos un archivo base denominado input.txt con una cadena en minúsculas mediante echo 'hello linux ubuntu dd command tutorial' > input.txt:

Al incorporar la directiva conv=ucase, dd transmuta automáticamente todas las letras minúsculas a sus correspondientes mayúsculas conforme escribe el resultado en output_upper.txt. Al mismo tiempo, el ajuste status=none silencia los reportes estadísticos para obtener un proceso limpio y desatendido:

Inspeccionamos el contenido resultante para validar que la conversión alfabética se aplicó de forma íntegra con cat output_upper.txt:

4. Medición del rendimiento de escritura I/O: uso de oflag=direct y limpieza
Nos posicionamos nuevamente en el directorio de pruebas con cd /tmp/dd_demo para realizar el test de rendimiento:

Durante pruebas de estrés o análisis de almacenamiento, la memoria intermedia del sistema operativo suele falsear las métricas de velocidad física. Al invocar oflag=direct, obligamos a dd a prescindir de la caché de páginas del kernel y escribir los 50 MB de datos de forma directa en el dispositivo de almacenamiento. La combinación con status=progress entrega una lectura pura y fidedigna del caudal continuo de escritura del medio físico.

Finalizada la sesión práctica, suprimimos el directorio de trabajo junto con todos los ficheros generados empleando rm -rf /tmp/dd_demo:

A lo largo de este recorrido hemos analizado la mecánica de trabajo de dd en Ubuntu, cubriendo desde la manipulación granular de bloques hasta la evaluación fidedigna del rendimiento de almacenamiento. Debido a la capacidad destructiva que posee sobre tablas de particiones y sistemas de archivos no montados, es una regla de oro verificar meticulosamente la ruta de destino (of) antes de desencadenar cualquier volcado.