Généralement, vous ne pouvez pas vraiment rafraîchir tout le disque sans tout lire/écrire. fsck
est peu susceptible de fournir ce dont vous avez besoin - cela fonctionne avec le système de fichiers pas le périphérique sous-jacent, il analyse donc principalement les métadonnées du système de fichiers (inodes et autres structures de système de fichiers).
badblocks -n
peut être une option pour dd if=X of=X
. Dans tous les cas, vous voudrez probablement utiliser de gros blocs pour accélérer les choses (pour dd
quelque chose comme bs=16M
, pour badblocks
cela donnerait -b 16777216
, ou -b $((1<<24))
dans des coquilles raisonnables). Vous voudrez probablement aussi utiliser conv=fsync
avec dd
.
Quant à la sécurité de dd
avec le même périphérique d'entrée et de sortie - il lit le bloc de l'entrée et l'écrit dans la sortie, il devrait donc être sûr (j'ai rechiffré une partition chiffrée comme celle-ci à plusieurs reprises, en créant des périphériques en boucle avec le même périphérique sous-jacent et différents mots de passe puis dd
'ing de l'un à l'autre) - au moins pour certains types de supports physiques :par exemple avec des lecteurs en bardeaux, il n'est certainement pas évident pour moi qu'il soit 100 % infaillible.