Bozuk bir “tar.gz” dosyası nasıl kurtarılır


11

Aniden eski bir tar.gzdosyayı kurtarmak için gerekli , ama en kısa sürede yürütmek:

tar -zxvf filename.tar.gz

Bunu anladım:

gzip: stdin: invalid compressed data--format violated  
tar: Child returned status 1  
tar: Error is not recoverable: exiting now

8
Bu gerçekten gzip bir tarball mı? fileÖnce komutu deneyin .
alex

1
Evet, bir kereden fazla .tar.gz, gerçekten bir .tarve bir kez bile bir PDF aldığım oldu .
vonbrand

Yanıtlar:


12

Denemeniz gereken şey şudur:

  1. Arşivlenmiş veri fileolarak gziptanınıp tanınmadığını görmek için arşivdeki komutu kullanın .
  2. strace gunzipDosya üzerinde çalıştırın . Bu, dosyadan okunan son baytları yazdırır, bu da dosyadaki bozulmanın oluştuğu noktayı belirlemenize yardımcı olabilir.
  3. Bir hata ayıklama yapı çalıştırın gunzipunder gdb. Bozuk bölümü düzeltmeye çalışın (bunu yapabilmek için ekstra şanslı olmalısınız) ve dosyanın sonuna devam edip edemeyeceğini görün.

Yolsuzluğun niteliğine bağlı olarak, verilerinizi kurtarabilir veya kurtaramayabilirsiniz.


gunzip filename.tar.gzbenim için çalıştı.
Ravi Dhoriya ツ


2

Tam iyileşme mümkün değildir. .Zip gibi biçimler daha iyi koruma ve kurtarma seçenekleri sağlar ancak tam değil.

.tar.gz tüm dosyaları bir araya toplar ve ardından bir sıkıştırma uygular. .zip her dosya için sıkıştırmayı yeniden başlatır. Bu nedenle .zip dosyasında sıkıştırılmış bloğa yapılan bir hasar yalnızca bu bloğun ait olduğu dosyayı etkiler. .Tar.gz dosyasında, sıkıştırma bir şekilde yeniden başlatılıncaya kadar hasar sonraki tüm dosyaları etkiler.


Ben düşünüyordum, iyi bir açıklama thx! Zip gibi daha iyi başka formatlar olup olmadığını merak ediyorum (ancak daha iyi sıkıştırma ile), ancak zip her zaman her yerde tanınır ve muhtemelen kurtarma ile ilgili en iyi seçenektir.
Kova Gücü

1

Koş zcat bad.tar.gz > some.tarve çıkar. Dosyanın bozuk kısmını geçmek zor olacaktır . Man sayfası formata işaretçiler verir, ancak Google'daki diğer seçenekleri ararım.

Bunun gzip ile sıkıştırıldığından emin misiniz? Şikayet ediyor olabilir, çünkü formatı anlamıyor ...


1

Tüm recpies dosyaları yalnızca dosyanın başlangıcından hatanın oluştuğu veya dosyanın kesildiği noktaya kadar ayıklamak için geçerlidir.

Ne yazık ki, hiç kimse tarifinde yolsuzluk alanından sonra dosya / akışın bir kısmının nasıl kurtarılacağı açıklanmamaktadır. Recipie yapan var mı?


-1

bunu kullanın: https://github.com/arenn/gzrt

gzrecover foo.tar.gz
cpio -F foo.tar.recovered -i -v

Komutunuz bir cpio: illegal option -- Fhata mesajı veriyor.
schily

1
cpio --help size şu seçeneği sunar: -F, --file = [[USER @] HOST:] DOSYA-ADI Standart girdi veya çıktı yerine bu DOSYA-ADINI kullanın. İsteğe bağlı USER ve HOST, uzak arşiv durumunda kullanıcı ve ana bilgisayar adlarını belirtir
W4U

Sen abpout konuşmuyor cpio, ama satıcıya özel seçenekleri içeren bir klon hakkında, örneğin bkz schillix.sourceforge.net/man/man1/cpio.1.html ypou ancak yerine orijinalin klonu hakkında konuşursak, size klon hangi belirtmeliyim kullanıyor.
schily

1
@schilly, ben debian'a cpiodahil olmaktan bahsediyorum . GNU cpio: bağlantı
W4U
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.