Cómo usar el comando dd en Linux

1

 

dd es uno de los comandos más importantes de Linux, utilizado principalmente para realizar copias de seguridad de discos duros y particiones. Cuando se utiliza correctamente, dd puede ser una herramienta poderosa para escribir datos de una partición a otra y realizar diferentes tareas con archivos. Aquí le mostramos cómo hacer un buen uso del comando dd.

La historia de dd

El comando fue desarrollado originalmente en AT&T Bell Laboratories en la década de 1970 por un científico informático llamado Ken Thompson. Fue desarrollado para sistemas basados ​​en Unix y se le dio un nombre que se eligió como referencia a una declaración que se encuentra en el lenguaje de control de trabajos de IBM, que se llamó "DD". Se puede observar que la sintaxis del comando se parece mucho a una declaración en el lenguaje de control de trabajos.

El comando se diseñó originalmente para ser una utilidad para convertir ASCII a EBCDIC y viceversa. Primero se integró con una versión de Unix en 1974, con el lanzamiento de la quinta edición del sistema operativo.

dd ha sido llamado "destructor de discos" como una broma en la comunidad de Unix debido a su capacidad para destruir datos en discos duros cuando se usa incorrectamente.

Operandos básicos

Ahora que ya sabes un poco sobre el trasfondo del comando y sus habilidades destructivas cuando se usa incorrectamente, es momento de aprender a aprovechar todo lo que ofrece a los usuarios de las diferentes distribuciones de Linux .

En primer lugar, consulte el manual utilizando el--helpbandera:

dd  --ayuda

Hay dos operandos para el comando que se utilizan más comúnmente. Ellos sonifyof, que significan "archivo de entrada" y "archivo de salida" respectivamente. losifoperando se utiliza para representar la ubicación de origen, mientras que elofEl operando se utiliza para representar la ubicación en la que desea guardar los datos de la ubicación de entrada.

dd  if = < archivo de entrada >  of = < archivo de salida >

Las ubicaciones de origen y salida más comunes incluyen discos duros, particiones e imágenes de disco.

Antes de usar el comando, puede ser útil usar la fdiskutilidad para ver las particiones en su sistema. Esto se puede hacer fácilmente usando el comando-lbandera:

sudo  fdisk  -l

En este caso,ifse utiliza para representar la unidad "/dev/sda", yofrepresenta la unidad "/dev/sdb", donde se guardarán los datos de "/dev/sda":

dd  si = / dev / sda de = / dev / sdb

Creación de una imagen de disco

Uno de los mejores casos de uso para el comando es crear imágenes de disco en el formato de archivo ".img". Esto es extremadamente útil para hacer una copia de seguridad de los datos en su sistema basado en Linux y es probablemente la forma más rápida y sencilla de hacer una copia de seguridad de un disco duro completo.

La lógica aquí es principalmente la misma en este caso, con elifoperando que representa la unidad "/dev/sda" y laofoperando que representa un archivo “.img”, donde se guardarán los datos del disco duro en:

dd  if = / dev / sda de = ejemplo.img


Guardar una imagen de disco en una partición

Crear una imagen de disco con el comando es bastante sencillo, pero también lo es la versión inversa de ese proceso.

En este escenario, nuestro archivo de imagen de disco actúa como archivo de entrada y nuestra nueva partición actúa como archivo de salida. La utilidad está guardando los datos de nuestra imagen de disco en nuestra partición “/dev/sdb”:

dd  if =ejemplo.img de = / dev / sdb


Creación de una imagen de disco comprimida

Si crea una imagen de disco de un disco duro de tamaño completo, puede imaginar que el tamaño del archivo de la imagen de disco final probablemente sea bastante grande. Por esta razón, la utilidad dd tiene una función que crea imágenes de disco comprimidas.

Se puede crear una imagen de disco comprimida usando la tubería|mando. En este caso, se utiliza para tomar el contenido del archivo de entrada y realizar elgzipcomando con un-cbandera, con el contenido empaquetado en un archivo ".gz":

dd  si = / dev / sda |  gzip  -c  > imagen.gz


 Especificación de un tamaño de bloque

También puede jugar con la velocidad de la operación del comando dd. Esto se puede lograr usando elbsoperando, que se utiliza para representar el tamaño del bloque. El tamaño del bloque representa el número de bytes dd copias al archivo de salida en una sola instancia. Se representa mediante múltiplos de 1024 bytes y el valor predeterminado se establece en 512 bytes. Cuanto mayor sea el tamaño del bloque, más rápido se guardarán los datos en el archivo de salida.

En este caso, estamos configurando el tamaño del bloque en 2048:

dd  if = / dev / sda de = ejemplo.img bs = 2048

El tamaño del bloque también se puede especificar en kilobytes:

dd  if = / dev / sda de =ejemplo.img bs =2048K

Limpiar un disco duro

dd también se puede usar para limpiar su disco duro. Esto se logra leyendo ceros o caracteres aleatorios de “/dev/zero” o “/dev/urandom” y guardándolos en el disco duro/partición, que sobrescribe los datos en él. Esto es extremadamente útil cuando desea asegurarse de que sus datos no se puedan recuperar fácilmente después de haber vendido o desechado su disco duro.

Sobrescribir un disco duro usando ceros:

dd  si = / dev / cero de = / dev / sdb


 El proceso de sobrescritura también se puede realizar utilizando caracteres aleatorios:

dd  if = / dev / urandom of = / dev / sdb

Creación de una unidad USB de arranque

La creación de unidades flash USB de arranque utilizando archivos ".iso" con el comando es simple:

dd  if =os.iso of = < Ubicación de la unidad USB >

Terminando

Es seguro decir que el comando dd puede considerarse una "navaja suiza" debido a su utilidad en muchas áreas y todo lo relacionado con discos duros, particiones y archivos de imagen de disco. Mientras no destruya su disco duro, es una herramienta efectiva y fácil de usar para cualquier cosa, desde limpiar un disco duro o una unidad USB hasta crear copias de seguridad comprimidas.

Tags

Publicar un comentario

1 Comentarios
* Por favor, no envíe spam aquí. Todos los comentarios son revisados ​​por el administrador.
  1. Hola
    Gracias por la explicación, me ha resultado muy útil, pero tengo una duda:
    En algunos ejemplos de operaciones que has puesto, aparen los operandos "si" y "de":
    "dd si = / dev / cero de = / dev / sdb"
    ¿Es algún error y se ha traducido "if" por "si" y "of" por "de" o hay otra versión de dd ?
    Lo digo porque no lo veo en la lista de comandos y a mi no me funcionan.
    Gracias


    ResponderEliminar
Publicar un comentario

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !
Subir