자동 프로세스에서 ISO 파일은 mkisofs로 생성됩니다. 원래 데이터가 정확히 동일하기 때문에 결과 iso 파일은 동일하지 않습니다 (md5sum 변경). 결과가 rsync --checksum이므로 “동일한 ISO”가 매번 재전송되는 것이 싫습니다. 대부분 타임 스탬프가 주요 차이점이 될 것으로 예상합니다.

mkisofslibfaketime 내장 스위치가 있습니까? > 그것은 실제로 동일합니다.

타임 스탬프 만 중요한지 모르겠습니까? 결과 iso 파일을 xxd isofile 출력과 다음과 같이 비교했습니다.

diff --side-by-side --suppress-common-lines <(xxd a.iso) <(xxd b.iso ) 

정확히 동일한 파일에서 16 바이트 (약 800 바이트 차이)를 나타내는 51 줄.

문제의이 iso를 생성하는 데 사용되는 명령은 대략 다음과 같습니다.

genisoimage -o "file.iso" -b isolinux/isolinux.bin \ -c isolinux/boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table \ -J -R -v -T -V "CDLABEL" "datadir/" 

BS : rsync가있는 명령 줄 매개 변수 스위치가 누락 되었나요?이 스위치는 다음과 같은 경우 재전송을 방지하기 위해 최대 1MB의 큰 파일 청크를 체크섬합니다. 제 경우에는 800 바이트 만 다릅니 까?

주석

  • rsync는 일반적으로 업데이트를 최적화하기 위해 파일의 일부를 확인하지만 둘 다 로컬 (예 : nfs) 인 경우에는 그렇지 않습니다. 강제로 --no-W를 추가합니다. libfaketimefaketime 유틸리티는 LD_PRELOAD를 사용하여 시스템 시계를 에뮬레이트합니다 ( not setuid).
  • 안녕하세요. 방금 schilytools의 새 버전을 게시했습니다. 포함 된 향상된 mkisofs에는 재현 가능한 타임 스탬프에 대한 지원이 포함됩니다. 업데이트 된 답변을 확인하세요.

답변

먼저 중요 사항 : 2004 년 5 월 mkisofs의 결함이있는 변종입니다.

2007 년 5 월까지 많은 데비안 관련 버그 추가되었으며 그 이후로 죽었습니다.

여기서 알아야 할 중요한 점은 genisoimage가 결함이있는 파일 시스템 이미지를 생성하여 더 이상 허용되지 않을 수 있다는 것입니다. OS에 따라 …

공식 mkisofs는 2006 년 8 월에 여전히 활발하게 유지 관리되고 있으며 데비안이 아닌 특정 버그를 많이 수정했습니다. 현재 알려진 바는 없습니다. 버그.

이제 문제 해결 : -R (Rock Rigde)을 사용하고 있으며 파일 메타 데이터에 타임 스탬프와 같은 UNIX가 추가됩니다. 이것은 문제 번호 1입니다 ….

다른 문제는 ISO-9660 파일 시스템 수퍼 블록 (공식적으로 primary_descriptor라고 함)에 생성 날짜와 수정 날짜가 포함되어 있다는 것입니다. 후자는 -modification-date 옵션을 통해 제어 할 수 있습니다.

이 기능이 정말 필요하다고 생각하신다면 생성 일에 유사한 옵션을 추가 할 수 있습니다. 그러나 마지막 읽기 액세스 시간 대신 파일의 수정 날짜를 사용하도록 Rock Ridge 형식화 부분에 지시하는 옵션이 여전히 필요합니다.

원래 소스의 자주 업데이트되는 버전은 다음의 일부입니다. 검색 할 수있는 schilytools tarball : http://sourceforge.net/projects/schilytools/files/

현재 최신 schilytools tarball은 변환 가능한 ISO-9660 파일 시스템 이미지에 대한 지원을 도입했습니다. schily-2020-03-27.tar.bz2를 가져 오기 / 컴파일 / 설치하세요.

몇 가지 새로운 옵션이 있습니다.

  • -noatimemkisofs에 수정 시간을 한 번으로 보관하도록 지시합니다.

  • -creation-date는 PVD의 생성 날짜를 설정합니다.

  • -expiration-date는 PVD의 만료 날짜를 설정합니다.

  • -effective-date는 PVD의 유효 날짜를 설정합니다.

  • -reproducible-date-effective-date-noatime를 제외한 모든 시간을 추가로 설정합니다.

바닐라 ISO-9660 파일 시스템 이미지와 Rock Ridge 및 . 최신 man 페이지를 참조하십시오. http://schilytools.sourceforge.net/man/man8/mkisofs.8.html

업데이트 된 명령 줄은 다음과 같습니다. :

mkisofs -b isolinux/isolinux.bin \ -c isolinux/boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table \ -J -R -v -T -V "CDLABEL" \ -reproducible-date=20200327 "datadir/" > file.iso 

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다