====== 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%%''**.