Introducción al comando DD
dd
command es LINUX
una herramienta de línea de comandos para la transformación y el procesamiento de datos. dd
Significa " copia de datos ", que lee datos de un dispositivo o archivo y los escribe en otro. dd
Los comandos se pueden utilizar para una variedad de propósitos, incluidos los siguientes:
-
Copia de seguridad y clonación de disco
-
Recuperación de datos
-
creación de archivos en blanco
-
Descifrado de contraseñas
Características del comando DD
-
Flexibilidad: se puede usar para una variedad de operaciones de procesamiento y transformación de datos, incluidas copias de seguridad y clonación de discos, recuperación de datos, borrado de discos, creación de archivos en blanco y más.
-
Confiabilidad: al usar la interfaz del dispositivo de bloque subyacente para leer y escribir datos, los datos se pueden copiar por completo para garantizar la coherencia y la integridad de los datos.
-
Eficiencia: se pueden usar varios mecanismos de almacenamiento en caché para mejorar la velocidad de transmisión de datos y hacer que la replicación de datos sea más eficiente.
-
Sensibilidad: se pueden usar y ajustar diferentes tamaños de bloque y caché según sea necesario para adaptarse a diferentes requisitos de hardware y transferencia de datos.
-
Versatilidad: puede ejecutarse en diferentes sistemas operativos y plataformas de hardware, y tiene una gran versatilidad.
Parámetros comunes del comando DD
dd
El comando puede copiar un archivo en bloques de un tamaño específico y realizar transformaciones específicas durante la copia.
parámetro | nota |
---|---|
if=文件名 |
Ingrese el nombre del archivo, el valor predeterminado es la entrada estándar. Es decir, especifique el archivo fuente. <si=archivo de entrada> |
of=文件名 |
El nombre del archivo de salida, el valor predeterminado es la salida estándar. Es decir, especifique el archivo de destino. <de=archivo de salida> |
ibs=bytes |
Leer bytes bytes a la vez, es decir, especificar un tamaño de bloque de bytes bytes |
obs=bytes |
Salida bytes bytes a la vez, es decir, especificar un tamaño de bloque de bytes bytes |
bs=bytes |
También establezca el tamaño del bloque de lectura/salida en bytes bytes |
cbs=bytes |
Convierta bytes bytes a la vez, es decir, especifique el tamaño del búfer de conversión |
skip=blocks |
Saltar bloques bloques desde el principio del archivo de entrada antes de comenzar a copiar |
seek=blocks |
Saltar bloques bloques desde el principio del archivo de salida antes de comenzar a copiar |
status=progress |
Muestra información de progreso, como el número de bytes copiados por segundo y el porcentaje de progreso, etc. |
Ejemplo de uso del comando DD
# 复制文件内容
dd if=input.txt of=output.txt bs=1024
将input.txt文件复制到output.txt文件中,块大小为1024字节
# 将一个磁盘的内容复制到另一个磁盘中
dd if=/dev/sda of=/dev/sdb bs=4096
将/dev/sda磁盘的内容复制到/dev/sdb磁盘中,块大小为4096字节
# 将一个磁盘的内容复制到一个文件中
dd if=/dev/sda of=image.img bs=4096 count=1000 status=progress
将/dev/sda磁盘的前1000个块复制到image.img文件中,块大小为4096字节,并显示进度信息
----------------------------
# 创建空文件
dd if=/dev/zero of=newfile bs=1M count=10
创建一个名为newfile的文件,大小为10MB,其中每个块的大小为1MB
# 磁盘克隆
dd if=/dev/sda of=/dev/sdb bs=4096 conv=noerror,sync
将/dev/sda磁盘的内容复制到/dev/sdb磁盘中,块大小为4096字节。conv=noerror,sync表示在复制过程中忽略读取错误,并将输出同步到磁盘中
# 数据恢复
dd if=/dev/sda1 of=/mnt/usbdrive/recovered_data.img bs=4096 conv=noerror,sync
将/dev/sda1分区的内容复制到/mnt/usbdrive/recovered_data.img文件中,块大小为4096字节。conv=noerror,sync表示在复制过程中忽略读取错误,并将输出同步到磁盘中
# 密码破解
dd if=/dev/sda | john --stdin
将/dev/sda磁盘的内容传递给john密码破解工具,用于破解磁盘中的密码
ddrescue命令:用于数据恢复,可以在损坏的磁盘上执行数据恢复操作