Primeiro, para o software usar: você pode tentar usar ddrescue
em vez de dd
.
ddrescue
tem um switch para fazer apenas um número limitado de novas tentativas. Ele também pode usar um arquivo de log, então ele registra quais blocos foram ruins. Se mais tarde você sentir vontade de fazer mais tentativas, poderá usar o arquivo de log mesmo para executar ddrescue
novamente com opções diferentes (como mais tentativas) e só tentará novamente blocos.
Exemplo de uso:
# ddrescue -n /dev/sda /dev/sdb rescue.log
# ddrescue -r1 /dev/sda /dev/sdb rescue.log
Do ddrescue
info-page:
-n, --no-scrape
Skip the scraping phase. Avoids spending a lot of time
trying to rescue the most difficult parts of the file.
-r, --retry-passes=<n>
Exit after given number of retry passes. Defaults to 0.
-1 means infinity. Every bad sector is tried only once
in each pass. To retry bad sectors detected on a previous
run, you must specify a non-zero number of retry passes.
Aqui estão algumas fontes adicionais para usar ddrescue
:
-
info ddrescue
- link
Editar
Caso o disco rígido esteja demorando muito, você pode tentar ativar um recurso chamado TLER ( T ime L imitado E rror R ecovery) ou CCTL ( C ommand C omplemento T ime L imit). Nem todos os HDDs possuem, mas você pode usá-lo para limitar o tempo no próprio controlador do HD. Essa abordagem pode ser combinada com o uso de ddrecue
, é claro.
O Linux tem uma ferramenta chamada smartctl
(no pacote smartmontools
).
Para verificar a configuração atual ("desativado" significa um tempo ilimitado, que você não deseja):
# smartctl -l scterc /dev/sda
Para configurá-lo para um valor fixo (5,0 segundos neste exemplo. Configurar para 0 desativa TLER):
# smartctl -l scterc,50,50 /dev/sda
Origem do TLER: link