ISO 이미지로 CD를 확인하는 방법은 무엇입니까?


10

실제 레코딩 된 CD와 원본 ISO 이미지가 있습니다. CD 내용에 대한 참조 체크섬 파일이 제공되지 않았습니다. 실제 CD가 정확하고 (원본 이미지에 해당) 완전히 읽을 수 있는지 어떻게 확인합니까?


구운 직후 CD의 데이터를 확인 하시겠습니까? 대부분의 레코딩 소프트웨어 도구에는 기록 된 데이터를 검사하는 옵션이 있습니다 (예 : Nero).
Silviu

나는 알고 있지만 굽기 절차 직후가 아니라 잠시 동안 (굽기 프로그램이 이미 닫힌 후) 다른 PC에서 확인해야합니다. 내가 아는 한 Nero는 레코딩 절차와는 별도로 검증 절차를 시작하지 않습니다. 검증 기능은 레코딩에 대한 추가 기능 일 뿐이며 레코딩 직후에만 발생할 수 있습니다. 내가 원하는 것은 CD를 넣고 ISO 파일을 선택하고 확인하기 위해 클릭하는 것입니다 ... 또 다른 제약 조건은 Windows CD / IDE 드라이버가 정상이 아닌 것으로 판단되므로 Linux에서이 작업을 수행하고 싶지 않다는 것입니다.
Ivan

부팅하기 쉬운 CD 나 순수한 데이터를 굽고 있습니까?
데이지

부팅 가능한 CD ..
Ivan Ivan

참고로, 일부 Linux ISO에는 내용을 확인하는 내장 부팅 옵션이 있습니다. 이 옵션을 사용할 수 있으며 체크섬이 포함 된 파일과 비교하여 모든 디스크 파일을 검사합니다. md5sumCD / DVD를 부팅하지 않으려면 스스로 실행 하고 비교할 수도 있습니다 .
Skylar Ittner

답변:


5

먼저 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이어야합니다. 두 번째 줄은 별표 여야합니다. 별표는 연속적인 동일한 선이 표시되지 않도록하는 것입니다.


체크섬의 경우 +1 이것은 일반적으로 파일 (또는 디렉토리)을 비교하고 차이점을 아는 것에 신경 쓰지 않는 사실상의 표준입니다 (diff의 경우와 같이). 더 작은 것입니다.
nikitautiu

또는 head -c $(stat -c %s /path/to/master.iso) /dev/sr0 | sha1sum구운 CD 이미지를 만들 필요가 없도록 할 수 있습니다 .
Hitechcomputergeek

4

여전히 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 이미지간에 예기치 않은 차이가 있습니다.

diff가 'differ'를보고하는 동안 cmp 방법은 훌륭합니다!
qrtLs

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}

3
cmp [-l]이진 파일에 더 적합합니다. Diff는 텍스트에서 가장 잘 작동합니다.
derobert

2

dd(예 :)를 사용하여 CD를 완전히 읽을 수 있는지 확인할 수 있습니다 dd if=/dev/cdrom of=/dev/null. 그러나 ISO 이미지와 직접 비교할 수는 없습니다. 각각의 소프트웨어는 약간 다른 ISO 파일 (일부 다른 헤더 또는 패딩)을 생성하지만, 서로 다른 ISO 이미지는 모두 동일한 CD 내용 (디렉토리 구조, 파일 속성 및 파일 내용)을 제공합니다.

따라서 CD를 마운트하고 ISO 이미지를 마운트 한 다음 일종의 디렉토리 비교 도구를 사용하여 파일 시스템 수준에서 비교할 수 있습니다 (죄송합니다, 아직 리눅스에서는 사용하지 않았습니다).


diff -r디렉토리 내용을 재귀 적으로 비교합니다.
케빈

5
이미 준비된 iso 이미지에서 CD를 레코딩 했으므로 레코딩 할 때 다르게 빌드 할 것이 없으므로 CD를 iso 이미지와 직접 비교할 수 있습니다.
psusi

0

Brasero는 다음을 수행 할 수 있습니다. 도구-> 무결성 검사 ...


Brasero는 모든 Linux 배포판에서 사용 가능한 (Gnome) 그래픽 응용 프로그램입니다. 설치 한 다음 편집-> 플러그인으로 이동하여 파일 체크섬을 확인하십시오 (기본적으로 선택되어 있음). 여기
Milan Kerslager
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.