La rete di sicurezza integrata di RAR: il record di recupero
L'unica vera differenza tra RAR e 7z quando le cose vanno male è che RAR può portare con sé il proprio kit di riparazione. Quando si crea un archivio, WinRAR può aggiungere un record di recupero: dati ridondanti extra il cui unico compito è ricostruire in seguito le parti danneggiate dell'archivio. Nel moderno formato RAR5 quella ridondanza usa la correzione degli errori Reed-Solomon, la stessa famiglia di matematica che protegge i CD e i codici QR.
La regola pratica è semplice: un record di recupero ripara i danni sul posto fino a circa le proprie dimensioni. Aggiungi un record di recupero del 3% e potrai sanare circa il 3% dei byte danneggiati dell'archivio. È ideale per il guasto più comune, quando lo storage inverte o sovrascrive una fascia di byte senza cambiare la lunghezza del file: i byte corrotti restano dove sono, il record fornisce i valori corretti e WinRAR ricostruisce l'archivio sul posto.
Un record di recupero di RAR sana i danni sul posto fino a circa le proprie dimensioni — corruzione che inverte o sovrascrive byte senza cambiare la lunghezza del file.
Il rovescio della medaglia è ciò che non può fare. Un record di recupero corregge i danni che restano in posizione. È inutile controinserimenti e cancellazioni: se dei byte vengono aggiunti o rimossi, ogni byte successivo a quel punto si sposta, l'allineamento del record si rompe e la correzione fallisce. Non può nemmeno aiutare se il danno supera la capacità del record, o se l'archivio è stato creato senza alcun record di recupero, che è l'impostazione predefinita. Moltissimi file RAR in circolazione non hanno alcun record a cui appoggiarsi.
7z non ha rete di sicurezza, e la sua disposizione peggiora le cose
7z comprime bene, spesso meglio di RAR, ma non porta con sé alcun record di recupero. Non esiste un'opzione di ridondanza integrata, quindi qualsiasi byte danneggiato è un byte senza copia di riserva. Questo da solo renderebbe 7z più fragile; la sua disposizione del file aggrava il problema.
Un archivio 7z scrive la sua directory, l'intestazione che elenca ogni file, la sua dimensione e dove vivono i suoi dati, allafine del file. È efficiente da scrivere, ma significa che la mappa di cui hai bisogno per dare un senso all'archivio è l'ultima cosa sul disco. La corruzione più comune nel mondo reale, un download interrotto o troncato, si prende prima la coda. Perdi la fine di un 7z e spesso perdi la directory, e senza la directory l'archivio può essere difficile persino da interpretare, anche se la maggior parte dei dati compressi resta lì intatta.
7z tiene la sua directory alla fine, così un download troncato tende a rimuovere proprio la mappa necessaria per leggere le voci sopravvissute.
È l'immagine speculare del record di recupero di RAR: non solo nessuna ridondanza, ma una struttura in cui la singola corruzione più comune colpisce la parte più importante. Non fa di 7z un formato scadente, la sua compressione è un vantaggio reale, ma significa che un 7z danneggiato ha meno opzioni integrate di un RAR danneggiato.
L'estrazione di salvataggio funziona su entrambi i formati
Quando la riparazione non è un'opzione, nessun record di recupero sul RAR, nessuna directory sul 7z, resta comunque il salvataggio. Entrambi i formati memorizzano i dati compressi di ogni file come un'unità identificabile, così uno strumento può scansionare l'archivio, trovare le voci i cui dati sono intatti e decomprimere quelle singolarmente, anche quando l'archivio nel suo complesso non si apre.
In pratica significa recupero parziale: «38 di 44 file estratti» invece di tutto o niente. Un archivio con una regione danneggiata cede i file memorizzati prima di essa e, spesso, i file successivi i cui dati iniziano puliti oltre il danno. È lo stesso principio che rende parzialmente recuperabili gli ZIP danneggiati, ed è di solito l'esito realistico per un 7z che ha perso la sua directory: le voci sono ancora lì, da estrarre una a una. Per il lato ZIP di tutto questo, vedi riparare uno ZIP corrotto e l'errore specifico di Windows «La cartella compressa non è valida».
Dove il salvataggio si esaurisce: archivi solidi e cifrati
Il salvataggio ha limiti netti, e due di essi decidono la maggior parte degli esiti.
Gli archivi solidi perdono tutto ciò che viene dopo il danno
Sia RAR sia 7z possono essere solidi: file compressi come un unico flusso continuo, così i file successivi riutilizzano i dati precedenti, il che migliora il rapporto di compressione. Il prezzo è che la decompressione è rigorosamente sequenziale, per raggiungere un file decodifichi tutto ciò che lo precede. Quando la corruzione interrompe il flusso, il decoder non può proseguire oltre il punto danneggiato, così ogni file successivo al danno diventa irraggiungibile anche se i suoi byte sono fisicamente sul disco. I file precedenti al danno escono comunque; tutto ciò che sta a valle rimane bloccato. Un archivio non solido evita questo perché ogni file si regge da solo.
Gli archivi cifrati hanno bisogno prima della password
Se l'archivio è cifrato, niente di tutto questo accade senza la password. Sia il salvataggio sia la riparazione con record di recupero operano su dati che riescono a leggere, e le voci cifrate sono illeggibili finché non vengono decifrate. Un record di recupero può comunque riparare i byte cifrati sul posto, e il salvataggio può comunque identificare le voci, ma ritrasformare qualsiasi di questi nei tuoi file richiede la password. Nessuno strumento di riparazione aggira la cifratura; è proprio questo lo scopo della cifratura.
Perché gli strumenti da browser fanno salvataggio, non riparazione con record di recupero
Ecco la verità onesta che la maggior parte delle pagine di «riparare RAR online» offusca. Applicare davvero un record di recupero Reed-Solomon, l'operazione che sana un RAR danneggiato sul posto, è una funzione diWinRAR a pagamento. Nessuna libreria open source la riproduce. Così, quando uno strumento da browser o un'utilità gratuita dice che «ripara» un RAR, ciò che sta davvero facendo, in quasi tutti i casi, è salvataggio: leggere l'archivio ed estrarre le voci i cui dati sopravvivono.
Questa distinzione conta per calibrare le aspettative. Se il tuo RAR ha un record di recupero e un danno sul posto entro la sua capacità, la funzione «Ripara archivio» di WinRAR è lo strumento che può ricostruirlo davvero, e vale la pena provarla per prima. Se non c'è alcun record di recupero, o il danno è troncamento, inserimento o cancellazione, allora la riparazione non è disponibile per nessuno e il salvataggio è la via realistica, che è esattamente ciò che uno strumento da browser può fare, senza che l'archivio lasci la tua macchina.
Quindi l'ordine pratico è: se è un RAR con un record di recupero, lascia che WinRAR tenti la sua riparazione. Altrimenti, che sia RAR o 7z, ricorri all'estrazione di salvataggio e recupera le voci intatte. Nessuno dei due approcci inventa dati che non sono nel file; entrambi si limitano a ottenere il massimo da ciò che c'è.
Domande frequenti
È meglio RAR o 7z per recuperare un archivio danneggiato?
Per sopravvivere ai danni, RAR è in vantaggio, perché gli archivi RAR5 possono portare con sé un record di recupero Reed-Solomon che ripara automaticamente una quantità limitata di danni sul posto. 7z non ha un equivalente: non memorizza alcuna ridondanza e scrive la sua directory proprio alla fine del file, così un download troncato spesso si porta via l'intero archivio. Per il puro rapporto di compressione 7z vince di frequente, ma è una domanda diversa dal sopravvivere alla corruzione.
Cos'è un record di recupero di RAR e quanto può riparare?
È una ridondanza opzionale che WinRAR può aggiungere quando crea un archivio, usando la correzione degli errori Reed-Solomon in RAR5. Ripara i danni sul posto, byte che sono stati invertiti o sovrascritti, fino a circa le dimensioni del record stesso: un record di recupero del 3% può sanare circa il 3% di danni. È potente contro la corruzione che non cambia la lunghezza del file, e inutile contro inserimenti o cancellazioni, che spostano ogni byte successivo fuori allineamento.
Si possono recuperare file da un archivio 7z corrotto?
A volte, tramite salvataggio più che riparazione. Se la corruzione è a metà strada, uno strumento spesso può estrarre le voci memorizzate prima della regione danneggiata, perché i dati compressi di ogni voce sono decodificabili per conto loro. Ciò che rompe un 7z è perdere la fine del file, dove vive la directory che elenca ogni voce, oppure avere un archivio solido i cui dati concatenati smettono di decodificarsi al primo byte danneggiato. In nessuno dei due casi c'è un record di recupero a cui appoggiarsi.
Perché un archivio solido perde tutto ciò che viene dopo il danno?
In un archivio solido, i file sono compressi come un unico flusso continuo, così i file successivi possono fare riferimento ai dati precedenti, il che migliora il rapporto di compressione. Il costo è che la decompressione è sequenziale: per raggiungere un file devi decodificare tutto ciò che lo precede. Quando la corruzione interrompe il flusso, il decoder non riesce a superarla, così ogni file successivo al punto del danno è irraggiungibile anche se i suoi byte sono fisicamente presenti. I file precedenti al danno di solito escono comunque.
Gli strumenti da browser riparano i record di recupero di RAR?
No, e su chiunque lo dichiari vale la pena dubitare. Applicare davvero un record di recupero Reed-Solomon per riparare un archivio è una funzione di WinRAR a pagamento che nessuna libreria open source riproduce. Ciò che fanno gli strumenti da browser e open source è il salvataggio: estrarre le voci intatte e decodificare ciò che sopravvive. È genuinamente utile, ma è un'operazione diversa dalla riparazione con record di recupero, ed è onesto chiamarla con il suo nome.
Letture correlate: è sicuro caricare i tuoi file su uno strumento di riparazione online?