ISO 이미지와 비교하여 CD를 확인하는 방법은 무엇입니까?

ISO 이미지와 비교하여 CD를 확인하는 방법은 무엇입니까?

물리적으로 구운 CD와 원본 ISO 이미지가 있습니다. CD 콘텐츠에 대한 참조 체크섬 파일은 제공되지 않습니다. 실제 CD가 정확하고(원본 이미지에 해당) 완전히 읽을 수 있는지 확인하는 방법은 무엇입니까?

답변1

아직 ISO가 있는 경우 바이트 단위로 비교할 수 있습니다 cmp. 이것은 발견된 첫 번째 차이점에서 종료되는 매우 간단한 명령이므로 실제로 초기에 오류가 있는 경우 체크섬을 수행하는 것보다 훨씬 빠릅니다.

cmp /dev/cdrom /path/cdrom.iso

성공을 위한 가능한 결과:

  • 출력 없음: 동일하며 모든 것이 잘 작동합니다. && echo OK출력이 부족하여 혼란스러우면 명령에 추가할 수 있습니다.
  • cmp: EOF on cdrom.iso: 동일하지만 CDROM에는 ISO 파일보다 더 많은 바이트가 있습니다. 이는 일반적으로 CDROM 끝 부분의 제로 패딩으로 인해 발생합니다. 실제로는 중요하지 않으므로 여전히 성공입니다.

실패로 인해 발생할 수 있는 결과:

  • cmp: EOF on /dev/cdrom: 어떤 이유로 인해 CDROM의 데이터가 불완전합니다. ISO가 너무 커서 실제 CD를 담을 수 없을 수도 있습니다.
  • /dev/cdrom cdrom.iso differ: byte 18296321, line 71780: CDROM과 ISO 이미지 사이에 예상치 못한 차이가 있습니다.

답변2

먼저 CD를 임시 파일로 추출합니다.

dd if=/dev/sr0 of=copy.iso

그런 다음 합계의 크기가 같은지 확인합니다 . 예를 들면 다음과 copy.iso같습니다 .orig.iso

stat -c '%s %n' orig.iso copy.iso

크기가 동일하면 간단합니다.

sha1sum orig.iso copy.iso

하지만 어떤 경우에는 사본이나 원본 이미지에 뒤에 0이 표시되기 때문에 크기가 약간 다를 수 있다는 것을 알았습니다. 예를 들어, copy.iso다음보다 작은 경우 orig.iso:

sha1sum copy.iso
head -c $(stat -c %s copy.iso) orig.iso | sha1sum

물론 후행 바이트가 0인지도 확인해야 합니다.

od -j $(stat -c %s copy.iso) orig.iso

오프셋을 제외한 첫 번째 줄은 0이어야 합니다. 두 번째 줄은 별표여야 합니다. 별표는 연속적인 동일한 선이 표시되는 것을 방지하는 것입니다.

답변3

ISO 파일이 CD를 굽는 데 사용된 파일과 동일한 경우 제가 가장 좋아하는 두 가지 파일은 다음과 같습니다.

diff /dev/sr0 /tmp/file.iso

녹화된 이미지를 이미지 파일과 비교하세요. 약간 마조히즘적인 느낌이 든다면 다음과 같이 시도해 볼 수 있습니다.

sha1sum /dev/sr0 /tmp/file.iso

그리고 서명을 비교해보세요. 이는 이미 SHA1 합계가 어딘가에 있는 경우 더 유용합니다. 두 명령 모두 미디어를 끝까지 읽습니다.

@Marki555가 제안한 방식으로 수행하려면 먼저 광학 드라이브와 이미지를 설치해야 합니다. 다음은 전체 스크립트입니다. (물론 sudo루트 사용자라면 생략할 수 있습니다. 일반적으로 이는 좋지 않은 생각입니다.)

sudo mkdir /tmp/{a,b}
sudo mount /dev/sr0 /tmp/a -o ro # or whatever
sudo mount /tmp/file.iso /tmp/b -o loop,ro
diff -dur /tmp/{a,b}
sudo umount /tmp/a
sudo umount /tmp/b
sudo rmdir /tmp/{a,b}

답변4

Brasero는 다음을 수행할 수 있습니다: 도구->무결성 확인...

관련 정보