Estou usando o seguinte comando para criar um cartão SD inicializável
sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2
Existe uma maneira de acompanhar o progresso?
Estou usando o seguinte comando para criar um cartão SD inicializável
sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2
Existe uma maneira de acompanhar o progresso?
Respostas:
As mesmas informações, exibidas a cada segundo na resposta de klanomath, podem ser exibidas usando seu comando. Você só precisa inserir um controlTcaractere do teclado enquanto o dd
comando está em execução.
Ao pressionar o controlTcaractere, você está enviando o mesmo SIGINFO
sinal para o dd
comando que o comando pkill -INFO -x dd
envia.
No coreutils 8.24, o dd adicionou opções de status. Instale o coreutils com o Homebrew para atualizar o 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
dd
por si só não fornece uma barra de progresso. Você pode estimar o andamento do processo de cópia do dd adicionando um comando pkill -INFO .
Exemplo:
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
O que significa 18,1 GB / s.
Antes de tudo, instale o Homebrew Package Manager . Então você tem que instalar pv
e dialog
com este comando:
brew install pv dialog
Você pode executar este comando para obter uma barra de progresso com o comando:
dd if=disk.img bs=1m | pv disk.img | dd of=/dev/diskX bs=1m
mas certifique-se de substituir disk.img
o caminho da imagem e diskX
o identificador de disco do seu cartão SD. Se você quiser algo mais gráfico, tente o seguinte:
(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
Você pode pressionar Control+ tenquanto o dd
comando estiver em execução ou, para uma barra de progresso agradável, você pode instalar pv
(visualizador de tubos) via Homebrew:
brew install pv
e então execute:
sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2
ou (sabendo o tamanho da imagem, 16 GB neste exemplo):
dd if=disk-image.img | pv -s 16G | dd of=/dev/disk2
Exemplo de saída 2:
(dados transferidos, tempo decorrido, velocidade, barra de progresso e tempo estimado):
1.61GiB 0:12:19 [2.82MiB/s] [===> ] 10% ETA 1:50:25
Isso é fácil! Para o macOS High Sierra e abaixo, basta executar um loop while e ele será executado até terminar. Apenas certifique-se de fazer o código abaixo em outra janela:
O código abaixo funcionará imediatamente durante a inicialização do firmware ou no sistema operacional completo
while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done
^ Para manter a máquina acordada (com cafeína) sem o uso de “homebrew” ou ferramentas não disponíveis no Mac OS X padrão, pois o homebrew requer Internet e um sistema operacional real para instalá-lo.
NOTA: O item acima precisa que você substitua o PID pelo seu ID do processo e ele mostrará constantemente o progresso
$(...)
? Sei o que eles fazem em geral, só me pergunto por que você os está usando aqui.