CD / DVD의 md5sum 계산


18

CD에 구운 ISO 파일이 있습니다. 이제 CD가 올바르게 작성되었는지 어떻게 확인할 수 있습니까? ISO 파일에서 계산 한 해시 합계를 확인하는 데 사용할 수있는 해시 합계를 계산하는 명령을 원합니다. 이상적으로 명령은 다음과 같아야합니다.

  • ISO 파일에 관계없이 작업하십시오. 즉, 디스크의 각 파일에 대한 해시 합계 목록을 유지하거나 블록 수를 기억하고 싶지 않습니다.
  • 한 줄 명령은 훌륭하고 두 줄 길이의 명령 체인은 괜찮습니다. 한 페이지에 걸친 스크립트는 그렇지 않습니다.
  • 예를 들어, dd디스크를 파일로 되 돌린 다음 파일에서 실행 md5sum하는 것은 허용되지 않습니다.

모든 것을 만족시킬 수없는 답변이 없다면 가장 가까운 경기도 감사하겠습니다. 왜 그렇게 간단하지 않은지 말해 주시면 더 좋습니다.

답변:


18

기본적인 문제는 원래 ISO에 있었던 것과 동일한 정보의 md5sum을 가져오고 싶다는 것입니다. ISO를 CD에 쓰면 디스크 끝에 빈 공간이 생겨 필연적으로 md5sum이 변경됩니다. 따라서 가장 짧은 방법 :

md5sum /dev/cdrom

작동하지 않습니다 . 작동하는 것은 온라인 설명서 에서 일반적이며 장치에서 정확한 바이트 수를 읽은 다음을 수행하는 것 md5sum입니다. 바이트 수를 알고 있으면 다음과 같이 할 수 있습니다.

dd if=/dev/cdrom bs=1 count=xxxxxxxx | md5sum

여기서 'xxxxx'는 iso의 크기 (바이트)입니다.

사용중인 바이트 수를 모르지만 디스크에 iso가 여전히 있으면 ls를 사용하여 다음과 같은 작업을 수행하여 ls를 사용하여 얻을 수 있습니다 ( here ).

dd if=/dev/cdrom | head -c `stat --format=%s file.iso` | md5sum

작동해야하는 다른 한 줄 구성이 많이 있습니다. 각각의 경우 dd디스크에서 바이트를 읽는 데 사용 하지만 파일로 파이핑하지 않고 md5sum으로 바로 전달합니다.

가능한 속도 향상은 더 큰 블록 크기를 (사용하는 몇 가지 계산을 수행하여 할 수 bs=dd명령).


로 단순화 dd if=/dev/cdrom |할 수 있습니다 </dev/cdrom. dd장치 에 대해 마법 과 블록 은 없으며 재미있는 구문을 가진 스트림 조작 명령 일뿐입니다.
Gilles 'SO- 악마 그만

그건 그렇고, 당신 (phunehehe)은 MD5 체크섬과 함께 iso 크기를 가져야합니다. 이것은 부분적으로 손상된 MD5에 특히 중요하지만 사용하는 체크섬에 관계없이 보안과 유용성 모두에 좋습니다.
Gilles 'SO- 악마 그만

@Gilles : 실제로 장치 캐시 크기 dd와 함께 사용 bs하면 일반 입력 리디렉션과 달리 데이터 전송 속도가 빨라질 수 있습니다.
alex

@Gilles : "부분적으로 고장난 MD5"는 무엇을 의미합니까? 그리고 왜 문제가 발생했을 때 체크섬이 즉시 알려 주어야하는 이유는 무엇입니까?
phunehehe

@ phunehehe : MD5 에는 알려진 암호화 취약점있습니다 (공개적으로 주어진 파일에 대한 충돌을 생성하는 방법은 알려져 있지 않지만 올 수 있습니다). 파일 크기를 알면 약간 더 자신감이 생길 수 있습니다. 또한 잘린 다운로드와 같은 일반적인 실수로 인한 오류에 대한 즉각적인 피드백을 제공합니다.
Gilles 'SO- 악마 중지'11

2

이 작업을위한 프로그램이 있습니다. -라고 checkisomd5합니다. 우분투에서는 다음 명령으로 설치할 수 있습니다.

sudo apt-get 설치 isomd5sum

어떻게 사용합니까? checkisomd5 /dev/sr0나에게 : 매체 점검이 완료되면 결과는 다음과 같습니다. NA. 사용 가능한 체크섬 정보가없고 매체를 확인할 수 없습니다.
Torsten

체크섬은 도구 "implantisomd5"를 사용하여 iso 이미지에 포함되어야합니다. iso가 디스크에 기록되기 전에 수행해야합니다. "checkisomd5"에 포함 된 유틸리티.
Денис Проскурин

1

디스크의 이미지 크기가 2048, 정수로 나눌 수있는 경우, 일반적으로 사용되는 정수는 다음과 같이 정확한 MD5sum을 얻을 sr0수 있습니다 lshw -C disk. 'count'는 이미지 크기의 배당을 2048로 나눈 값입니다.

dd if=/dev/sr0 bs=2048 count=356352 |md5sum

많은 CD 는 섹터 당 2,048 바이트의 사용자 데이터가 있는 "모드 1"트랙 을 사용합니다 . "모드 2"는 섹터 당 2,336 바이트의 사용자 데이터를 저장하지만 모드 1에서 제공하는 고급 오류 감지 및 수정 기능이 없으므로 오류 2를 허용 할 수없는 데이터에는 모드 2가 덜 유용합니다.
CVn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.