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