lunes, 21 de marzo de 2016

Moviendo datos directamente a/desde dispositivos

Generalmente pensamos en que los datos en nuestros ordenadores están organizados en archivos, pero también podemos pensar en los datos en su forma “bruta”. Si observamos un disco duro, por ejemplo, vemos que consiste en un gran número de “bloques” de datos que el sistema operativo ve como directorios y archivos. Sin embargo, si pudiéramos tratar una unidad de disco simplemente como una gran colección de bloques de datos, podríamos realizar tareas útiles, como clonar dispositivos.

El programa dd realiza esta tarea. Copia bloques de datos de un lugar a otro. Usa una sintaxis única (por motivos históricos) y generalmente se usa de esta forma:

dd if=input_file of=output_file [bs=block_size [count=blocks]]

Digamos que tenemos dos memorias USB del mismo tamaño y queremos copiar exactamente la primera unidad en la segunda. Si conectamos ambas unidades al ordenador y están asignadas a los dispositivos /dev/sdb y /dev/sdc respectivamente, podríamos copiar todo lo que hay en la primera unidad a la segunda haciendo lo siguiente:

dd if=/dev/sdb of=/dev/sdc

Alternativamente, si sólo estuviera conectado a nuestro ordenador el primer dispositivo, podríamos copiar su contenido en un archivo normal para su posterior restauración o copia:

dd if=/dev/sdb of=flash_drive.img

¡Aviso! El comando dd es muy potente. Aunque su nombre deriva de “data definition” (definición de datos), a veces se le llama “destroy disk” (destruye discos) porque los usuarios a menudo escriben mal las especificaciones if o of. ¡Siempre comprueba dos veces tus especificaciones de entrada y salida antes de pulsar intro!

No hay comentarios:

Publicar un comentario