갑자기 이전 파일을 복원해야 하는데 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
답변1
다음을 시도해야 합니다.
file
gzip
아카이브에서 명령을 사용하여 -ped 데이터 로 인식되는지 확인하십시오 .strace gunzip
파일을 실행합니다. 그러면 파일에서 읽은 마지막 바이트가 인쇄되므로 파일에서 손상이 발생한 지점을 식별하는 데 도움이 될 수 있습니다.gunzip
아래의 디버그 버전을 실행합니다gdb
. 손상된 섹션을 수정해 보고(이 작업을 수행하려면 매우 운이 좋아야 함) 파일 끝까지 계속되는지 확인하세요.
손상의 성격에 따라 데이터를 복구하지 못할 수도 있습니다.
답변2
완전한 회복은 불가능합니다. .zip과 같은 형식은 더 나은 보호 및 복구 옵션을 제공하지만 불완전합니다.
.tar.gz모든 파일을 모아 압축을 적용합니다.. 압축각 파일에 대한 압축을 다시 시작합니다. 따라서 .zip 파일에서 압축된 블록이 손상되면 해당 블록이 속한 파일에만 영향을 미칩니다. .tar.gz에서 손상은 어떤 방식으로든 압축이 다시 시작될 때까지 모든 후속 파일에 영향을 미칩니다.
답변3
복구 작동 방식에 대한 일부 정보는 다음에서 확인할 수 있습니다.손상된 .gz 파일 복구.
이 작업을 수행하는 데 도움이 되는 도구도 있습니다.gzip 복구 툴킷(일명 gzrecover).
답변4
이것을 사용하십시오 :https://github.com/arenn/gzrt
gzrecover foo.tar.gz
cpio -F foo.tar.recovered -i -v