logo

Comando 'dd' en Linux

dd es una utilidad de línea de comandos para Unix y sistemas operativos similares cuyo objetivo principal es convertir y copiar archivos.

  • En Unix, los controladores de dispositivos para hardware (como unidades de disco duro) y archivos de dispositivos especiales (como /dev/zero y /dev/random) aparecen en el sistema de archivos como archivos normales.
  • dd también puede leer y/o escribir desde/hacia estos archivos, siempre que la función esté implementada en sus respectivos controladores
  • Como resultado, dd se puede utilizar para tareas como hacer una copia de seguridad del sector de arranque de un disco duro y obtener una cantidad fija de datos aleatorios.
  • El programa dd también puede realizar conversiones de los datos a medida que se copian, incluido el intercambio de orden de bytes y la conversión hacia y desde las codificaciones de texto ASCII y EBCDIC.

Uso: La sintaxis de la línea de comando de dd difiere de muchos otros programas Unix en que utiliza la sintaxis opción=valor por sus opciones de línea de comando, en lugar del más estándar -valor de la opción o –opción=valor formatos. De forma predeterminada, dd lee desde stdin y escribe en stdout, pero esto se puede cambiar usando las opciones if (archivo de entrada) y of (archivo de salida).

Algunos ejemplos prácticos del comando dd:



    Para hacer una copia de seguridad de todo el disco duro: para hacer una copia de seguridad de una copia completa de un disco duro en otro disco duro conectado al mismo sistema, ejecute el comando dd como se muestra. En este ejemplo del comando dd, el nombre del dispositivo UNIX del disco duro de origen es /dev/hda y el nombre del dispositivo del disco duro de destino es /dev/hdb.
     # dd if=/dev/sda of=/dev/sdb>
    • si representa el archivo de entrada, y de representa el archivo de salida. Entonces la copia exacta de /dev/sda estará disponible en /dev/sdb .
    • Si hay algún error, el comando anterior fallará. Si le das el parámetro conv=sin error luego continuará copiando si hay errores de lectura.
    • El archivo de entrada y el archivo de salida deben mencionarse con mucho cuidado. En caso de que menciones el dispositivo de origen en el de destino y viceversa, podrías perder todos tus datos.
    • Para copiar, de disco duro a disco duro usando el comando dd que se proporciona a continuación, la opción de sincronización le permite copiar todo usando E/S sincronizadas.
       # dd if=/dev/sda of=/dev/sdb conv=noerror, sync>
    Para hacer una copia de seguridad de una partición: puede usar el nombre del dispositivo de una partición en el archivo de entrada y, en la salida, puede especificar la ruta de destino o el archivo de imagen como se muestra en el comando dd.
     # dd if=/dev/hda1 of=~/partition.img>
    Para crear una imagen de un disco duro: en lugar de realizar una copia de seguridad del disco duro, puede crear un archivo de imagen del disco duro y guardarlo en otros dispositivos de almacenamiento. Hay muchas ventajas de hacer una copia de seguridad de sus datos en una imagen de disco, una de las cuales es la facilidad de uso. Este método suele ser más rápido que otros tipos de copias de seguridad, lo que le permite restaurar datos rápidamente después de una catástrofe inesperada. Crea la imagen de un disco duro /dev/hda.
     # dd if=/dev/hda of=~/hdadisk.img>
    Para restaurar usando la imagen del disco duro: Para restaurar un disco duro con el archivo de imagen de otro disco duro, se puede usar el siguiente comando dd
     # dd if=hdadisk.img of=/dev/hdb>

    El archivo de imagen hdadisk.img es la imagen de /dev/hda, por lo que el comando anterior restaurará la imagen de /dev/hda en /dev/hdb. Para crear una copia de seguridad en CDROM: el comando dd le permite crear un archivo iso a partir de un archivo fuente. Entonces podemos insertar el CD e ingresar el comando dd para crear un archivo iso del contenido del CD.

     # dd if=/dev/cdrom of=tgsservice.iso bs=2048>

    El comando dd lee un bloque de entrada, lo procesa y lo escribe en un archivo de salida. Puede especificar el tamaño del bloque para el archivo de entrada y salida. En el ejemplo del comando dd anterior, el parámetro bs Especifica el tamaño de bloque para el archivo de entrada y de salida. Así que dd usa 2048 bytes como tamaño de bloque en el comando anterior.

Referencias: