<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kb.rvmgroup.it/index.php?action=history&amp;feed=atom&amp;title=Recuperare_dati_da_supporti_danneggiati</id>
	<title>Recuperare dati da supporti danneggiati - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://kb.rvmgroup.it/index.php?action=history&amp;feed=atom&amp;title=Recuperare_dati_da_supporti_danneggiati"/>
	<link rel="alternate" type="text/html" href="https://kb.rvmgroup.it/index.php?title=Recuperare_dati_da_supporti_danneggiati&amp;action=history"/>
	<updated>2026-05-05T15:27:46Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://kb.rvmgroup.it/index.php?title=Recuperare_dati_da_supporti_danneggiati&amp;diff=5028&amp;oldid=prev</id>
		<title>Gabriele.vivinetto at 14:01, 11 January 2007</title>
		<link rel="alternate" type="text/html" href="https://kb.rvmgroup.it/index.php?title=Recuperare_dati_da_supporti_danneggiati&amp;diff=5028&amp;oldid=prev"/>
		<updated>2007-01-11T14:01:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Vedi http://osrevolution.wordpress.com/2007/01/07/recuperare-dati-da-supporti-danneggiati/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
==[http://osrevolution.wordpress.com/2007/01/07/recuperare-dati-da-supporti-danneggiati/ Recuperare dati da supporti danneggiati]==&lt;br /&gt;
&lt;br /&gt;
Spesso mi capita di sentirmi chiedere di recuperare importantissimi dati (fare i backup no, eh?) da dischi usb maltrattati, portatili caduti e situazioni simili. A volte i supporti sono talmente mal conciati da rendere impossibile qualunque tentativo di recupero a livello hobbystico, ma spesso si riesce a salvare buona parte dei dati.&lt;br /&gt;
&lt;br /&gt;
In questo articolo voglio presentarvi una carrellata degli strumenti che uso in questi casi.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039; dd_rescue&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
È fondamentalmente una versione della classica utility unix dd con la caratteristica di possedere una maggiore tolleranza agli errori in lettura. Lo scopo è quello di estrarre i dati dal supporto per trasferire il leggibile su un file, creando una sorta di immagine del supporto, o su un altro device a blocchi, creando in effetti un clone. Gli eventuali blocchi danneggiati vengono sostituiti nella destinazione da blocchi completamente azzerati.&amp;lt;br /&amp;gt; Devo segnalare che esistono due differenti versioni di questo software: [http://www.garloff.de/kurt/linux/ddrescue/ uno] sviluppato da Kurt Garloff e [http://www.gnu.org/software/ddrescue/ddrescue.html laltro] da Antonio Diaz Diaz. I pacchetti debian sono rispettivamente ddrescue e gddrescue. I confronti che ho potuto effettuare personalmente confermano le opinioni di altri utenti che ho letto in rete: gddrescue è decisamente più veloce di ddrescue (nellultima prova è stato allincirca il 50% più veloce) e sembra dare risultati migliori in termini di numero di settori recuperati.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;fsck&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
fsck non ha certo bisogno di una mia presentazione: è lo strumento principale di unix per la manutenzione dei filesystem. È in realtà composto da una suite di programmi, ciascuno dei quali lavora su uno specifico filesystem: per esempio fsck.ext3 lavora su filesystem ext3, fsck.vfat su FAT16/FAT32, ecc Il suo compito è quello verificare la consistenza della struttura del filesystem e risolvere gli eventuali problemi. Può lavorare sia su device a blocchi che su file immagine. È da notare che tuttora non ne esiste una versione per NTFS.&lt;br /&gt;
&lt;br /&gt;
Essendo i filesystem molto differenti tra loro anche le opzioni utilizzabili col programma variano notevolmente e per tanto vi rimando alla pagina di manuale per ciascuno di essi.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;testdisk&amp;#039;&amp;#039;&amp;#039; ([http://www.cgsecurity.org/wiki/TestDisk sito])&lt;br /&gt;
&lt;br /&gt;
Questo potente tool interattivo a tutto schermo permette di ricostruire in modo semi-automatico una tavola di partizione danneggiata. Analizza i settori iniziali di ciascun cilindro del disco alla ricerca di quelli che potrebbero essere linizio di una partizione rilevando in automatico il tipo di filesystem e le dimensioni. Supporta moltissimi filesystem e su alcuni è anche in grado di correggere problemi di consistenza.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;photorec&amp;#039;&amp;#039;&amp;#039; ([http://www.cgsecurity.org/wiki/PhotoRec sito])&lt;br /&gt;
&lt;br /&gt;
Ha una interfaccia interattiva simile a testdisk. Consente di recuperare file senza fare alcun affidamento sul filesystem. È utile quando il filesystem è pesantemente danneggiato e/o non è supportato dagli altri strumenti. Sarebbe da impiegare come ultima alternativa dato che è in grado di recuperare solo alcuni tipi di file e non ne mantiene i nomi originali.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;smartctl&amp;#039;&amp;#039;&amp;#039; ([http://smartmontools.sourceforge.net/ sito])&lt;br /&gt;
&lt;br /&gt;
Non è impiegabile direttamente per il recupero dei dati ma è utile per valutare le condizioni fisiche di un disco. È lo strumento che consente di interagire con il sistema [http://it.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology SMART] ormai integrato in tutti gli hard disk recenti avviando i test interni ed interrogando i registri che tengono traccia di errori, tempo di vita del disco, temperatura, statistiche sulle prestazioni ecc. È da notare che spesso gli adattatori USB-IDE non supportano SMART e quindi è consigliabile luso di un normale controller IDE.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;La procedura&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
La prima operazione da compiere consiste nel preparare lambiente di lavoro: individuo un pc con un hardware affidabile che abbia un lettore cd da cui avviare, un disco fisso di appoggio di dimensioni superiori a quelle del supporto da recuperare, almeno un altro connettore IDE libero (cerco sempre di evitare gli adattatori USB-IDE) e possibilmente una scheda di rete per scaricare eventuali strumenti necessari.&lt;br /&gt;
&lt;br /&gt;
Avvio una qualunque distro live (io mi trovo bene con [http://www.finnix.org/ finnix], anche se alcuni degli strumenti che ho citato non sono inclusi ma si possono installare al volo con apt) e preparo il supporto di appoggio formattandolo in ext3 per non avere problemi con le dimensioni dei file immagine che potremmo aver bisogno di creare.&lt;br /&gt;
&lt;br /&gt;
Nel caso di un hard disk o un pendrive usb controllo il partizionamento del supporto per individuare la partizione che contiene i dati che mi interessa recuperare: ad esempio, se il device è /dev/hdd:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;fdisk -l /dev/hdd&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Se questa operazione fallisce o se il risultato non è ragionevole significa che il MBR è corrotto e quindi non posso tentare il mount in sola lettura, altrimenti provo a montare in read-only la partizione in esame: supponendo che sia la prima:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;mkdir -p /mnt/speriamo&amp;lt;br /&amp;gt; mount -o ro /dev/hdd1 /mnt/speriamo&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Se il mount va a buon fine non serve andare oltre: basta copiare tutti i file che ci servono sul disco di appoggio, altrimenti bisogna procedere con lestrazione di una immagine del supporto su cui poter lavorare anche in scrittura: supponendo che il disco di appoggio sia montato su /mnt/spazio, se fdisk -l non ha creato problemi posso creare una immagine della sola partizione interessata:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ddrescue /dev/hdd1 /mnt/spazio/immagine.img&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
se invece il MBR è corrotto o non leggibile devo clonare lintero disco:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ddrescue /dev/hdd /mnt/spazio/immagine.img&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se ho estratto lintero disco, devo ripristinare una tavola di partizione corretta, altrimenti posso saltare questo passo:&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;testdisk /mnt/spazio/immagine.img&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Faccio fare una scansione dellimmagine alla ricerca dei possibili punti di inizio delle partizioni e, una volta verificato che i valori individuati sono ragionevoli, salvo il nuovo MBR. Può essere necessario impostare a mano la geometria del disco quando si lavora con testdisk: sui dischi meno recenti è riportata sulletichetta, mentre su quelli più attuali è riportata solo la dimensione in blocchi: in questo caso il firmware del disco usa una geometria fittizia per mappare lindirizzo LBA dei blocchi: i settori per traccia sono sempre 63 e le testine 255: il numero di cilindri si calcola dividendo la dimensione in blocchi per 16065.&amp;lt;br /&amp;gt; Ricostruita la tavola di partizione posso estrarre limmagine della partizione che mi interessa: per fare questo devo sapere dove inizia e dove finisce:&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;sfdisk -d /mnt/spazio/immagine.img&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Annoto start e size della mia partizione: supponendo che i valori siano rispettivamente 63 e 156296322 posso estrarre limmagine sovrascrivendo quella completa ottenuta in precedenza:&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;rm -f /mnt/spazio/immagine.img&amp;lt;br /&amp;gt; ddrescue -i 63b -s 156296322b /dev/hdd /mnt/spazio/immagine.img&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A questo punto mi trovo con il file /mnt/spazio/immagine.img contenete limmagine della partizione che mi serve recuperare. Posso tentare un fsck: supponendo che il filesystem sia FAT:&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;fsck -t vfat /mnt/spazio/immagine.img&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Se fsck ha successo è possibile montare in loopback limmagine:&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;mkdir -p /mnt/speriamo&amp;lt;br /&amp;gt; mount -o loop,ro /mnt/spazio/immagine.img /mnt/speriamo&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Se limmagine può essere montata, il lavoro è terminato, altrimenti lultima possibilità consiste nelluso di photorec:&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;mkdir -p /mnt/spazio/files&amp;lt;br /&amp;gt; cd /mnt/spazio/files ; photorec /mnt/spazio/immagine.img&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; Una volta trasferiti i dati su un supporto sicuro, se il problema era causato da blocchi danneggiati si può tentare di rimettere in condizioni utilizzabili il disco forzando la rimappatura dei blocchi guasti usando i tool specifici del produttore del disco per eseguire una formattazione a basso livello. In alternativa ai tool specifici possiamo tentare con un semplice:&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;dd if=/dev/zero of=/dev/hdd bs=512&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; quando il disco in una operazione di scrittura individua un blocco danneggiato tenta in automatico di rimapparlo su un altro blocco. Terminata la formattazione o il dd possiamo (preferibilmente dopo un riavvio) verificare se il firmware ha effettivamente rimappato dei blocchi:&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;smartctl -A /dev/hdd&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; e controllare il valore del parametro Reallocated_Sector_Ct che rappresenta il numero di settori che sono stati giudicati non utilizzabili e quindi rimappati. In ogni caso sarebbe preferibile non riutilizzare un disco con settori danneggiati per mantenere dati importanti.&lt;br /&gt;
&lt;br /&gt;
Anche se spesso questi strumenti danno buoni risultati è sempre importante adottare una politica di backup commisurata allimportanza dei dati che dobbiamo gestire: un buon backup ci può far risparmiare molte ore di lavoro e molti grattacapi.&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Gabriele.vivinetto</name></author>
	</entry>
</feed>