Marcio Cunha

Cómo usar el comando dd en Linux para clonar discos de forma segura

Aprende a realizar copias bit a bit con el comando dd en Linux, entendiendo los riesgos críticos de la identificación de dispositivos y cómo validar la integridad de tus clones.

Marcio Cunha•3 min
También disponible en:PortuguêsEnglish
Resumen
  • El comando dd realiza una copia binaria absoluta, ignorando el sistema de archivos y replicando el disco sector por sector.
  • La elección incorrecta de los identificadores de dispositivo, como confundir /dev/sda con /dev/sdb, resulta en pérdida total e irreversible de datos.
  • La validación posterior a la copia requiere comparar hashes SHA-256 entre el origen y el destino para garantizar la fidelidad absoluta de los datos.
  • El monitoreo de cuellos de botella de E/S es esencial, ya que las operaciones de bajo nivel exponen limitaciones de hardware como se detalla en nuestras guías de rendimiento de disco .
  • Herramientas como ddrescue son alternativas más seguras cuando el disco presenta sectores físicos defectuosos.

Qué es el comando dd y por qué es tan potente

El comando dd es una de las utilidades más antiguas y versátiles del ecosistema Unix. A diferencia de una copia de archivos común, realiza una copia 'bit a bit' (o 'sector por sector'). No le interesan las carpetas o archivos; lee los datos físicos desde el origen y los escribe exactamente igual en el destino. Es como tomar una fotografía analógica perfecta de un disco duro, capturando todo, desde archivos eliminados hasta la tabla de particiones y el sector de arranque.

El riesgo fatal: Por qué debes temer a los identificadores

El mayor peligro de dd es su obediencia ciega. Si le ordenas sobrescribir tu disco de respaldo con un origen vacío, lo hará sin dudarlo. Identificadores como /dev/sda, /dev/sdb o /dev/nvme0n1 pueden cambiar tras reiniciar el sistema dependiendo del puerto SATA o bus PCIe en uso. Nunca confíes en el nombre del dispositivo sin verificarlo antes con comandos como lsblk o fdisk -l. La regla de oro es: identifica la unidad por su tamaño y UUIDs, nunca solo por el nombre corto asignado por el kernel.

Cómo clonar discos de forma segura en la práctica

Para clonar un disco de forma segura, debes asegurarte de que ambos dispositivos estén desmontados. Escribir en una partición que está siendo leída por el sistema operativo es la receta perfecta para la corrupción de datos. El parámetro bs (block size) define el tamaño del bloque de lectura/escritura; usar valores como 4M o 64K acelera el proceso significativamente. Al ejecutar la tarea, usa el parámetro status=progress para monitorear la velocidad y el volumen de datos procesados en tiempo real.

  1. Lista los discos para identificar el origen y el destino correctamente:
    lsblk
  2. Desmonta todas las particiones de la unidad de destino:
    umount /dev/sdb*
  3. Ejecuta la copia bit a bit:
    sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress conv=fsync

Validación de la integridad del clon

Después de horas esperando a que el comando finalice, ¿cómo saber si la copia es idéntica? La forma más fiable es calcular el hash (una 'huella digital' matemática) de ambos discos. Si el hash SHA-256 es idéntico, la copia es fiel. Si estás clonando solo una partición, aplica el hash al nodo del dispositivo (ej: /dev/sda1). Para discos completos con tablas de particiones, el proceso de validación es más complejo, pero es un paso esencial antes de retirar el disco original del sistema.

Consideraciones sobre fallos físicos

Si tu disco original hace ruidos metálicos o informa errores de lectura vía smartctl, el comando dd estándar se bloqueará ante el primer sector defectuoso que encuentre. En esos escenarios, intentar una clonación estándar puede empeorar el daño físico. Prefiere siempre herramientas diseñadas para manejar errores de E/S, que pueden saltar sectores dañados e intentar recuperarlos más tarde, asegurando que se rescate la mayor cantidad posible de datos antes de que el dispositivo falle totalmente. Para complementar esta implementación en entornos de producción, consulte también nuestros análisis técnicos sobre Qué es CORS y cómo resolver errores de bloqueo en el navegador y Cómo identificar componentes SMD mediante códigos impresos.

Conclusión

El comando dd es una utilidad indispensable para cualquier administrador Linux, pero exige disciplina estricta y extrema precaución. La capacidad de clonar discos sin una capa de abstracción es valiosa, pero el riesgo de error humano es igualmente significativo.

Realiza siempre un checklist de tres pasos antes de ejecutar el comando: verifica la identidad de los dispositivos con lsblk, asegúrate de que el destino no contiene datos vitales y valida el resultado final con sumas de verificación (checksums). Si la operación es crítica, opta siempre por herramientas con manejo nativo de errores.