El comando dd en Linux es una herramienta extremadamente poderosa y versátil, conocida por su capacidad para interactuar directamente con dispositivos de bloques. Esta guía para principiantes explora el comando dd, su sintaxis y diversos casos de uso, destacando su papel en la copia de archivos, respaldo y restauración de particiones de disco, y la creación de unidades USB de arranque.
Sintaxis del Comando dd
La sintaxis del comando dd es sencilla. Por defecto, lee desde la entrada estándar y escribe en la salida estándar. Aquí está la sintaxis básica del comando dd:
dd [opciones]
Es importante notar que dd se desvía de la convención estándar de usar las opciones --
o -
, lo que lo distingue de la mayoría de los comandos de la shell de Linux.
Opciones Comunes del Comando dd
El comando dd acepta varias opciones para personalizar su comportamiento y lograr tareas específicas. Aquí algunas de las opciones más comúnmente usadas:
Opción | Descripción |
---|---|
if | Especifica el archivo de entrada (fuente). |
of | Especifica el archivo de salida (destino). |
bs | Define el tamaño del bloque para leer del archivo de entrada y escribir en el archivo de salida. |
count | Especifica el número de bloques a copiar. |
skip | Omite un número específico de bloques o bytes al leer el archivo de entrada. |
seek | Omite un número específico de bloques o bytes al escribir en el archivo de salida. |
status | Muestra el progreso del comando dd. |
conv | Especifica opciones de conversión para el archivo de entrada o salida. |
13 Ejemplos Prácticos del Comando dd
1. Copiar Archivos en Linux
Para hacer una copia simple de un archivo, puedes usar el comando dd con las opciones if
y of
. Por ejemplo, para copiar un archivo llamado source.txt
a un nuevo archivo llamado destination.txt
, ejecuta el siguiente comando:
dd if=source.txt of=destination.txt
2. Prevenir la Sobrescritura del Archivo de Destino
Para evitar sobrescribir un archivo existente, usa la opción conv=notrunc
. Esto asegura que el archivo de destino no se trunque durante el proceso de escritura:
dd if=source.txt of=destination.txt conv=notrunc
3. Anexar Datos a un Archivo
Puedes anexar datos a un archivo existente usando la opción conv=notrunc,oflag=append
. Por ejemplo:
dd if=users.txt of=newusers.txt conv=notrunc,oflag=append
4. Convertir Texto a Mayúsculas
El comando dd puede usarse para realizar conversiones de texto. Para convertir todo el texto de un archivo de minúsculas a mayúsculas, usa la opción conv=ucase
:
dd if=lowercase.txt of=uppercase.txt conv=ucase
5. Crear una Copia de Seguridad de una Partición de Disco
Para respaldar una partición de disco, identifica el dispositivo de bloques asociado con la partición. Por ejemplo, para respaldar la primera partición del disco en /dev/sda
:
dd if=/dev/sda1 of=partition_backup.img
Para restaurar una partición, invierte los archivos de entrada y salida en el comando:
dd if=partition_backup.img of=/dev/sda1
6. Crear una Copia de Seguridad del Disco Duro Completo
Para respaldar todo el disco duro:
dd if=/dev/sda of=hard_drive_backup.img
Para restaurar el disco duro desde una copia de seguridad:
dd if=hard_drive_backup.img of=/dev/sda
7. Crear una Copia de Seguridad del Registro de Arranque Maestro (MBR)
Para respaldar el MBR:
dd if=/dev/sda of=mbr_backup.img bs=512 count=1
Para restaurar el MBR:
dd if=mbr_backup.img of=/dev/sda bs=512 count=1
8. Copiar Contenido de una Unidad CD/DVD
Para crear una copia exacta de un CD o DVD:
dd if=/dev/cdrom of=disk_copy.iso
9. Comprimir Datos Leídos por dd
Para clonar un disco y comprimir los datos leídos usando gzip
:
sudo dd if=/dev/sda bs=1M | gzip -c -9 > sda.dd.gz
10. Saltar Bytes al Leer el Archivo de Entrada
Para omitir un número específico de bytes al leer el archivo de entrada:
dd if=user.txt of=newusers.txt skip=100
11. Limpiar un Dispositivo de Bloques
Para sobrescribir un dispositivo con ceros:
sudo dd if=/dev/zero bs=1M of=/dev/sda
Para llenar el disco con datos aleatorios:
sudo dd if=/dev/urandom bs=1M of=/dev/sda
12. Crear una Unidad USB de Arranque
Para crear una unidad USB de arranque desde una imagen ISO:
dd if=linux_distro.iso of=/dev/sdX bs=4M status=progress
13. Mostrar la Barra de Progreso
Para mostrar una barra de progreso mientras se copia un archivo:
dd if=source_file of=destination_file status=progress
Conclusión
En esta guía, hemos explorado el comando dd y sus múltiples aplicaciones, como la creación de copias de seguridad y unidades USB de arranque. Debido a su poder, debe usarse con extrema precaución para evitar la pérdida de datos. Se recomienda siempre consultar la documentación oficial para ampliar el conocimiento y explorar escenarios de uso avanzado. Si tienes dudas no ejecutes estos comandos, siempre que lo hagas será bajo tu total responsabilidad.