dd 함수가 완료되면 정지되는 것 같습니다.

dd 함수가 완료되면 정지되는 것 같습니다.

다음 명령을 사용하여 USB 스틱에 ISO를 복사하려고 합니다.

sudo dd bs=4M if=lubuntu-17.04-desktop-amd64.iso of=/dev/sdc status=progress 

아주 간단합니다. ISO의 크기는 912M입니다. 프로그램이 종료되지 않고 여기서 출력 텍스트가 정지되는 이유는 무엇입니까?

956301312 bytes (956 MB, 912 MiB) copied, 11.216 s, 85.3 MB/s

프로그램 실행을 중지할 수도 없습니다 ctr-c.

답변1

표시되는 동작은 dd작업 후에 디스크의 데이터만 동기화하는 것입니다. IO 작업을 최적화하기 위해 Linux는 종종 요청된 것보다 더 큰 청크로 데이터를 읽고(미리 읽기) 결합할 수 있도록 쓰기를 지연합니다(더티 캐시). 작업이 끝나면 dd디스크에 있는 파일을 동기화하거나 커널이 이를 암시적으로 수행하며 모든 쓰기가 완료될 때까지 프로세스는 활성 상태를 유지합니다.

머신에 다른 대규모 IO 작업이 없는 경우 "Dirty:" 값을 확인하여 쓸 데이터가 얼마나 남아 있는지 추정할 수 있습니다. /proc/meminfo이는 디스크에 쓰기 위해 보류 중인 총 데이터 양입니다.

시스템이 한 번에 메모리에 기록되지 않은 채로 남겨둘 수 있는 데이터의 양은 다음 sysctl 튜닝 노브를 사용하여 제어할 수 있습니다. 기본적으로 비율만 사용됩니다. 값을 백분율(비율) 또는 바이트 단위로 정의할 수 있습니다.

vm.dirty_background_ratio
vm.dirty_ratio
vm.dirty_background_bytes
vm.dirty_bytes

이러한 매개변수에 대한 공식 문서는 여기에서 찾을 수 있습니다.

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

관련 정보