Como fazer o comando dd ser detalhado? [duplicado]

23

Eu quero fazer um USB inicializável clonando uma imagem. Eu fiz algumas pesquisas e não encontrei uma maneira satisfatória de fazer com que o dd fornecesse algum feedback para o console de como o progresso está indo.

Existe uma maneira, embutida no comando para fazer isso, além de pesquisar o PID por meio do comando ps?

    
por sbrown 22.10.2013 / 17:42

2 respostas

21

Se você ler man dd , você se refere a info coreutils 'dd invocation' , que diz, em parte,

Enviar um sinal INFO para um processo dd em execução faz com que imprima Estatísticas de E / S para erro padrão e, em seguida, retomar a cópia. No exemplo abaixo, dd é executado em segundo plano para copiar 10 milhões de blocos. O comando kill faz com que ele imprima estatísticas de E / S intermediárias e quando dd for concluído normalmente ou for eliminado pelo sinal SIGINT , gera as estatísticas finais.

 $ dd if=/dev/zero of=/dev/null count=10MB & pid=$!
 $ kill -s INFO $pid; wait $pid
 3385223+0 records in
 3385223+0 records out
 1733234176 bytes (1.7 GB) copied, 6.42173 seconds, 270 MB/s
 10000000+0 records in
 10000000+0 records out
 5120000000 bytes (5.1 GB) copied, 18.913 seconds, 271 MB/s

Em sistemas sem o INFO signal dd responde ao USR1 sinal, a menos que a variável de ambiente POSIXLY_CORRECT seja conjunto.

Você também pode tentar o status=progress option :

[~]$ dd if=/dev/zero of=/dev/null count=10MB status=progress
4708234752 bytes (4.7 GB, 4.4 GiB) copied, 4 s, 1.2 GB/s
10000000+0 records in
10000000+0 records out
5120000000 bytes (5.1 GB, 4.8 GiB) copied, 4.3516 s, 1.2 GB/s
[~]$ 
    
por waltinator 22.10.2013 / 19:01
21

Existem várias soluções disponíveis através da pesquisa do google.

De link

(pv -n /dev/sda | dd of=/dev/sdb bs=128M conv=notrunc,noerror) 2>&1 | dialog --gauge "Running dd command (cloning), please wait..." 10 70 0

Você pode ter que instalar o diálogo e o pv

sudo apt-get install pv dialog
    
por Panther 22.10.2013 / 17:52