답변:
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
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로 변환됩니다.
먼저 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
명령이 실행되는 동안 Control+ t를 누르 dd
거나 멋진 진행률 표시 줄을 보려면 pv
Homebrew를 통해 (파이프 뷰어)를 설치할 수 있습니다 .
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
쉽다! 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를 대체해야하며 지속적으로 진행 상황을 보여줍니다
$(...)
? 나는 그들이 일반적으로 무엇을하는지 알고 있습니다. 왜 당신이 왜 그것들을 사용하는지 궁금합니다.