명령을 입력할 때:
dd if=/dev/urandom of=outputfile bs=1G count=1
제가 이해한 것이 맞다면 1GB 파일을 받아야 합니다.
그러나 다음 값이 포함된 파일을 받았습니다.
33554431 bytes (34 MB, 32 MiB) copied, 0.27126 s, 124 MB/s
왜 그런 겁니까?
작동하는 시스템에서는 다음을 수신합니다.
1+0 Records in
1+0 Records out
파일 크기는 34MB가 되었으며 다음을 받았습니다.
0+1 Records in
0+1 Records out
답변1
장치는 /dev/urandom
일시적으로 0바이트(더 이상 데이터 없음)를 반환합니다. 유틸리티 dd
는 이를 EOF로 처리하고 중지합니다. 이렇게 하면 더 많은 임의의 데이터가 생성된다는 것을 알고 있으므로 입력 읽기를 다시 시도하도록 /dev/urandom
지시해야 합니다 .dd
dd if=/dev/urandom iflag=fullblock bs=1G count=1
이 플래그는 도구에서 데이터를 읽을 때도 iflag=fullblock
필요합니다 (예: 블록 크기가 아닌 단위로 데이터 쓰기).zcat