1GB만 읽으려면 dd 명령을 사용하세요.

1GB만 읽으려면 dd 명령을 사용하세요.

32GB USB 하드 드라이브가 있는데 USB 드라이브에서 1GB의 데이터를 복사하는 데 시간이 얼마나 걸리는지 알고 싶습니다. 나는 사용하려고dd if=/dev/sdb1 of=/dev/null

출력은 다음과 같습니다

dd if=/dev/sdb1 of=/dev/null bs=1G
 28+1 records in
 28+1 records out
 30751983616 bytes (31 GB) copied, 331.297 s, 92.8 MB/s

내가 사용하고 있는 방법이 맞는 건지, 아니면 내가 잘못하고 있는 건지. 다른 도구는 사용할 수 없고 dd 명령만 사용할 수 있습니다.

답변1

명령이 올바르지 않습니다. dd1GB 블록을 읽으라고 지시하고 있지만 읽기 수에는 제한이 없습니다. 1GB를 읽는 데 걸리는 시간만 측정하려면 dd하나의 블록만 읽도록 지시하면 됩니다.

dd if=/dev/sdb1 of=/dev/null bs=1G count=1

장치를 이전에 읽은 경우 버퍼링을 사용하면 이 명령이 더 빠르게 실행될 수 있습니다.

답변2

첫째, @jiliagre가 말했듯이 1Gb가 아닌 전체 파티션(31Gb)에 대한 전송 시간을 측정하고 있습니다. 출력의 마지막 줄은 다음을 보여줍니다.

30751983616바이트(31GB) 복사, 331.297초, 92.8MB/초

둘째, 데이터를 쓰고 있기 때문에 /dev/null데이터를 블랙홀링하므로 USB 드라이브의 읽기 시간만 제공됩니다.

실제 I/O 전송 시간은 대상 장치의 쓰기 속도 기능에 따라 제한되며 더 느려질 수 있습니다.

또한 복사하려는 데이터에 따라 다릅니다. 작은 1Gb 파일은 단일 1Gb 파일보다 복사 속도가 느리고 할당된 파일 크기로 인해 장치에서 더 많은 공간을 차지합니다.

관련 정보