Prima di tutto, hai ragione sull'esecuzione di fsck sulla partizione:fsck funziona solo su filesystem, non su interi dischi. Puoi ottenere un elenco di tutte le partizioni sul disco con fdisk -l /dev/sdd
.
Il tuo tipo di filesystem è probabilmente ext3 (l'impostazione predefinita nella maggior parte delle distribuzioni Linux), il che significa che di solito passerà un fsck fintanto che il suo journal è pulito. fsck -f
forzerà, come detto sopra, un controllo completo.
Tuttavia, se hai letto errori sul disco, nessuna quantità di fsck aiuterà dd, poiché a dd non interessa davvero il contenuto del disco.
Per fare in modo che dd legga il disco e continui con gli errori di lettura, usa dd conv=noerror,sync
, che continuerà in caso di errori di lettura e aggiungerà byte null a qualsiasi blocco quando si verifica un errore di lettura.
Dopo aver terminato il backup, dovresti eseguire fsck -f
sul clone per rimetterlo in funzione.
Un altro consiglio:se esegui il backup della partizione su un file, puoi montarla in loopback con mount -o loop filename.ext3 /mountpoint
. Inoltre, supponiamo che tu stia clonando una partizione da 200G su un'unità da 500G, quindi puoi eseguire resize2fs /dev/sdx1
(dove sdx è la tua nuova unità, partizionata con una singola partizione da 500G), e il filesystem verrà ridimensionato a 500G.
Infine, se il disco è in una forma tale da darti errori di lettura, ti consiglio di evitare di spegnere e riaccendere il disco finché non hai finito di recuperare i dati. In alcune modalità di errore, a un certo punto il disco semplicemente non si avvia più o non viene riconosciuto dal sistema operativo e, a quel punto, l'estrazione dei dati dall'unità diventa piuttosto costosa.
Questo potrebbe non essere rilevante nel tuo caso, ma ho pensato di menzionarlo comunque:
Per un controllo del disco di livello inferiore, puoi usare badblocks
utilità. Passa attraverso un dispositivo e segnala eventuali blocchi danneggiati (ovviamente non può riparare nulla). È utile, almeno, per verificare se un disco è fisicamente danneggiato.
Inoltre, e2fsck
può usare badblocks
per evitare che i blocchi danneggiati vengano utilizzati da un filesystem. Da e2fsck
manuale:
-c This option causes e2fsck to use badblocks(8) program to do a read-
only scan of the device in order to find any bad blocks. If any bad
blocks are found, they are added to the bad block inode to prevent
them from being allocated to a file or directory. If this option is
specified twice, then the bad block scan will be done using a non-
destructive read-write test.
Vuoi l'opzione -f per fsck (forza il controllo anche se il file system sembra pulito.)
Dovresti eseguire fsck in modalità utente singolo. Un modo semplice per farlo senza un avvio da cdrom live è riavviare con l'opzione -F.
shutdown -rF now