En una entrada anterior os expliqué como hacer una copia de una tarjeta micro SD dañada de una Raspberry Pi 400. El caso es que el comando de copia del estilo:
dd if=/dev/sdb of=/dev/sdc
tarda mucho tiempo en terminar. Además no ofrece información de como va el proceso y podemos llegar a pensar que se ha bloqueado.
Yo conocía el comando ‘pv’, que muestra información de como va la trasferencia de un fichero. El problema era que ya había lanzado el comando ‘dd’ y no quería detenerlo para volver a lanzarlo usando ‘pv’. Pues llevaba ya varias horas de procesamiento.
Rebuscando en la pagina de manual de Linux (comando ‘man pv
‘) encontré que se podía lanzar el comando con la opción -d que indica que muestre el progreso de un descriptor de fichero de un proceso en ejecución.
Abrimos otra terminal distinta a la en que hemos lanzado el comando dd. Los comandos a ejecutar son los siguientes: (lo he hecho como root)

Con el comando ‘ps’ encontramos el PID del proceso que esta tardando demasiado, en este caso el 5464. Con el comando ‘ls’ encontramos los descriptores de fichero que tiene abiertos dicho proceso. 0 es la entrada estándar, 1 la salida estándar, y 2 la salida de error estándar. El descriptor que buscamos es el 0. El comando ‘pv’ muestra el progreso de lectura del descriptor de fichero 0 del proceso 5464. Como podéis ver se muestran los Gigas copiados, cuanto lleva ejecutándose el comando, la velocidad de transferencia, la barra de progreso, el porcentaje de lo ya copiado y el tiempo estimado para acabar.
Nota: Es posible que en vuestro sistema no encontréis el comando ‘pv’. Para instalarlo:
sudo apt install pv