Archivos de la etiquetas dd

dd linux

dd: clona discos y mucho más

dd linuxdd es un comando de la familia de los sistemas operativos Unix que permite copiar y convertir datos de archivos a bajo nivel.

Es generalmente usado para realizar operaciones avanzadas sobre dispositivos o archivos, como pueden ser:

  • Transferencias de datos específicos.
  • Copias de seguridad de la información «en crudo» (raw data).
  • Conversión de algunas codificaciones soportadas y/o caracteres predefinidos.

Pero al contrario que otras herramientas que desde su creación se han ido sofisticando, ésta se ha ido simplificando, hasta el punto de poder hacer lo mismo que buenos programas comerciales como Norton Ghost o libres como CloneZilla, con sólo una pequeña orden en la línea de comandos.

Advertencia dd

Utilizar este comando con precaución, y asegúrate siempre del orden y nombre de tus discos duros, porque lo mismo que te clona un disco te lo borra.

#dd hace lo mismo que los buenos programas comerciales como #Norton #Ghost o libres como #CloneZilla Clic para tuitear

¿Qué discos volcamos con dd?

Lo primero siempre es tener claro el disco duro de origen y el de destino, algo que averiguamos fácilmente con el comando (como root) fdisk -l.

Lo básico de dd

La sintaxis más básica, sería ésta [como root]:

dd if=[origen] of=[destino]

Por lo que si quisiéramos clonar un disco duro:

dd if=/dev/hda of=/dev/hdb bs=1M

con esto clonaríamos el disco hda en hdb. (discos IDE), o:

dd if=/dev/sda of=/dev/sdb bs=1M

para discos SATA

Con bs=1M, estamos diciendo que tanto la lectura como la escritura se haga en bloques de 1 megabyte (menos, sería más lento pero más seguro, y con más nos arriesgamos a perder datos por el camino).

Hay que tener en cuenta que de esta forma grabarás el disco “tal cual”, MBR, tabla de particiones, espacio vacío, etc., por lo que sólo podrás grabar en un disco del mismo o mayor tamaño.

 Volcado de discos a punto de morir con dd

Recuperar un Disco Duro defectuoso o DVD rayado

dd if=/dev/cdrom of=/home/dvd_recuperado.iso conv=noerror,sync

Esto no recupera todo el DVD, en este caso, sólo los sectores legibles. Sirve también para discos duros defectuosos.
La opción noerror sirve para obviar los errores de lectura en cualquier situación. Otro ejemplo sería:

dd conv=noerror if=/dev/hda of=~/home/imagen_disco_con_errores.iso

Grabaríamos con ello una imagen del disco duro en nuestro home saltándonos los errores del disco (muy útil para discos que se están muriendo).

Otras utilidades de dd

Para paranóicos del borrado de la información

Llena el disco con caracteres aleatorios cinco veces. No va a quedar ni rastro de información en el disco:

for n in {1..5}; do dd if=/dev/urandom of=/dev/hda bs=8b conv=notrunc; done

Crea una imagen de un CD

dd if=/dev/cdrom of=/home/imagendeCD.iso

Para montar la imagen del CD

mount -o loop imagedeCD.iso /mnt/home

Copiar el Master Boot Record

dd if=/dev/hda of=mbr count=1 bs=512

Para restaurar el MBR

dd if=mbr of=/dev/hda

Copiar el Volume Boot Sector (VBS)

dd if=/dev/hda of=/home/sector_arranque_hda count=1 bs=512

Para restaurar el VBS

dd if=/home/sector_arranque_hda of=/dev/hda

 

RSync logo

Clonando discos con Rsync

RSync logoDos herraminentas de clonado de un disco en linux míticas son dd y rsync.

Si el clonado lo queremos idéntico, bit a bit, escogeremos la opción de la herramienta dd

En caso de querer hacer el clonado a nivel de ficheros escogemos la segunda opción: rsync.

Es útil cuando los discos tienen distintos sistemas de ficheros, son de distinto tamaño o si el disco original tiene errores. También si lo tenemos que hacer en varias tandas con posibilidad de actualizaciones sin tener que hacer un volcado completo de cada vez.

rsync

Según la wikipedia el rsync se define como:

rsync es una aplicación libre para sistemas de tipo Unix y Microsoft Windows que ofrece transmisión eficiente de datos incrementales, que opera también con datos comprimidos y cifrados. Mediante una técnica de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos. Una característica importante de rsync no encontrada en la mayoría de programas o protocolos es que la copia toma lugar con sólo una transmisión en cada dirección. rsync puede copiar o mostrar directorios contenidos y copia de archivos, opcionalmente usando compresión y recursión.

Actuando como un daemon de servidor, rsync escucha por defecto el puerto TCP 873, sirviendo archivos en el protocolo nativo rsync o via un terminal remoto como RSH o SSH. En el último caso, el ejecutable del cliente rsync debe ser instalado en el host local y remoto.

rsync se distribuye bajo la licencia GNU General Public License.

Usando rsync

Para clonar dos discos los montaremos los discos origen y destino y ejecutaremos el siguiente comando:

sudo rsync -va –progress -H -A -X –ignore-errors /mnt/origen/ /mnt/destino

De esta manera copiaremos los ficheros manteniendo sus propiedades y atributos.

Nota: Es importante la barra final de origen y la no barra final de destino.