Sfondo
Dopo un recente spazzolamento con un guasto del disco rigido, volevo mettere insieme un HOWTO su come eseguire il mirroring di un disco rigido, ignorando gli errori sotto Linux. È fondamentale assicurarsi che questi comandi vengano immessi correttamente e che vengano utilizzati i nomi di unità e dispositivo corretti. dd non offre richieste e conferme:usa con cautela!
Il ripristino dei dati del disco rigido in caso di settori danneggiati di solito non è troppo complicato.
Mirroring
In primo luogo, dobbiamo determinare la dimensione ottimale di I/O per massimizzare la nostra velocità di lettura e scrittura:
fdisk -l /dev/sda|grep "dimensione I/O"
Nel mio caso, il risultato mostra 512 byte. Quindi, supponendo che il nostro disco guasto sia /dev/sdb e il nostro nuovo disco sia /dev/sdc, avvieremo il mirror come segue:
dd if=/dev/sdb of=/dev/sdc conv=sync,noerror bs=512
Il flag noerror viene passato per indicare a dd di non uscire in caso di errori di lettura
Verifica avanzamento
dd stamperà un controllo di stato alla ricezione del segnale USR1. In un terminale separato, emetti:
kill -USR1 $(pidof dd)
Ripresa
Spesso, dopo una serie di settori danneggiati, la velocità di trasferimento di dd diminuisce e rimane limitata. Per mitigare questo, prima interrompi il trasferimento con Ctrl-C permettendo a dd di stampare il suo avanzamento corrente:
6002656+0 records in 6002656+0 records out 3073359872 bytes (3.1 GB) copied
Ora assicurati che tutti i dati siano stati scaricati:
sincronizza
Una volta terminato, rimuovi e ricollega l'unità, prima di continuare da dove dd si era interrotto per l'ultima volta:
dd if=/dev/sdb of=/dev/sdc bs=512 conv=sync,noerror seek=6002656 skip=6002656
Una volta completato, ti consigliamo di scansionare i file system della nuova unità per rilevare e riparare eventuali errori e danneggiamenti del file system.
Link
IO Digital Sec