dd가 여전히 작동하는지 어떻게 알 수 있나요?

dd가 여전히 작동하는지 어떻게 알 수 있나요?

나는 그것을 많이 사용하지 않았지만 dd지금까지는 나를 실망시키지 않았습니다. 이제 이 작업에 dd12시간이 넘게 걸렸습니다. 이미지를 원래 있던 디스크에 다시 쓰는 중입니다. dd약 7시간 만에 이 작업을 수행할 수 있었기 때문에 조금 걱정됩니다.

저는 Core 2 Duo, 2.1ghz/코어 및 4GB RAM을 갖춘 MacBook에서 OSX 10.6.6을 실행하고 있습니다. 7200rpm 하드 드라이브(부팅 드라이브)의 .dmg에서 데이터를 읽고 SATA-USB 커넥터를 통해 연결된 7200rpm 드라이브에 쓰고 있습니다. 블록 크기를 기본값으로 두었습니다. 이미지는 약 160GB입니다.

편집: 그리고 14시간 동안 순수한 스트레스를 받은 후에도 결과는 dd여전히 완벽했습니다. 다음번에는 그것을 실행 pv하고 추적을 사용할 것입니다 strace. 모두의 도움에 감사드립니다.

답변1

당신은 보낼 수 있습니다dd신호는 kill명령을 사용하여 현재 상태를 출력합니다. 이 신호는 INFOBSD 시스템(OSX 포함) 및 USR1Linux에서 사용할 수 있습니다. 귀하의 경우:

kill -INFO $PID

다음 명령을 사용하여 프로세스 ID( $PID위) 를 찾을 수 있습니다 ps.Mac OS X의 pgrep 및 pkill 대안좀 더 편리한 방법을 위해.

더 간단히 말하면,앙투안 G에서 지적하다그의 대답ctrl-T, 실행 중인 쉘에 신호를 입력하여 dd에 신호를 보낼 수 있습니다 INFO.

Linux의 예를 들어 dd다음과 같이 모든 활성 프로세스 출력 상태를 가질 수 있습니다.

pkill -USR1 -x dd

상태를 출력한 후 dd응답이 계속됩니다.

답변2

OS X에서는 (Linux에서는 시도하지 않았습니다) Ctrl실행 중인 터미널에 +를 입력하면 됩니다. CPU 사용량과 동일한 출력을 인쇄합니다.Tddkill -INFO $PID

load: 1.40  cmd: dd 34536 uninterruptible 3.49u 64.58s
5020305+0 records in
5020304+0 records out
2570395648 bytes transferred in 4284.349974 secs (599950 bytes/sec)

나는 이 스레드를 읽고 내 터미널에서 새 탭을 열려고 시도했지만 + TCtrl+ 혼합되는 것을 발견했습니다 T.

답변3

의 경우 dd다음을 수행할 수 있습니다.신호를 보내다. 파일을 읽거나 쓰는 다른 명령의 경우 다음을 사용하여 파일의 위치를 ​​확인할 수 있습니다.lsof.

lsof -o -p1234    # where 1234 is the process ID of the command
lsof -o /path/to/file

미리 계획을 세웠다면 데이터를 파이프하세요pv.

답변4

coreutilsv8.24 부터 dd진행률 표시가 기본적으로 지원됩니다. 옵션을 추가하면 됩니다 status=progress.

예:

dd if=arch.iso of=/dev/sdb bs=4M status=progress

원천

관련 정보