Recupera i file dall'archivio corrotto


1

Ho un file tar di 40 GB, ma quando lo apro con il gestore dell'archivio su Ubuntu ottengo solo 512 MB. La maggior parte dei miei file sono in disordine. Anche quando lo faccio:

tar -tf myfile.tar.gz

Non visualizzo l'elenco di tutti i miei file. Quando ho creato il file ho usato il comando:

tar -zcvf myfile.tar.gz myhomefolder

E poi ho fermato il comando perché non voglio comprimere (ci vuole troppo tempo) ed eseguire:

tar cvf myfile.tar.gz myhomefolder

Su Windows quando uso 7-Zip ottengo questo errore:

There are data after the end of file

Il problema è che c'è una brutta fine nel file. Come fare per rimuovere tale fine. Quali sono i software che possono aprire il file in modalità binaria o qualcosa del genere.

Come posso ottenere i miei file?

Risposte:


2

È possibile provare l'utilità gzrecover e quindi estrarre l'archivio recuperato con cpio .

In passato ha aiutato a recuperare archivi corrotti, ma il tuo chilometraggio può variare. Sto riscontrando un problema per cui non è possibile recuperare un archivio per me, quindi un avvertimento equo.


EDIT: Con una mod che mi minaccia violentemente con un coltello, aggiungerò alcuni dettagli su come ho recuperato gli archivi in ​​anticipo. (Sto scherzando. Non farmi del male, @Scott!)

Puoi installare entrambi i pacchetti usando

sudo apt-get install cpio gzrt

Dopo aver verificato che entrambi i pacchetti siano installati, mettiamoci al lavoro.

Per prima cosa, metti il ​​tuo archivio dove non ti dispiace i dati estratti. Da lì, puoi correre

gzrecover broken-archive.tar.gz

gzrecover richiederà probabilmente del tempo, a seconda della dimensione dell'archivio. Tuttavia, con un po 'di fortuna, vedrai "broken-archive.tar.recovered" nella stessa directory dopo che l'operazione è stata completata.

L'archivio recuperato ha probabilmente subito anche qualche tipo di danno; è qui che cpio è utile. Dovrebbe già essere installato sul tuo sistema.

Per estrarre l'archivio recuperato, utilizzare

cpio -F broken-archive.tar.recovered -i -v

Tieni presente che durante questo periodo cpio emetterà una grande quantità di informazioni. Ti consiglio di farlo su un tty separato invece che su un terminale nella tua sessione X. Per fare ciò, puoi semplicemente premere CTRL + ALT + F1 e lo schermo passerà a un terminale. Per tornare alla tua sessione X, premi CTRL + ALT + F8 (può variare, ma di solito è F7-9).

Anche il processo di estrazione dell'archivio recuperato sarà piuttosto intenso. Poiché cpio non è ottimizzato per l'uso con più core, si attaccherà a un core. Qualunque sia il nucleo su cui si attacca, probabilmente bloccherà il nucleo al 100% di utilizzo. Se hai una macchina dual-core, potresti non dover usare il tuo computer per un po '.

Tieni presente che questo processo potrebbe richiedere diversi giorni, soprattutto considerando le dimensioni dell'archivio. O trova un'altra macchina su cui scaricare questo lavoro (CPU più lente faranno impiegare più tempo), pianifica di non usare il computer per un po 'o semplicemente di prepararti a soffocare il sistema durante il lavoro. Inoltre, se lo esegui all'interno di un terminale sulla tua sessione X, probabilmente dovrai aggiungere un secondo core al 100%. Se sei un utente avanzato, puoi utilizzare il tasksetcomando per assegnare i processi a un core specifico. Tuttavia, questo è al di fuori dell'ambito della mia risposta.

Vi auguro buona fortuna.


Siamo alla ricerca di risposte sostanziali che forniscano maggiori dettagli. In generale, una risposta dovrebbe spiegare come risolvere il problema piuttosto che menzionare solo gli strumenti; spiega perché li stai raccomandando come soluzione e vedi Come posso raccomandare il software nelle mie risposte?
Scott

@Scott La pagina gzrecover contiene una documentazione più che sufficiente su come usare questi strumenti. Non mi sento come se avessi bisogno di essere un proxy per le informazioni. In effetti, è letteralmente sul suo sito su come l'autore del software ha recuperato archivi gzip corrotti. Li ho raccomandati in base all'esperienza personale, che è stata anche dichiarata nella mia risposta. Ho esaminato la domanda e non riesco a trovare alcun contenuto che la mia risposta non debba assumere. Il software è abbastanza semplice per questo scopo.
Mitico Juggernaut il

Lo scopo di Super User è quello di costruire una base di conoscenza piuttosto che una raccolta di collegamenti a risposte altrove. Google invia spesso persone qui; vogliamo che trovino informazioni utili sul nostro sito. Inoltre, i collegamenti esterni possono rompersi, nel qual caso la tua risposta avrebbe poco valore.
Scott

@Scott Va bene, va bene. Ho cambiato il contenuto della risposta .. ma poi ho capito che la domanda ha un anno. Vabbè, forse quella teoria di Google aiuterà qualche povera anima.
Mitico Juggernaut il

0

Il primo tar cvf myfile.tar.gz myhomefolderdovrebbe essere tar cvf myfile.tar myhomefolder.

Secondo, potresti provare tar xvf myfile.tar.gz.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.