Dd (Unix)Ü dd es un programa de la familia de los sistemas operativos Unix y una orden POSIX, que permite copiar y convertir datos de archivos a bajo nivel. Es generalmente usado para realizar operaciones avanzadas sobre dispositivos o archivos, como pueden ser:
DescripciónEs importante señalar que, en sistemas operativos Unix, cualquier dispositivo se trata y gestiona como un archivo.[2] Por tanto, la orden dd puede ser utilizada con diversos dispositivos y volúmenes (particiones), más allá de los archivos propiamente dichos. Según la especificación POSIX, dd copia el archivo indicado como origen (if, del inglés input file) en el archivo indicado como destino (of, de output file), teniendo en cuenta la conversión de los datos (conversion) y el tamaño de bloque requerido (bs, de block size). Si no se hubiera especificado el origen o el destino, dd por defecto utilizaría la entrada o la salida estándar, respectivamente, para llevar a cabo la operación. Si se ha especificado el tamaño de bloque a transferir (mediante el parámetro bs) y no se ha indicado conversión alguna salvo noerror, notrunc o sync, se procede a la lectura, bloque por bloque, del archivo origen, y a su correspondiente escritura en el destino. El tamaño del bloque a escribir es idéntico al del bloque leído, salvo que se indique la conversión sync, en cuyo caso se procede a rellenar con ceros el bloque de destino. Si no se utiliza sync, el último bloque escrito puede ser de tamaño inferior al resto. Por último, en caso de que no se haya especificado un tamaño de bloque, dd usa 512 bytes como tamaño por defecto. Modo de usoLa invocación de la orden dd tiene el siguiente formato:[3] dd [PARÁMETRO] ...
Los principales parámetros son:
UsosDada la naturaleza de la instrucción dd de operar a bajo nivel (bytes), es posible utilizarlo para diversos fines. Eliminación de datosSe realiza un formateo a medio nivel (sustituir todos los bits del disco archivo o carpeta por 0) mediante (con permisos de root) dd if=/dev/zero of=/<archivo, directorio o disco a borrar>
Sin embargo esto deja abierta la posibilidad de leer los datos presentes antes del borrado en el disco mediante métodos avanzados. Si se quiere una protección completa, en lugar de escribir ceros en el disco, se recomienda escribir datos aleatorios utilizando dd if=/dev/urandom of=/<archivo, directorio, o disco a borrar>
El generador de números aleatorios urandom funcionará de forma ligeramente diferente en los distintos tipos de sistemas UNIX, por lo que es recomendable verificarlo antes de utilizarlo. Creación de unidades USBOtro de los principales usos de dd es la creación de unidades USB autoarrancables, mediante la sintaxis:[4][5] dd if=/<ruta_imagen.iso> of=/dev/sdN
Donde N es la unidad USB que necesitamos autoarrancar. Clonar una particiónDesde el disco /dev/sda partición 1, al disco /dev/sdb partición 1:[6] dd if=/dev/sda1 of=/dev/sdb1 bs=64K conv=noerror,sync status=progress
Si la partición de salida sdb1 en el ejemplo) no existe, dd creará un archivo con este nombre y comenzará a llenar el sistema de archivos raíz. Clonar un disco duro completoDesde el disco /dev/sda al disco /dev/sdb:[6] dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
Esta orden clonará toda la unidad, incluido el MBR (y, por lo tanto, el cargador de arranque), todas las particiones, UUID y datos. Véase tambiénEnlaces externos
Referencias
|