Comando DD de Linux

Comando DD de Linux
"DD" es una herramienta CLI de Linux. Ahora, la versión actual de "DD" es parte de GNU CoreUtils, es la que presenta cada sistema Unix/Linux. El propósito principal de esta herramienta es convertir y copiar archivos. Sin embargo, es bastante diferente a otras herramientas de copia de archivos como "CP".

Características DD

"DD" se puede utilizar para varios fines:

  • Usando "DD", es posible leer y/o escribir directamente de/a diferentes archivos siempre que la función ya esté implementada en los controladores respetados.
  • Es súper útil para fines como hacer una copia de seguridad del sector de arranque, obtener datos aleatorios, etc.
  • Conversión de datos, por ejemplo, convirtiendo la ASCII a la codificación EBCDIC.

uso de DD

Estos son algunos de los usos más comunes e interesantes de "DD". Por supuesto, "DD" es mucho más capaz que estas cosas. Si está interesado, siempre recomiendo visitar otros recursos en profundidad en "DD".

Ubicación

Que DD

Como la salida indica, cuando se ejecuta "DD", se lanza desde "/usr/bin/dd".

Uso básico

Aquí está la estructura que sigue "DD".

dd if = de =

Por ejemplo, creemos un archivo con datos aleatorios. Hay algunos archivos especiales incorporados en Linux que aparecen como archivos normales como "/dev/cero" que producen un flujo continuo de nulo, "/dev/random" que produce datos aleatorios continuos.

dd if =/dev/urandom of = ~/escritorio/aleatorio.txt bs = 1m Count = 5

Las primeras opciones se explican por sí mismas. Significa usar "/dev/urandom" como fuente de datos y "~/escritorio/aleatorio.txt "como destino. Cuáles son las otras opciones?

Aquí, "BS" significa "tamaño de bloque". Cuando DD está escribiendo datos, escribe en bloques. Usando esta opción, se puede definir el tamaño del bloque. En este caso, el valor "1m" dice que el tamaño del bloque es 1 megabyte.

"Count" decide el número de bloques a escribir. Si no se soluciona, "DD" continuará el proceso de escritura a menos que finalice el flujo de entrada. En este caso, "/dev/urandom" continuará generando datos infinitamente, por lo que esta opción fue primordial en este ejemplo.

Copias de seguridad

Usando este método, "DD" se puede usar para descargar los datos de una unidad completa! Todo lo que necesitas es decirle a la unidad como fuente.

dd if = de =

Si está buscando tales acciones, asegúrese de que su fuente no sea un directorio. "DD" no tiene idea de cómo procesar un directorio, para que las cosas no funcionen.

"DD" solo sabe cómo trabajar con archivos. Entonces, si necesita hacer una copia de seguridad de un directorio, use Tar para archivarlo primero, luego use "DD" para transferirlo en un archivo.

demo de Tar CVJF.alquitrán.XZ Demodir/
dd if = demo.alquitrán.xz de = ~/escritorio/copia de seguridad.img

En el siguiente ejemplo, realizaremos una operación muy sensible: hacer una copia de seguridad del MBR! Ahora, si su sistema está utilizando MBR (registro de arranque maestro), se encuentra en los primeros 512 bytes del disco del sistema: 466 bytes para el cargador de arranque, otros para la tabla de partición.

Ejecute este comando para hacer una copia de seguridad del registro MBR.

dd if =/dev/sda de = ~/escritorio/mbr.img bs = 512 recuento = 1

Restaurar datos

Para cualquier copia de seguridad, es necesario restaurar los datos. En el caso de "DD", el proceso de restauración es un poco diferente a cualquier otra herramienta. Debe reescribir el archivo de copia de seguridad en una carpeta/partición/dispositivo similar.

Por ejemplo, tengo esta "copia de seguridad.archivo img "que contiene la" demostración.alquitrán.archivo xz ". Para extraerlo, utilicé el siguiente comando.

dd if = copia de seguridad.img of = demo.alquitrán.xz

Nuevamente, asegúrese de estar escribiendo la salida a un archivo. "DD" no es bueno con los directorios, recuerde?

Del mismo modo, si se usó "DD" para crear una copia de seguridad de una partición, entonces restaurarla requeriría el siguiente comando.

dd if = de =

Por ejemplo, ¿qué tal la restauración del MBR retrocedimos antes??

DD IF = MBR.img de =/dev/sda

Opciones "DD"

En algún momento de esta guía, enfrentó algunas opciones de "DD" como "BS" y "Cuenta", correcto? Bueno, hay más de ellos. Aquí hay una lista corta sobre lo que son y cómo usarlos.

  • Obs: determina el tamaño de los datos que se escribirán a la vez. El valor predeterminado es 512 bytes.
  • CBS: determina el tamaño de los datos que se convertirán a la vez.
  • IBS: determina el tamaño de los datos a leer a la vez.
  • Conte: Copiar solo n bloqueos
  • buscar: omita los bloques N al comienzo de la salida
  • Skip: omita los bloques N al comienzo de la entrada
Conv = ASCII: convierte la entrada del archivo de EBCDIC a ASCII
conv = ebcdic: convierte la entrada del archivo de ASCII a EBCDIC
conv = IBM: convierte la entrada del archivo de ASCII a EBCDIC alternativa
conv = lcase: convierte la entrada de archivo de mayúsculas a minúsculas
conv = ucase: convierte la entrada de archivo de minúsculas a mayúsculas
Conv = SwaB: intercambie cada par de entradas

Opciones adicionales:

  • nocreat: no cree el archivo de salida
  • NOTRUC: no trunce el archivo de salida
  • NoError: continúe la operación, incluso después de enfrentar el error
  • FDatasync: escriba datos en el almacenamiento físico antes de que termine el proceso
  • FSYNC: Similar a FDatasync, pero también escribe los metadatos
  • iflag: ajuste la operación basada en varias banderas. Los indicadores disponibles incluyen: agregar para agregar datos a la salida

Opciones adicionales:

  • Directorio: enfrentar un directorio fallará la operación
  • DSYNC: E/S sincronizada para datos
  • Sync: similar a DSYNC pero incluye metadatos
  • Nocache: Solicitudes para dejar caer caché.
  • Nofollow: no sigas ningún enlace simbólico

Opciones adicionales:

  • count_bytes: similar a “count = n”
  • Seek_bytes: similar a "Seek = n"
  • skip_bytes: similar a "skip = n"

Como has visto, es posible apilar múltiples banderas y opciones en un solo comando "DD" para ajustar el comportamiento de la operación.

dd if = demo.txt de = demo1.txt bs = 10 recuento = 100 conv = ebcdic
iflag = append, nocache, nofollow, sincronización

Pensamientos finales

El flujo de trabajo de "DD" es bastante simple. Sin embargo, para que "DD" realmente brille, depende de ti. Hay toneladas de formas en que se pueden usar "DD" para realizar interacciones inteligentes.

Para obtener información detallada sobre "DD" y todas sus opciones, consulte el hombre y la página de información.

Man DD