I <3 CLI: comando [dd]

Desde ya “advierto” que empezare con una sección sobre linea de comandos en GNU/Linux dentro de H4ckSeed, y pueda que algo de PowerShell (depende del estado de animo 😛 ), claro esta que esta sección tratara temas como utilitarios, comandos y script, continuemos.

2016-01-15-193137_715x420_scrot

comando [dd] , permite copiar y convertir datos de archivos a bajo nivel, transfiere datos específicos (incluye entre dispositivos, usb o pendrive, cdrom, HDD, SDD, etc), conversión de algunas especificaciones, además de backups raw data (es un termino para los datos recogidos de una fuente, su copia es total e igual al origen).

La sintaxis básica es:

dd if=ruta_origen of=ruta_destino

cabe recordar que en sistemas unix o unix-like, todo componente hardware del equipo se trata como un archivo encontrándose en la carpeta /dev. Un ejemplo algo más claro:

dd if=~/origen.iso of=/dev/cdrom

Desmenuzando el comando anterior, este copia el archivo origen.iso ubicado en tu /home al dispositivo cdrom, ahora dd, tiene muchos parámetros como bs, conv y count, también seek y skip, entre muchos más.

dd bs=4M count=1M if=~/origen.iso of=/dev/sdc

para el ejemplo anterior usamos el parámetro bs para que lea y escriba bloques de cuatro megabytes y que finalice luego de copiar 1 megabyte del total del archivo.

  • skip: salta x bloques del archivo origen antes de la operación de copiado.
  • seek: salta x bloques del archivo destino antes de la operación de copiado.
  • count: copia x bloques del archivo origen y finaliza de inmediato.
  • cbs: establece x bytes al tamaño de conversión.
  • ibs: lee x bytes del archivo origen.
  • conv: realiza operaciones de conversión, se pueden usar varias operaciones separadas por una coma.

Conversiones soportadas:

ascii: convierte los caracteres EBCDIC a ASCII.

ebcdic: convierte los caracteres ASCII a EBCDIC.

ibm: convierte los caracteres ASCII al EBCDIC de IBM.

lcase: intercambia las mayúsculas por minúsculas.

ucase: intercambia las minúsculas por mayúsculas.

swab: intercambia cada par de bytes de la entrada. Para el caso especial del último byte, este se copia directamente.

noerror: no se detiene el proceso ante errores de lectura en el origen.

notrunc: no se trunca el archivo utilizado como destino.

sync: rellena cada bloque leído con ceros, hasta el tamaño determinado por ibs.

block: rellena con espacios en blanco la línea leída, hasta el tamaño indicado por cbs. Reemplaza el carácter de nueva línea por espacios, convirtiendo la línea en un bloque (o registro).

unblock: reemplaza los últimos espacios en blanco por un carácter de salto de línea del registro leído, que posea el tamaño indicado por cbs. Realiza la operación inversa a block.

Ejemplos algo más avanzados, como recomendación usar el comando fdisk -l para saber que dispositivo o partición quieres usar y claro esta evitar problemas de perdida de información.

Clonar HDD IDE (si es que alguien sigue usándolos)

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

Clonar HDD SATA

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

Hacer USB booteable

dd if=ruta_archivo_iso of=/dev/sdc bs=4M

Duplicar particiones

dd if=/dev/sda2 of=/dev/sdb2 bs=1024 conv=noerror,notrunc

Convertir archivos a mayusculas

dd if=~/archivo of=~/archivo conv=ucase

Backup del HDD

dd if=/dev/sda of=/mnt/disco2/discobk

Al ser la todo el disco principal copia el MBR, recordemos que al ser una copia a bajo nivel (binaria) el contenido será tanto el espacio usado como vació, es decir que el archivo destino debe ser del mismo tamaño o mayor que el origen.

Restauración backup

dd if=/mnt/disco2/discobk of=/dev/sda

Como dato extra, marcado como máxima precaución, ya que literalmente destruye los datos de una partición, usaremos el archivo especial /dev/zero (provee caracteres null como sean necesarios, una masacre total a los datos)

dd if=/dev/zero of=/dev/sda5

Como dato personal solo use pocas veces dd como opción para backup, no me presento ningún error, ya sea con archivos mayores a 4Gb y alguna partición, pero sigo prefiriendo otras opciones como rsync para las copias de seguridad.

Hasta otro post y buenas vibras lectores.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s