이미지를 드라이브에 쓸 때 SHA 256 합계가 변경되는 이유는 무엇입니까?

이미지를 드라이브에 쓸 때 SHA 256 합계가 변경되는 이유는 무엇입니까?

ddUSB 드라이브를 통해 이미지를 쓴 다음 sha256sum이미지를 다시 쓰면 합계가 변경된다는 것을 알았습니다 . 왜? ISO와 결코 동일하지 않습니다.

나는 실행 중입니다 : ( sha256sum /dev/sdb파티션이 아닌 블록 장치에서)

답변1

이미지가 USB 드라이브보다 작은 경우 해당 크기의 데이터를 드라이브에서 다시 읽어야 합니다. 그렇지 않으면 드라이브의 나머지 모든 부분이 sha256에 추가되어 다른 결과가 생성됩니다.

예를 들어

$ ls -l tst.iso                                                                
-rw-r--r-- 1 root root  Jul  1 14:58 tst.iso

$ /usr/bin/sha256sum tst.iso
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  tst.iso

$ dd if=tst.iso of=/dev/sdg bs=1M
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 200.066 s, 5.4 MB/s

다시 읽을 때 우리가 쓴 1,073,741,824바이트만 읽었는지 확인해야 합니다. 이 경우 정확히 1024개의 1M 블록이라는 것을 알고 있으므로 bs=1M count=1024.

$ dd if=/dev/sdg bs=1M count=1024 | sha256sum
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 37.8798 s, 28.3 MB/s
49bc20df15e412a64472421e13fe86ff1c5165e18b2afccf160d4dc19fe68a14  -

총 바이트가 일치하지 않으면 sha256이 달라집니다.

관련 정보