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

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

다음 명령을 실행합니다.

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

그런 다음 해당 파일을 신뢰할 수 없는 여러 미디어에 복사한 다음 다음을 사용하여 압축을 풀었습니다.

tar -xzf myArchive.tar.gz

사실, 저는 타르볼을 압축했습니다. 이것이 어떤 식으로든 압축 해제된 콘텐츠의 무결성을 보장합니까, 아니면 적어도 CRC를 보장합니까?

답변1

tar나중에 비교하기 위해 체크섬 자체를 기록하지 않습니다. gzip을 보관 하면 tar해당 기능을 사용할 수 있습니다.

tar를 사용하십시오 compress. -Z아카이브를 생성할 때 이 플래그를 사용 하면 tar해당 아카이브를 읽거나 쓸 때 프로그램이 사용됩니다. 맨페이지 compress에서 :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를 확인합니다.

답변2

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

물론 체크섬을 사용하면 gzip을 사용할 수 있지만말하다아카이브가 손상된 것으로 확인되면 아카이브는 실제로 그 안에 있는 데이터를 복구하는 데 도움이 되는 어떤 작업도 수행하지 않습니다. 따라서 웹에서 방금 다운로드한 아카이브가 실제로 올바르게 다운로드되었는지 확인하는 등의 작업에 유용합니다.

신뢰할 수 없는 미디어를 통해 아카이브를 저장하거나 전송하는 것이 정말로 걱정된다면 다음과 같은 것을 사용하는 것이 좋습니다.기준이는 실제로 다음을 제공합니다.보정오류 감지를 제외하고. 물론 이 형식의 단점은 오류 수정에 필요한 중복으로 인해 필연적으로 파일 크기가 약간 증가한다는 것입니다.

답변3

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. paxtar 판독기를 대체하는 이 명령 pax -r < a.tar도 아카이브 변경 사항을 인식하지 못합니다.

답변4

PKZip 소프트웨어 패키지(win/dos)에는 손상된 아카이브에서 파일을 복구할 수 있는 PKZipFix라는 프로그램이 함께 제공됩니다. 저는 이전에 이 유틸리티를 사용한 적이 있으며 압축을 풀 수 없는 적당히 손상된 아카이브에서 파일을 복구할 수 있었습니다.

관련 정보