¿Cómo puedo seguir el progreso de dd?

20

Estoy usando el siguiente comando para crear una tarjeta SD de arranque

sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2

¿Hay alguna forma de seguir el progreso?

    
pregunta SeanClt 08.04.2016 - 05:13

6 respuestas

27

La misma información, mostrada cada segundo por la respuesta de klanomath, puede mostrarse usando su comando. Solo debe ingresar un carácter control T desde el teclado mientras se ejecuta el comando dd .

Al presionar el carácter control T , está enviando la misma señal SIGINFO al comando dd que envía el comando pkill -INFO -x dd .

    
respondido por el David Anderson 08.04.2016 - 13:55
11

A partir de coreutils 8.24, dd agregó una opciones de estado. Instala coreutils con Homebrew para actualizar dd.

brew install coreutils
# All commands have been installed with the prefix 'g'
sudo gdd if=XXXX.iso of=/dev/diskX bs=1 status=progress 

> example:
> 139648967 bytes (140 MB, 133 MiB) copied, 304 s, 459 kB/s    
    
respondido por el davidcondrey 10.10.2016 - 15:25
7

dd en sí no proporciona una barra de progreso. Puede estimar el progreso del proceso de copia de dd agregando un comando pkill -INFO .

Ejemplo:

dd if=/dev/zero of=/dev/null bs=64m count=1000 & while pkill -INFO -x dd; do sleep 1; done

Resultado:

[1] 37691
0+0 records in
0+0 records out
0 bytes transferred in 0.028923 secs (0 bytes/sec)
275+0 records in
275+0 records out
18454937600 bytes transferred in 1.029698 secs (17922667819 bytes/sec)
553+0 records in
553+0 records out
37111201792 bytes transferred in 2.048291 secs (18118129881 bytes/sec)
829+0 records in
829+0 records out
55633248256 bytes transferred in 3.068911 secs (18128009214 bytes/sec)
1000+0 records in
1000+0 records out
67108864000 bytes transferred in 3.720346 secs (18038339571 bytes/sec)
[1]+  Done                    dd if=/dev/zero of=/dev/null bs=64m count=1000

Lo que se traduce en una friolera de 18.1 GB / s.

    
respondido por el klanomath 08.04.2016 - 06:14
3

En primer lugar, instale Homebrew Package Manager . Luego tienes que instalar pv y dialog con este comando:

brew install pv dialog

Luego puede ejecutar este comando para obtener una barra de progreso con el comando:

dd if=disk.img bs=1m | pv disk.img | dd of=/dev/diskX bs=1m

pero asegúrese de reemplazar disk.img con la ruta a la imagen y diskX con el identificador de disco de su tarjeta SD. Si quieres algo más gráfico, puedes probar esto:

(dd if=disk.img bs=1m | pv -n disk.img | dd of=/dev/diskX bs=1m conv=notrunc,noerror) 2>&1 | dialog --gauge "Writing image to SD card..." 10 70 0

Fuente: enlace

    
respondido por el pixelomer 28.04.2018 - 20:40
2

¡Eso es fácil! Para macOS High Sierra y más abajo, simplemente ejecute un bucle while y se ejecutará hasta que finalice. Solo asegúrese de hacer el siguiente código en otra ventana:

El código a continuación funcionará fuera de la caja mientras se realiza un arranque de firmware o dentro del sistema operativo completo

while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done

^ Para mantener la máquina despierta (cafeína) sin el uso de "homebrew" o herramientas no disponibles en Mac OS X estándar, ya que homebrew requiere internet y un sistema operativo real para instalarlo.

NOTA: Lo anterior necesita que sustituyas el PID con tu ID de proceso y mostrará constantemente el progreso

    
respondido por el Don-Pierre Halfaway 27.06.2018 - 02:21
1

Puedes presionar Control + t mientras se ejecuta el comando dd o para una barra de progreso agradable puedes instalar pv (visor de tuberías) a través de Homebrew:

brew install pv

y luego ejecuta:

sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2

o (sabiendo el tamaño de la imagen, 16 GB en este ejemplo):

dd if=disk-image.img | pv -s 16G | dd of=/dev/disk2


Salida de ejemplo 2:

(datos transferidos, tiempo transcurrido, velocidad, barra de progreso y tiempo estimado):

    1.61GiB 0:12:19 [2.82MiB/s] [===>                 ] 10% ETA 1:50:25
    
respondido por el Guglie 28.04.2018 - 20:19

Lea otras preguntas en las etiquetas