gzip은 무결성 / crc 검사를 .tar에 추가합니까?


12

명령을 실행합니다.

tar -cf myArchive.tar myDirectory/
gzip myArchive.tar

그런 다음 신뢰할 수없는 많은 매체에 파일을 복사 한 다음 나중에 다음을 사용하여 압축을 풉니 다.

tar -xzf myArchive.tar.gz

내가 tar-ball을 압축했다는 사실은 어떤 식 으로든 포장되지 않은 내용의 무결성 또는 최소한 CRC를 보장합니까?

답변:


15

tar자체는 나중에 비교하기 위해 체크섬을 작성하지 않습니다. 당신이 경우 gzip(가) tar보관 해당 기능을 사용할 수 있습니다.

tar을 사용합니다 compress. -Z아카이브를 작성하는 동안 플래그 를 사용하면 아카이브 tarcompress읽거나 쓸 때 프로그램 이 사용 됩니다. 로부터 gzip맨 :

표준 압축 형식은 일관성 검사를 허용하도록 설계되지 않았습니다.

그러나 -z매개 변수를 사용할 수 있습니다 . 그런 tar다음를 통해 아카이브를 읽고 씁니다 gzip. 그리고 gzipcrc 체크섬을 작성합니다. 해당 체크섬을 표시하려면 다음 명령을 사용하십시오.

$ gzip -lv archive.tar.gz
method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 3f641c33 Sep 25 14:01               24270              122880  80.3% archive.tar

로부터 gzip맨 :

처음 두 형식 ( gzip 또는 zip은 )을 사용할 때 gunzip은 32 비트 CRC를 확인합니다.


5

예, gzip 파일 형식 에는 아카이브가 손상되었는지 감지하는 데 사용할 수있는 CRC-32 체크섬이 포함되어 있습니다.

물론 체크섬을 통해 gzip 은 아카이브가 손상되었다는 것을 알려주지 만 실제로는 아카이브 내부의 데이터를 복구하는 데 도움이되는 작업은 없습니다. 따라서 방금 웹에서 다운로드 한 아카이브가 실제로 올바르게 다운로드되었는지 확인하는 등의 작업에 유용합니다.

신뢰할 수없는 미디어를 통해 아카이브를 저장하거나 전송하는 것이 실제로 걱정되는 경우 오류 와 함께 실제로 오류 수정 을 제공하는 par 와 같은 아카이브 형식을 사용하는 것이 좋습니다. 물론 이러한 형식의 단점은 오류 수정에 필요한 중복성이 파일 크기를 다소 증가 시킨다는 것입니다.


4

tar무결성 검사가 없습니다. 예:

$ echo JJJJJJJJJJJJJJJJJJ > b
$ tar cvf a.tar b
$ sed -i s/JJJJJJJJJJJJJJJJJJ/tttttttttttttttttt/g a.tar
$ tar xvf a.tar
$ cat b

tttttttttttttttttt

a.tar아카이브 의 내용이 변경되어 파일의 b내용이 완전히 다르지만 tar는이를 인식하지 못합니다. tar 형식이 모두 tar-1.28 (최신)을 포함한 모든 tar에 적용됩니다 --format=gnu --format=posix. pax명령 (대체 타르 리더) pax -r < a.tar또한 아카이브 변경을 통지하지 않습니다.


2
영업 이익은 인식 (또는 적어도 의심) 될 것으로 보인다 tar(적어도 없이-z 무결성 검사를하지 않는 옵션). 또한 허용되는 답변에이 내용이 나와 있습니다. 질문은 : gzip(또는 -z옵션 의 사용 ) 무결성 검사를 추가 합니까?
G-Man, 'Reinstate

올바른 G-Man, gzip 부분도 포함되어 있고 gzip이 내용이 변경되었음을 감지하면 괜찮습니다.
Aksel Willgert

2

압축을 풀 때 tar가 오류를 발견하면 메시지를 인쇄하고 0이 아닌 종료 값으로 종료합니다. 이 동작은 tar 파일이 작성된 후 사용 된 압축 알고리즘과는 무관합니다.

신뢰할 수없는 링크를 통해 파일이 대상으로 전송되었는지 확인하려면 전송하기 전에 파일의 md5 합계를 작성하고 수신 후 md5 합계를 확인하십시오.


압축이 풀린 콘텐츠의 무결성에만 관심이있는 경우 타르의 md5는 압축을 풀 때 확인 타르와 비교하여 추가 항목을 추가하지 않습니까?
Aksel Willgert

tar 아카이브 내부의 컨텐츠 무결성은 tar자체적으로 관리 됩니다. 필요한 경우 추가 계층을 추가 할 수 있습니다. tar 파일의 무결성이 확인되면 tar 아카이브 내의 컨텐츠도 정상입니다. 그러나 처음에는 데이터를 전송하는 데 사용되는 프로토콜에 의해 처리되어야합니다.
Jan

-1

PKZip 패키지 (win / dos)에는 손상된 아카이브에서 파일을 복구 할 수있는 PKZipFix라는 프로그램이 있습니다. 나는 과거 에이 유틸리티를 사용했는데 압축을 풀지 않을 약간 손상된 아카이브에서 파일을 복구 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.