![¿Qué es un archivo por lotes en Windows? ¿Cómo crear un archivo por lotes?](/f/ac82b9bd8d0aacb35de72719f045293f.png?width=100&height=100)
Breve: En esta guía avanzada, analizaremos algunos ejemplos prácticos del comando dd. Después de seguir esta guía, los usuarios avanzados podrán trabajar con los dispositivos de bloques cómodamente desde la interfaz de línea de comandos.
En Linux, todo es un archivo y los dispositivos de bloque no son una excepción. A menudo, necesitamos trabajar con dispositivos de bloque. Como usuarios de Linux, realizamos una variedad de operaciones en dispositivos de bloques, tales como: tomar una copia de seguridad de un disco o partición, hacer una copia de seguridad de Master Boot Record (MBR), hacer una unidad USB de arranque, Y la lista continúa.
Ciertamente, podemos utilizar herramientas gráficas para realizar todas estas operaciones. Sin embargo, la mayoría de los administradores de Linux prefieren usar el comando dd debido a su rica funcionalidad y robustez.
En esta guía avanzada, aprenderemos sobre la comando dd para convertir y copiar archivos. Sin embargo, a diferencia del comando cp la mayoría de las veces se usa con dispositivos de bloque.
En esta guía, primero, entenderemos el uso de la comando dd con ejemplos básicos, luego discutiremos algunos casos de uso avanzados.
Tabla de contenido
Entonces empecemos.
La sintaxis más común del comando dd es como sigue:
$ dd [si=] [de=]
En la sintaxis anterior:
Precaución – Es importante tener en cuenta que el comando dd debe usarse con mucha precaución al trabajar con los dispositivos de bloque. Un pequeño error puede causar la pérdida permanente de datos. Por lo tanto, se recomienda encarecidamente probar primero estas operaciones en la máquina de prueba.
Uno de los usos básicos de la comando dd es copiar un archivo en un directorio actual. Entendamos creando un archivo de texto simple:
$ echo "este es un archivo de texto de muestra" > archivo-1.txt.
Ahora, vamos a crear una copia usando el comando dd:
$ dd if=archivo-1.txt of=archivo-2.txt.
En este ejemplo, el si
El parámetro representa el archivo fuente mientras que el de
El parámetro representa el archivo de destino.
¿No es exactamente similar a la comando cp? Entonces, ¿qué tiene de especial el comando dd?
El comando dd es mucho más potente que el normal comando cp. Las últimas secciones del tutorial analizan algunos de sus casos de uso avanzados.
El comando dd nos permite realizar conversión de casos. Para lograr esto podemos utilizar el conversión parámetro con él.
Para entender esto, primero, muestre el contenido de la archivo-1.txt archivo:
$ gato archivo-1.txt este es un archivo de texto de muestra.
Ahora, vamos a convertir el contenido del archivo a mayúsculas usando el siguiente comando:
$ dd if=archivo-1.txt of=mayúsculas.txt conv=ucaso.
En este ejemplo, el conv=caso
La opción se utiliza para convertir las letras minúsculas en letras mayúsculas.
Finalmente, verifique el contenido del archivo recién creado:
$ gato mayúsculas.txt ESTE ES UN ARCHIVO DE TEXTO DE MUESTRA.
De manera similar, podemos utilizar el comando dd para convertir las letras mayúsculas en minúsculas:
Usemos el conv=caso
opción para convertir las letras mayúsculas a minúsculas:
$ dd if=mayúsculas.txt of=minúsculas.txt conv=lcase.
Ahora, mostremos el contenido del archivo recién creado y verifiquemos que la conversión se haya realizado correctamente:
$ gato minúsculas.txt este es un archivo de texto de muestra
Por defecto, el comando dd reemplaza el archivo de destino, lo que significa que sobrescribirá el archivo si existe en el destino con el mismo nombre.
Sin embargo, podemos deshabilitar este comportamiento predeterminado usando el conv=excl
opción como se muestra.
$ dd if=archivo-1.txt of=archivo-2.txt conv=excl dd: no se pudo abrir el archivo 'file-2.txt' El archivo existe
Aquí, podemos ver que el comando dd ha abortado las operaciones porque el archivo con el mismo nombre está presente en el destino.
A veces, queremos actualizar el archivo en un modo de adición, lo que significa que los nuevos contenidos deben agregarse al final del archivo de destino.
Podemos lograr esto combinando las dos banderas: oflag=añadir
y conv=notrunc
. Aquí el oflag
representa el indicador de salida mientras que el notrunc
La opción se utiliza para deshabilitar el truncamiento en el destino.
Para entender esto, primero, creemos un nuevo archivo de texto:
$ echo "añadir demostración de ejemplo" > dest.txt.
A continuación, agreguemos los contenidos al destino.txt archivo usando el siguiente comando:
$ dd if=file-1.txt of=dest.txt oflag=append conv=notrunc.
Ahora, vamos a comprobar el contenido de la destino.txt archivo:
$ cat dest.txt agregar demostración de ejemplo. este es un archivo de texto de muestra.
Podemos instruir a comando dd para omitir los primeros caracteres mientras lee el archivo de entrada usando el SII y saltar opciones
En primer lugar, vamos a mostrar el contenido de la archivo-1.txt archivo:
$ cat file-1.txt este es un archivo de texto de muestra.
A continuación, saltemos los primeros 8 caracteres usando el siguiente comando:
$ dd if=archivo-1.txt of=archivo-2.txt ibs=8 skip=1.
Ahora, vamos a verificar el contenido de la archivo-2.txt archivo:
$ cat file-2.txt un archivo de texto de muestra.
En el resultado anterior, podemos ver que el comando ha omitido los primeros 8 caracteres.
Hasta ahora hemos discutido los ejemplos básicos de la comando dd que no requiere acceso de root. Ahora, veamos algunos casos de uso avanzados.
Al igual que los archivos, podemos hacer una copia de seguridad de la partición del disco usando el comando dd. Por ejemplo, el siguiente comando realiza una copia de seguridad del /dev/sda1 partición a partición-bkp.img:
$ sudo dd if=/dev/sda1 of=partition-bkp.img.
En el ejemplo anterior, hicimos una copia de seguridad del /dev/sda1 partición a la partición-bkp.img archivo.
Ahora, vamos a restaurarlo a la /dev/sdb1 partición usando el siguiente comando:
$ sudo dd if=partition-bkp.img of=/dev/sdb1.
Es importante tener en cuenta que el tamaño de la partición de destino debe ser igual o mayor que el tamaño de la copia de seguridad.
La unidad de disco puede tener múltiples particiones. Por lo tanto, tomar y restaurar una copia de seguridad por partición puede llevar mucho tiempo a medida que aumenta la cantidad de particiones. Para superar esta limitación, podemos hacer una copia de seguridad de toda la unidad de disco al igual que las particiones.
Entonces, tomemos la copia de seguridad del /dev/sda disco usando el siguiente comando:
$ sudo dd if=/dev/sda of=disk-bkp.img.
El comando anterior realiza una copia de seguridad de todo el disco, incluidas sus particiones.
Al igual que las particiones, podemos restaurar la copia de seguridad de todo el disco. En el ejemplo anterior, hicimos una copia de seguridad de todo el disco en el disco-bkp.img archivo. Ahora, usemos lo mismo para restaurarlo en el /dev/sdb disco.
Primero, eliminemos todas las particiones del /dev/sdb disk y verifique que todas las particiones hayan sido eliminadas:
$ lsblk /dev/sdb.
A continuación, vamos a restaurar la copia de seguridad en el /dev/sdb conducir usando el siguiente comando:
$ sudo dd if=disk-bkp.img of=/dev/sdb.
Finalmente, verifique que la partición haya sido creada en el /dev/sdb disco:
$ lsblk /dev/sdb.
El Master Boot Record (MBR) se encuentra en el primer sector del disco de arranque. Almacena información sobre las particiones del disco. Podemos usar el comando dd como se muestra a continuación para tomar una parte posterior de la misma:
$ sudo dd if=/dev/sda of=mbr.img bs=512 count=1.
El comando anterior recupera los primeros 512 bytes, es decir, un sector.
Es importante tener en cuenta que el comando anterior debe ejecutarse en el disco de arranque.
En el ejemplo anterior, hicimos una copia de seguridad del Master Boot Record (MBR). Ahora, vamos a restaurarlo en el /dev/sdb disco usando el siguiente comando:
$ sudo dd if=mbr.img of=/dev/sdb.
Similar a las particiones y discos, podemos usar el comando dd para copiar contenidos desde la unidad de CD o DVD. Así que usemos el siguiente comando para hacer lo mismo:
$ sudo dd if=/dev/cdrom of=alma-minimal.iso.
En Linux, la unidad de CD/DVD está representada por el /dev/cdrom dispositivo. Por lo tanto, lo estamos usando como un archivo fuente.
Ahora, verifiquemos que el contenido se haya copiado con éxito verificando su comando de suma de comprobación:
$ sha256sum alma-minimal.es.
En el ejemplo anterior, creamos una imagen iso de Alma Linux. Ahora usémoslo para crear una unidad USB de arranque:
$ sudo dd if=alma-minimal.iso of=/dev/sdb.
Es importante tener en cuenta que el comando anterior debe ejecutarse con la unidad USB correcta.
Por defecto, el comando dd no muestra el progreso mientras se realiza la operación de copia. Sin embargo, podemos anular este comportamiento predeterminado utilizando la opción de estado.
Así que usemos el estado=progreso
opción con el comando dd para mostrar la barra de progreso:
$ sudo dd if=alma-minimal.iso of=/dev/sdb status=progreso.
En este artículo, discutimos algunos ejemplos prácticos de la comando dd. Los usuarios avanzados pueden consultar estos ejemplos en la vida cotidiana mientras trabajan con sistemas Linux. Sin embargo, debemos tener mucho cuidado al ejecutar estos comandos. Porque un pequeño error puede sobrescribir el contenido de todo el disco.
¿Conoces algún otro mejor ejemplo del comando dd en Linux? Háganos saber sus puntos de vista en los comentarios a continuación.