it-swarm-ko.tech

CD / DVD의 md5sum 계산

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

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

모두 만족할 수없는 답이 없다면 가장 가까운 경기도 감사하겠습니다. 왜 그렇게 간단하지 않은지 말할 수 있다면 더 좋습니다.

19
phunehehe

기본적인 문제는 원래 ISO에 있던 것과 똑같은 정보의 md5sum을 가져오고 싶다는 것입니다. ISO를 CD에 기록 할 때 디스크 끝에 빈 공간이있을 수 있으며 이로 인해 필연적으로 md5sum이 변경됩니다. 따라서 가장 짧은 방법은 다음과 같습니다.

md5sum /dev/cdrom

작동하지 않습니다 . 작동하는 것은 (그리고 online 문서에서 일반적 임) 장치에서 정확한 바이트 수를 읽고 md5sum를 수행하는 것입니다. 바이트 수를 알고 있다면 다음과 같이 할 수 있습니다.

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

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

현재 바이트 수를 모르지만 디스크에 여전히 iso가 있으면 다음과 같은 작업을 수행하여 ls를 사용하여 가져올 수 있습니다 ( 여기에서 가져옴 ) :

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

작동해야하는 다른 많은 단선 구조가 있습니다. 각각의 경우에 우리는 dd를 사용하여 디스크에서 바이트를 읽지 만 파일로 파이핑하지 않고 곧바로 md5sum에 전달합니다.

더 큰 블록 크기 (dd 명령의 bs=)를 사용하기 위해 몇 가지 계산을 수행하여 속도를 향상시킬 수 있습니다.

18
Steven D

디스크에있는 이미지의 크기가 2048 (정수)로 나눌 수있는 경우 (매우 일반적으로 보임) 다음과 같이 정확한 MD5sum을 얻을 수 있습니다. 여기서 sr0는 광의 이름입니다. lshw -C disk-를 사용하여 찾았습니다. 여기서 'count'는 이미지 크기를 2048로 나눈 값입니다.

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