dd 명령을 사용하여 Linux 운영 체제에서 간단한 테스트 사례를 실행하려고 합니다.
다음 명령을 사용하여 간단한 디스크 이미지를 만듭니다.
dd if=/dev/urandom of=disk.img bs=1M count=100
첫 번째 테스트는 다음과 같습니다.
이제 다음 명령을 실행합니다.
dd if=disk.img of=output_1 bs=1k count=4
dd if=disk.img of=output_2 bs=4k count=1
md5sum output_1 output_2
bc0245c10ff529042fd2a5335ed1573f output_1
bc0245c10ff529042fd2a5335ed1573f output_2
너는 볼 수있어output_1
그리고output_2
정확히 동일한 md5 해시 값입니다.
두 번째 테스트는 다음과 같습니다.
이제 dd 명령에 건너뛰기 매개변수를 추가합니다.
dd if=disk.img of=output_1 skip=1500 bs=1k count=4
dd if=disk.img of=output_2 skip=1500 bs=4k count=1
c5b0e8dde317c25011b31a5c48580477 output_1
4585d39fcf93cec4abc6c55094aac724 output_2
이 블록의 결과가 다른 이유는 무엇입니까?
내 테스트의 어떤 부분이 잘못되었나요?
답변1
건너뛰기 인수는 바이트가 아닌 (입력) 블록에 있습니다.매뉴얼 페이지:
skip=N skip N ibs-sized blocks at start of input
첫 번째 경우 건너뛴 부분은 다음과 같습니다.
1500 * 1KiB = 1536000바이트
두 번째 경우:
1500 * 4KiB = 6144000바이트
해당 값을 정확하게 분할할 수 있는 한 조정이 가능합니다. 두 번째 경우에는 1500*1k/4k=375 ( skip=375
)를 사용하면 첫 번째 경우와 동일한 결과가 반환됩니다.