갑자기 오래된 tar.gz
파일 을 복구해야 했지만 실행하자마자 :
tar -zxvf filename.tar.gz
나는 이것을 얻는다 :
gzip: stdin: invalid compressed data--format violated
tar: Child returned status 1
tar: Error is not recoverable: exiting now
답변
시도해야 할 것은 다음과 같습니다.
file
아카이브에서 명령을 사용 하여gzip
-ped 데이터 로 인식되는지 확인하십시오 .strace gunzip
파일에서 실행하십시오 . 파일에서 읽은 마지막 바이트를 인쇄하여 파일에서 손상이 발생한 지점을 식별하는 데 도움이 될 수 있습니다.- 의 디버그 빌드 실행
gunzip
아래를gdb
. 손상된 섹션을 수정하고 (이를 수행하려면 추가 운이 필요함) 파일 끝까지 계속 될 수 있는지 확인하십시오.
손상의 특성에 따라 데이터를 복구하거나 복구하지 못할 수 있습니다.
답변
복구 방법에 대한 일부 정보 는 손상된 .gz 파일 복구에서 찾을 수 있습니다 .
gzip Recovery Toolkit aka gzrecover와 같은 작업을 수행하는 데 도움이되는 도구도 있습니다 .
답변
완전 복구가 불가능합니다. .zip과 같은 형식은 더 나은 보호 및 복구 옵션을 제공하지만 완전하지는 않습니다.
.tar.gz는 모든 파일을 묶은 다음 압축을 적용합니다. .zip 은 각 파일에 대한 압축을 다시 시작합니다. 따라서 .zip 파일에서 압축 블록에 대한 손상은이 블록이 속한 파일에만 영향을줍니다. .tar.gz에서 손상은 압축이 다시 시작될 때까지 모든 후속 파일에 영향을 미칩니다.
답변
를 실행 zcat bad.tar.gz > some.tar
하고 추출 하십시오 . 파일의 손상된 부분을지나가는 것 까다로울 수. 매뉴얼 페이지는 형식에 대한 포인터를 제공하지만 Google에서 다른 옵션을 찾고 싶습니다.
이것이 gzip으로 압축되어 있습니까? 형식을 이해하지 못하기 때문에 불평 할 수 있습니다 …
답변
모든 카피는 파일의 시작부터 오류가 발생한 곳 또는 파일이 잘리는 지점까지 정보를 추출하는 경우에만 적용됩니다.
불행히도 손상된 지역 후 파일 / 스트림의 일부를 복구하는 방법을 설명하는 사람은 없습니다. 그 레시피를 가진 사람이 있습니까?
답변
이것을 사용하십시오 : https://github.com/arenn/gzrt
gzrecover foo.tar.gz
cpio -F foo.tar.recovered -i -v