Tip: comando dd con barra de progreso

dd es un comando muy «silencioso» y por lo tanto algunas veces un tanto peligroso y desesperante. En este post te mostraremos como hacer que este fabuloso comando nos muestre una barra de progreso similar a la que aparece cuando descargamos archivos con el comando wget.

El comando dd es una poderosa herramienta que permite hacer muchas cosas, entre ellas encontramos una manera fácil de clonar particiones e incluso discos duros completos. Sólo tiene un pequeño inconveniente, es un comando muy «silencioso» pues al ejecutarlo, el prompt del terminal queda inmóvil, por lo que puede ocasionar nerviosismo al no saber que es lo que esta pasando y cuanto tiempo falta para que termine de ejecutarse.
Todo esto se soluciona con el comando pv, el cual actúa como una tubería de terminal que mide los datos que pasan a través de ella. Quedaría como sigue:
dd if=/lugar/de/origen |pv|dd of=/lugar/de/destino

Como resultado obtendríamos en el terminal una barra de progreso, la información sobre bytes transferidos, el tiempo que lleva ejecutándose y la tasa de transferencia, todo esto en tiempo real.

Además al terminar nos muestra estadísticas de la tasa de transferencia, el total de bytes transferidos y el tiempo total que tardó en transferir todos los datos.

Ejemplos:

Clonar un disco duro:

dd if=/dev/sda |pv|dd of=/dev/sdb

Clonar una partición:

dd if=/dev/sdc2 |pv|dd of=/dev/sda1

Crear una imagen iso de una partición o disco duro (excelente opción para backups):

dd if=/dev/sda1 |pv|dd of=/home/usuario/backup.iso

En algunas distros puede que pv no venga instalado, así que bastará con instalarlo para poder usar este tip.


15 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Pierr Facu dijo

    Otro Tips para crear un liveUsb

    dd if=/home/usuario/isodelsistema.iso |pv|dd of=/dev/sdx (sdx reemplazar por el correspondiente al pendrive/memoria flash)

  2.   Jaime Yepes dijo

    muy util

  3.   kik1n dijo

    Muy buen tip.

  4.   Carlos dijo

    Muchas gracias por el tip.
    Saludos.

  5.   portaro dijo

    magnifico!!! 5*

  6.   rafaelzx dijo

    yo tengo una duda, si hahoy un iso lo instalo o como para que quiero el iso? :s

  7.   Izkalotl dijo

    La imagen iso de una partición te puede servir como respaldo, más no es como una iso de un sistema operativo, no será posible instalar un sistema a partir de una iso generada de una partición.

    Por ejemplo puedes hacer una imagen iso de tu partición /home que quedaría por ejemplo así: mi_home.iso y guardarla en cualquier partición o incluso otro pc, y si por alguna desgracia perdieras tu partición /home podrias restaurarla como si nada hubiera pasado con un comando como el siguiente:

    dd if=/lugar/donde/esta/mi_home.iso |pv|dd of=/dev/partición_donde_estaba_home

  8.   angelblade dijo

    Más elegante que enviarle la señal URS1 vía kill al pid del proceso dd

  9.   Jhabbo dijo

    Excelente. Otra herramienta similar: mbuffer
    dd if=file.origen | mbuffer | dd of=file.destino
    Saludos!

  10.   odnetnini III dijo

    Una gran herramienta, que soluciona problemas a todo, el mundo, muy útil para comandos silenciosos, la verdad debería estar puesto por defecto en estos comandos.

  11.   Manuel A. dijo

    Muchas gracias por el tip. Llevaba tiempo buscado algo así. Yo lo uso para los DVD

    dd if=/dev/dvd |pv|dd of=/ruta/archivo.iso

  12.   Luis dijo

    Muchas gracias.

    1.    usemoslinux dijo

      De nada, Luis!

  13.   victor venegas dijo

    como instalo el comando pv ?

  14.   Host.cl dijo