Geralmente você não pode realmente atualizar o disco inteiro sem ler / escrever tudo. Não é provável que fsck
ofereça o que você precisa - ele funciona com o sistema de arquivos e não com o dispositivo subjacente, portanto ele apenas verifica os metadados do sistema de arquivos (inodes e outras estruturas do sistema de arquivos).
badblocks -n
pode ser uma opção para dd if=X of=X
. Em qualquer caso, você provavelmente desejará usar blocos grandes para acelerar (para dd
algo como bs=16M
, para badblocks
isso seria -b 16777216
, ou -b $((1<<24))
em shells razoáveis). Você provavelmente também vai querer usar conv=fsync
com dd
.
Quanto à segurança de dd
com o mesmo dispositivo de entrada e saída - ele lê o bloco da entrada e grava na saída, por isso deve ser seguro (eu re-encriptado uma partição criptografada como essa em várias ocasiões, criando dispositivos de loop com o mesmo dispositivo subjacente e senhas diferentes e, em seguida, dd
'ing de um para o outro) - pelo menos para alguns tipos de mídia física: por exemplo, com drives shingled definitivamente não é óbvio para mim, que é 100% à prova de falhas.