count 및 bs 매개변수가 포함된 이 dd 명령이 count를 초과한 이유는 무엇입니까?

count 및 bs 매개변수가 포함된 이 dd 명령이 count를 초과한 이유는 무엇입니까?

and(40GB)가 포함된 명령이 있는데 dd실행하려고 할 때마다 해당 명령의 개수를 초과합니다. 정확한 명령과 이를 중지하기 전에 캡처한 출력은 다음과 같습니다.bs=1Mcount=40960M

dd if=/dev/zero of=/swap/swapfile bs=1M count=40960M status=progress
50383028224 bytes (50 GB, 47 GiB) copied, 458 s, 110 MB/s

진행률 출력에 따르면 무한정 실행되는 것처럼 보이며 of대상이 완전히 채워질 때까지 계속될 수 있습니다. dd영원히 실행되도록 만드는 나의 오해는 무엇입니까?

답변1

작성된 데이터의 실제 크기를 얻으려면 bs및 매개변수를 곱 해야 합니다 . count각각 1MB의 블록 400억(409억 6천만)개를 쓰도록 요청합니다. 그건... 꽤 많은 양의 데이터입니다.

40GB를 쓰려면 또는 유사한 조합을 사용할 수 bs=1 count=40960M있습니다 bs=1M count=40960.

답변2

count 매개변수는 dd복사할 블록 수를 지정하며, 이에 따라 bs블록 크기가 결정됩니다.

dd"백만"을 의미하는 접미사를 M이진 승수로 해석합니다.

count=40960M count 매개변수는 메가바이트가 아닌 409억 6천만 개의 블록을 의미합니다.

결과적으로 예상했던 것보다 훨씬 더 큰 크기가 발생합니다.

M올바른 카운트 값을 계산하려면 접미사를 제거하세요 .

올바른 명령은 다음과 같습니다.

dd if=/dev/zero of=/swap/swapfile bs=1M count=40960 status=progress

관련 정보