2008-10-14 25 views
22

.tar.gz arşivinde çok sayıda dosya var. komutuBozuk bir .tar.gz arşivindeki dosyaları nasıl kurtarabilirim?

file SMS.tar.gz 

ile dosya türünü kontrol etme yanıt alamıyorum iletisini bir gecikmeden sonra

gzip compressed data - deflate method , max compression 

Ben gunzip'in ile arşiv ayıklamak için deneyin

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

var mı verir arşivin bir kısmını bile kurtarmanın herhangi bir yolu var mı?

cevap

15

Bunun bir gzip dosyası olduğundan emin misiniz? Bunu doğrulamak için ilk önce 'dosya SMS.tar.gz' dosyasını çalıştırırdım. O zaman The gzip Recovery Toolkit Sayfasını okuyacağım.

+2

gzrecover, Mac OS'de yüklü değildir. Ancak Liudvikas Bukys'in yöntemi iyi çalıştı. Tcpdump kontrol-C ile öldürüldü, gzip içine pipetlenmiş, pipee dosyasını açmaya çalışırken beklenmedik EOF vardı. – George

+0

gzip Kurtarma Araç Takımı muazzamdır. Teşekkürler! – Nemo

29

Kurtarma mümkündür, ancak yolsuzluğun nedenine bağlıdır.

Dosya sadece kısaltılmışsa, biraz kısmi sonuç almak çok zor değildir; Sonunda hataya rağmen bir miktar çıkış verecek olan çalıştırın.

Sıkıştırılmış dosyada büyük eksik bloklar varsa, temelde kötü bloktan sonra ümitsizdir.

Sıkıştırılmış dosya sistematik olarak küçük yollarla bozulursa (örneğin ikili dosya, satır sonu ve satırsonu dosya boyunca parçalayan ASCII modunda aktarılır) kurtarılabilir, ancak biraz özel programlama gerektirir. Gerçekten sadece başka bir rüşvet (yedek yok) ve veri çok çabaya değmez ise sadece buna değer. (Başarılı bir şekilde yaptım.) Bu senaryoyu bir previous question numaralı belgeden bahsetmiştim.

Zip arşivlerinin birden çok sıkıştırılmış üyeye sahip olması nedeniyle .zip dosyalarının yanıtları bir şekilde farklıdır, bu nedenle daha fazla umut vardır (çoğu ticari araç oldukça kaba olsa da, iyi verileri kurtarmayla değil, CRC'leri ekleyerek uyarıları kaldırırlar). Ama senin sorunun, büyük bir üye olan bir arşiv olan .tar.gz dosyası hakkındaydı.

+0

Bu işlemden sonra büyük olasılıkla okunamayan bir dosya olacaktır. Neyse ki, bunu düzeltmek ve kısmi verileri almak için bir araç var: http://riaschissl.bestsolution.at/2015/03/repair-corrupt-tar-archives-the-better-way/ – JohnEye

3

Karşılaştığımız olası bir senaryo.

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

ben dosya aslında olmayan ikili ftp bağlantısı üzerinden yüklendi (biz bilmiyoruz olabileceğini anladım: Biz hata verdi halletmek için çalışıyor, sıkıştırmasını olmaz bir tar.gz'yi vardı kesinlikle).

çözüm unix dos2unix yarar

İşe yaradı
dos2unix A.tar.gz 
dos2unix: converting file A.tar.gz to UNIX format ... 
tar -xvf A.tar 
file1.txt 
file2.txt 
....etc. 

kullanarak nispeten basit oldu! Bu ince bir olasılık ve belki de bir denemeye değer - orada birileri yardımcı olabilir.

+0

Bu düzeltildi benim için – Shannow