Generalmente non puoi davvero aggiornare l'intero disco senza leggerlo/scriverlo tutto. fsck
è improbabile che fornisca ciò di cui hai bisogno:funziona con il file system non il dispositivo sottostante, quindi esegue principalmente la scansione dei metadati del file system (inode e altre strutture del file system).
badblocks -n
potrebbe essere un'opzione per dd if=X of=X
. In ogni caso probabilmente vorrai usare blocchi grandi per velocizzare le cose (per dd
qualcosa come bs=16M
, per badblocks
questo leggerebbe -b 16777216
o -b $((1<<24))
in gusci ragionevoli). Probabilmente vorrai usare anche conv=fsync
con dd
.
Per quanto riguarda la sicurezza di dd
con lo stesso dispositivo di input e output:legge il blocco dall'input e lo scrive nell'output, quindi dovrebbe essere sicuro (ho crittografato nuovamente una partizione crittografata come questa in diverse occasioni, creando dispositivi loop con lo stesso dispositivo sottostante e diversi password e poi dd
'dall'uno all'altro) - almeno per alcuni tipi di supporti fisici:ad esempio con le unità a scandole non è assolutamente ovvio per me che sia a prova di errore al 100%.