È 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 taskset
comando per assegnare i processi a un core specifico. Tuttavia, questo è al di fuori dell'ambito della mia risposta.
Vi auguro buona fortuna.