dd의 진행 상황을 추적하는 방법


답변:


57

klanomath의 답변에 의해 1 초마다 표시되는 동일한 정보는 명령을 사용하여 표시 할 수 있습니다. 명령이 실행 controlT되는 동안 키보드에서 문자 를 입력하면 dd됩니다.

controlT문자 를 누르면 명령이 전송 SIGINFO하는 dd명령에 동일한 신호가 pkill -INFO -x dd전송됩니다.


25

coreutils 8.24부터 dd는 상태 옵션을 추가했습니다. Homebrew와 함께 coreutils를 설치하여 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    

3
coreutils에 대해 몰랐습니다. 매우 편리합니다.
SteveLambert

1
이것이 작동하지만, 당신은 원시 디스크
eyoung100

8

dd자체는 진행 표시 줄을 제공하지 않습니다. pkill -INFO 명령 을 추가하여 dd 복사 프로세스의 진행 상황을 추정 할 수 있습니다 .

예:

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

결과:

[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

무려 18.1 GB / s로 변환됩니다.


해당 명령을 실행 한 머신의 하드웨어 사양은 무엇입니까?
user3439894

@ user3439894 3.5GHz i7 iMac. 왜?
klanomath

바이트 / 초 출력 때문에 궁금해했습니다. 실제로는 16.8GB / s (반올림)는 기본 10 계산이 아닌 기본 2이므로 반올림됩니다.
user3439894

5

먼저 Homebrew Package Manager를 설치하십시오 . 그런 다음 이 명령 을 설치 pv하고 사용해야합니다 dialog.

brew install pv dialog

그런 다음이 명령을 실행하여 다음 명령으로 진행률 표시 줄을 얻을 수 있습니다.

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

그러나 disk.img이미지 경로 diskX와 SD 카드의 디스크 식별자 로 교체해야합니다 . 더 그래픽적인 것을 원한다면 다음을 시도해보십시오.

(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

출처 : /ubuntu//a/516724/765767


3

명령이 실행되는 동안 Control+ t를 누르 dd거나 멋진 진행률 표시 줄을 보려면 pvHomebrew를 통해 (파이프 뷰어)를 설치할 수 있습니다 .

brew install pv

그런 다음 다음을 실행하십시오.

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

또는 (이미지 크기를 알고있는 경우이 예에서는 16GB) :

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


예제 출력 2 :

(전송 된 데이터, 경과 시간, 속도, 진행률 표시 줄 및 예상 시간) :

    1.61GiB 0:12:19 [2.82MiB/s] [===>                 ] 10% ETA 1:50:25

2

쉽다! macOS High Sierra 이하의 경우 while 루프를 실행하면 완료 될 때까지 실행됩니다. 다른 창에서 아래 코드를 작성하십시오.

아래 코드는 펌웨어 부팅 중 또는 완전히 종료 된 OS 내에서 작동합니다.

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

^ homebrew는 인터넷과 실제 OS를 설치해야하기 때문에“homebrew”또는 표준 Mac OS X에서 사용할 수없는 도구를 사용하지 않고 기계를 깨우기 위해 (카페인) 유지합니다.

참고 : 위의 PID는 프로세스 ID로 PID를 대체해야하며 지속적으로 진행 상황을 보여줍니다


나는 또한 당신이 다시 잠들지 않고 끊임없이 깨워 야 할 수 있도록 기계를 깨우는 것을 멀리했습니다.
Don-Pierre Halfaway

위의 스크립트는 날짜를 알려주고 복사의 통계를 제공하며 매 10 초마다 깨어 있습니다.
Don-Pierre Halfaway

전체 운영 체제가 아닌 Mac의 터미널에 가장 적합합니다. 그러나 Firmaware / bios 내에서. 확실히 기억해야 할 해결책
Don-Pierre Halfaway

의 목적은 무엇입니까 $(...)? 나는 그들이 일반적으로 무엇을하는지 알고 있습니다. 왜 당신이 왜 그것들을 사용하는지 궁금합니다.
nohillside

공백을 이스케이프하고 명령이 한 줄 내에서 모두 실행되도록합니다. 나는 확실히 나는 "("와 ")"하지만 난 평신도 접근 방식에서 사용할 수있는 옵션을 볼 수있는 사람을 원 두 배의 수
돈 - 피에르 Halfaway
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.