동일한 블록에 대해 다른 결과가 나타나는 Linux dd 문제

동일한 블록에 대해 다른 결과가 나타나는 Linux dd 문제

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)를 사용하면 첫 번째 경우와 동일한 결과가 반환됩니다.

관련 정보