CD/DVD의 sha-1, sha-256 또는 MD5를 얻는 방법은 무엇입니까?

CD/DVD의 sha-1, sha-256 또는 MD5를 얻는 방법은 무엇입니까?

방금 데비안 CD를 굽으려고 했어요그리고데비안 DVD.iso파일을 다운로드할 때 이상한 동작이 발생합니다. CD의 체크섬은 정확하지만 DVD의 체크섬은 올바르지 않습니다.

작동 방식은 다음과 같습니다.

  • 2개 다운로드됨.iso문서
  • 두 항목의 체크섬을 확인하세요..iso문서
  • CD 굽기debian-7.1.0-amd64-CD-1.isoCD로
  • 다음 명령을 실행하여 CD가 올바른지 확인하십시오.

    dd if=/dev/sr0 | md5sum (또는 sha-1 또는 sha-256)

이것은 잘 작동합니다. 다음을 사용하여 CD에서 체크섬을 얻습니다.DD파이프된 입력 md5, sha-1 또는 sha-256은 공식 체크섬과 일치합니다.

이제 내가 이해하지 못하는 것은 DVD에서 DVD를 구웠다는 것입니다..iso--파일이 올바르게 다운로드되었다는 것을 알고 있으며.iso 문서체크섬이 정확합니다.

그러나 DVD를 드라이브에 넣고 동일한 명령을 실행하면:

dd if=/dev/sr0 | md5sum   (or sha-1 or sha-256)

그런 다음 가짜 체크섬을 얻습니다.

DVD 스틸것 같다올바른 것은 모든 파일이 거기에 있는 것처럼 보인다는 것입니다.

제 질문은 다음과 같습니다. 다음 명령을 사용하여 DVD가 올바르게 구워졌는지 확인할 수 있습니다.DD출력을 md5sum(또는 sha-1 또는 sha-256)으로 파이프하거나 수행할 수 있는 "특별한" 작업이 있습니까?DD구운 CD는 확인할 수 있지만 구운 DVD는 확인할 수 없나요?

*(제가 사용한 점 참고해주세요.디스크 유틸리티OS X에서 CD 및 DVD 굽기)*

답변1

Giles의 답변 외에도

아직 ISO 이미지가 있으면 cmp체크섬을 대신 사용할 수 있습니다. 차이가 발생한 바이트를 알려줍니다. 또한 조기에 오류가 있는 것처럼 즉시 알려주는 반면 체크섬은 항상 전체 미디어를 읽어야 하므로 검사 속도가 빨라집니다.

$ cmp /dev/cdrom /path/to/cdrom.iso

오류가 발생하면 다음과 같이 인쇄되어야 합니다.

/dev/cdrom /path/to/cdrom.iso differ, byte 123456789, line 42

정확하다면 인쇄되어야합니다아무것도 없다, 아니면 이거:

cmp: EOF on /path/to/cdrom.iso

/dev/cdrom이는 ISO보다 더 많은 데이터가 있음을 의미하며 아마도 제로 패딩일 가능성이 높습니다.

비교를 시작하기 전에도 치수를 확인할 수 있습니다.

$ blockdev --getsize64 /dev/cdrom
123456999
$ stat -c %s /path/to/cdrom.iso
123456789

동일하다면 체크섬도 일치해야 합니다. 더 큰 경우 /dev/cdrom끝에 0을 채워야 합니다. 확인하는 데 사용할 수 있습니다 hexdump. ISO 크기를 -s매개변수로 사용합니다.

$ hexdump -s 15931539256 -C /dev/cdrom
3b597ff38  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
3b597fff8  00 00 00 00 00 00 00 00                           |........|

hexdump어떤 이유로 인해 의도적으로 손상이 발생한 경우 파일의 다른 부분에서 차이점을 보는 데에도 유용합니다.

답변2

내가 아는 한, CD와 DVD는 모두 일정한 수의 고정된 크기 블록으로 구성되어 있습니다. 굽고 있는 이미지가 블록 크기의 배수가 아닐 수도 있습니다. 이 경우 마지막 블록에는 일부 후행 쓰레기가 포함됩니다. 따라서 실행하면 dd if=/dev/sr0(이것은 난독화된 작성 방법임 md5sum </dev/sr0) 후행 쓰레기가 해시에 포함됩니다.

이미지의 크기를 추적해야 합니다. 그런 다음 페이로드(예: ISO 파일)의 바이트 수에 해싱 유틸리티가 적용됩니다.

</dev/sr0 head -c "$size" | md5sum

관련 정보