====== Recuperare il contenuto di un disco fisso ======
Un disco può dare errori di lettura hardware non recuperabili, ad esempio nel ''**/var/log/kern.log**'' si legge:
Oct 30 11:22:52 ipbox kernel: hdc: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Oct 30 11:22:52 ipbox kernel: hdc: dma_intr: error=0x40 { UncorrectableError }, LBAsect=11012416, sector=11012416
Oct 30 11:22:52 ipbox kernel: end_request: I/O error, dev hdc, sector 11012416
Oct 30 11:22:52 ipbox kernel: Buffer I/O error on device hdc, logical block 1376552
Si può tentare di recuperare il recuperabile con:
dd if=/dev/hdc1 of=/home/ipbox/hdc1.dmp conv=noerror,sync
fsck.ext3 -f /home/ipbox/hdc1.dmp
mount -o loop,ro -t ext3 /home/ipbox/hdc1.dmp /mnt
Il primo comando legge tutta la partizione riversandola in un file, non si ferma sugli errori e mette degli zero al posto dei settori illeggibili. Il secondo comando tenta di recuperare il filesystem contenuto nell'immagine salvata, il terzo comando monta il file come filesystem. L'esempio ovviamente è per un filesystem **ext3**.
===== ddrescue =====
L'utility **[[http://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html|ddrescue]]** (omonimo pacchetto Debian) può sostituire **dd** nei casi più difficili. Il programma crea un file di log dell'operazione di lettura:
ddrescue --no-split /dev/sdb /tmp/sdb.img /tmp/sdb.log
Per tentare di rileggere solo i settori che hanno dato errore:
ddrescue --direct --max-retries=3 /dev/sdb /tmp/sdb.img /tmp/sdb.log
Un ulteriore parametro per forzare la lettura è **''%%--retrim%%''**.