Introducción
En este artículo, profundizaremos en 15 ejemplos prácticos del comando dd en Linux, incluida la salida del comando de ejemplo. Cada ejemplo estará acompañado de una explicación detallada para brindarle una comprensión completa del comando y su aplicación. Al final de este artículo, tendrá una sólida comprensión de las capacidades y los usos prácticos del comando dd, lo que le permitirá liberar todo su potencial para administrar y manipular datos en Linux.
Ejemplos prácticos del comando dd
copiar un archivo
El comando dd se puede usar para copiar archivos, al igual que el comando cp. El comando lee datos del archivo de entrada (if) y los escribe en el archivo de salida (of):
cp source_directory/*.txt destination_directory/
10+0 records in
10+0 records out
5120 bytes (5.1 kB, 5.0 KiB) copied, 0.000939 s, 5.4 MB/s
Crear una imagen de disco
Puede crear una imagen completa de un disco o partición usando el comando dd. Esto es útil para realizar copias de seguridad, ya que captura todo el disco o la partición, incluida su estructura y contenido:
dd if=/dev/sda of=/path/to/backup/disk_image.img
Restaurar una imagen de disco
Para restaurar un disco o partición a partir de una imagen, use el comando dd con el archivo de imagen como entrada y el disco o partición de destino como salida. Esto sobrescribirá el objetivo con el contenido del archivo de imagen:
dd if=disk_image.img of=/dev/sda
Creación de una unidad USB de arranque
Escriba una imagen ISO en una unidad USB para que sea de arranque. Esto es útil para instalar un nuevo sistema operativo o ejecutar una distribución en vivo de Linux:
dd if=linux_distro.iso of=/dev/sdb bs=4M status=progress
Borrado seguro de un disco
Sobrescriba un disco o una partición con datos aleatorios para asegurarse de que los datos originales no se puedan recuperar. Esto es útil cuando se eliminan dispositivos de almacenamiento o se prepara un dispositivo para el cifrado:
dd if=/dev/urandom of=/dev/sda bs=1M status=progress
Clonar un disco
Puede clonar un disco directamente en otro disco. Esto es útil para actualizar dispositivos de almacenamiento, migrar datos entre dispositivos o crear una copia de seguridad. La opción conv=noerror,sync garantiza que se ignoren los errores de lectura y que la salida se sincronice con la entrada:
dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
Conversión de mayúsculas a minúsculas
Convierta un archivo de texto con letras mayúsculas a minúsculas. Esto es útil para tareas de procesamiento de texto o para preparar datos para aplicaciones que distinguen entre mayúsculas y minúsculas:
dd if=input.txt of=output.txt conv=lcase
Conversión de minúsculas a mayúsculas
Convierta un archivo de texto con letras minúsculas a mayúsculas. Esto puede ser útil en el procesamiento de texto u otras aplicaciones donde se requieren caracteres en mayúsculas:
dd if=input.txt of=output.txt conv=ucase
Extraer una parte específica de un archivo
Extraiga los primeros 10 MB de un archivo. Esto puede ser útil para analizar una parte específica de un archivo grande o para crear muestras de datos más pequeñas con fines de prueba o demostración:
dd if=input_file of=extracted_file bs=1M count=10
Crear un archivo de tamaño fijo lleno de ceros
Cree un archivo de 1 GB lleno de ceros. Esto puede ser útil para asignar espacio en un sistema de archivos, probar el rendimiento del disco o crear archivos ficticios para varios propósitos:
dd if=/dev/zero of=1GB_file bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.17362 s, 914 MB/s
Recuperación de datos de un disco dañado
Utilice el comando dd para recuperar datos de un disco dañado. La opción conv=noerror,sync garantiza que se ignoren los errores de lectura y que la salida se sincronice con la entrada. Esto puede ser útil para recuperar la mayor cantidad de datos posible de un dispositivo de almacenamiento muerto o dañado:
dd if=/dev/sda of=recovered_data.img conv=noerror,sync
Leer comparativas de rendimiento
Mide el rendimiento de lectura de un dispositivo de almacenamiento leyendo datos del dispositivo y descartándolos en /dev/null. Esta prueba lo ayuda a evaluar la velocidad de lectura de un dispositivo de almacenamiento, lo cual es útil para fines de comparación o solución de problemas:
dd if=/dev/sda of=/dev/null bs=1M count=1024
Evaluación comparativa de rendimiento de escritura
Mide el rendimiento de escritura de un dispositivo de almacenamiento escribiendo una gran cantidad de datos en un archivo de prueba. La opción conv=fdatasync garantiza que los datos se escriban en el disco antes de que se complete el comando, lo que proporciona una medida más precisa de la velocidad de escritura. Esta prueba es útil para comparar dispositivos de almacenamiento o diagnosticar problemas de rendimiento:
dd if=/dev/zero of=testfile bs=1M count=1024 conv=fdatasync
Convertir un archivo de ASCII a EBCDIC
Convierta un archivo de texto de codificación ASCII a EBCDIC, que es una codificación que se utiliza principalmente en mainframes y sistemas de gama media de IBM. Esta conversión puede ser necesaria cuando se trabaja con sistemas heredados o se transfieren datos entre sistemas con diferentes estándares de codificación:
dd if=input.txt of=output.txt conv=ebcdic
Convertir un archivo de EBCDIC a ASCII
Convierta un archivo de texto de la codificación EBCDIC a ASCII, que es la codificación más común utilizada en los sistemas modernos. Esta conversión puede resultar útil al migrar datos de sistemas heredados o al trabajar con datos codificados originalmente en EBCDIC:
dd if=input.txt of=output.txt conv=ascii
Conclusión
El comando dd es una herramienta potente y flexible en Linux, que ofrece una amplia gama de aplicaciones en la manipulación y gestión de datos. Este artículo demostró 15 ejemplos prácticos del uso del comando dd, con una salida de comando de muestra proporcionada. Al igual que con cualquier herramienta poderosa, es importante tener cuidado al usar el comando dd, ya que el uso inadecuado puede provocar la pérdida o corrupción de datos. Al comprender sus capacidades y practicar estos ejemplos, puede dominar el uso del comando dd para administrar datos de manera eficiente y efectiva.