2008-10-14 35 views
22

Tôi có một số lượng lớn tệp trong tệp lưu trữ .tar.gz. Kiểm tra các loại tập tin với lệnhTôi làm cách nào để khôi phục tệp từ tệp lưu trữ .tar.gz bị hỏng?

file SMS.tar.gz 

cung cấp cho các phản ứng

gzip compressed data - deflate method , max compression 

Khi tôi cố gắng trích xuất các kho lưu trữ với gunzip, sau một thời gian tôi nhận được thông báo

gunzip: SMS.tar.gz: unexpected end of file 

Có bất kỳ cách nào để phục hồi ngay cả một phần của kho lưu trữ?

Trả lời

15

Bạn có chắc chắn đó là tệp gzip không? Trước tiên, tôi sẽ chạy 'tệp SMS.tar.gz' để xác thực điều đó.

Sau đó, tôi sẽ đọc trang The gzip Recovery Toolkit.

+2

gzrecover không được cài đặt trên Mac OS. Tuy nhiên, phương pháp của Liudvikas Bukys hoạt động tốt. Đã tcpdump đường ống vào gzip, bị giết với Control-C, EOF bất ngờ cố gắng giải nén tập tin pipee. – George

+0

Bộ công cụ khôi phục gzip là rất lớn. Cảm ơn! – Nemo

29

Có thể khôi phục nhưng tùy thuộc vào nguyên nhân gây ra tham nhũng.

Nếu tệp chỉ bị cắt ngắn, việc nhận được một số kết quả một phần không quá khó; chỉ cần chạy

gunzip <SMS.tar.gz> SMS.tar.partial 

sẽ cung cấp một số đầu ra bất chấp lỗi ở cuối.

Nếu tệp nén có khối bị thiếu lớn, về cơ bản là vô vọng sau khối không hợp lệ.

Nếu tệp nén bị hỏng hệ thống theo các cách nhỏ (ví dụ chuyển tệp nhị phân ở chế độ ASCII, sẽ trả về dấu ngắt dòng và dòng mới trong tệp), có thể phục hồi nhưng yêu cầu khá nhiều chương trình tùy chỉnh thực sự chỉ đáng giá nếu bạn hoàn toàn không có sự truy đòi khác (không sao lưu) và dữ liệu đáng giá rất nhiều công sức. (Tôi đã thực hiện thành công.) Tôi đã đề cập đến trường hợp này trong một số previous question.

Các câu trả lời cho các tệp zip có phần khác nhau, vì vậy có nhiều hy vọng hơn (mặc dù hầu hết các công cụ thương mại là không có thật, chúng loại bỏ cảnh báo bằng cách vá CRC, chứ không phải bằng cách khôi phục dữ liệu tốt). Nhưng câu hỏi của bạn là về một tập tin .tar.gz, là một kho lưu trữ với một thành viên lớn.

+0

Có nhiều khả năng sẽ là một tệp không đọc được sau thủ tục này. May mắn thay, có một công cụ để sửa lỗi này và lấy một phần dữ liệu từ nó: http://riaschissl.bestsolution.at/2015/03/repair-corrupt-tar-archives-the-better-way/ – JohnEye

3

Đây là một trường hợp có thể xảy ra mà chúng tôi gặp phải. Chúng tôi đã có một file tar.gz rằng sẽ không giải nén, cố gắng để giải nén cho các lỗi:

gzip -d A.tar.gz 
gzip: A.tar.gz: invalid compressed data--format violated 

tôi đã tìm ra rằng file thể được ban đầu được tải lên qua kết nối ftp nhị phân không (chúng ta không biết chắc chắn).

Giải pháp là tương đối đơn giản bằng cách sử dụng unix dos2unix tiện ích

dos2unix A.tar.gz 
dos2unix: converting file A.tar.gz to UNIX format ... 
tar -xvf A.tar 
file1.txt 
file2.txt 
....etc. 

Nó làm việc! Đây là một khả năng mỏng, và có thể đáng để thử - nó có thể giúp ai đó ngoài kia.

+0

Điều này đã sửa nó cho tôi – Shannow

Các vấn đề liên quan