Marcio Cunha

Como reviver discos rígidos com setores defeituosos no Linux

Aprenda a usar comandos de baixo nível no Linux para realocar blocos danificados e resgatar arquivos antes da falha mecânica total do seu HD.

Marcio Cunha•5 min
Também disponível em:EnglishEspañol
Resumo
  • Setores defeituosos surgem devido ao desgaste físico natural do disco ou a pequenas instabilidades magnéticas na superfície dos pratos.
  • O utilitário SMART monitora a saúde interna do disco rígido e alerta sobre taxas crescentes de reallocação de blocos.
  • Comandos de leitura forçada permitem extrair dados importantes de áreas críticas antes que o sistema perca o acesso definitivo.
  • A realocação forçada substitui blocos instáveis por setores de reserva reservados pelo próprio firmware do disco rígido.
  • Manter cópias de segurança atualizadas continua sendo a única proteção real contra a perda definitiva de dados em armazenamento mecânico.

O que são setores defeituosos e por que eles aparecem nos discos

Os discos rígidos tradicionais, conhecidos como HDs, funcionam gravando dados em pratos magnéticos giratórios através de uma cabeça de leitura e escrita microscópica. Com o passar dos anos, o desgaste mecânico natural, vibrações excessivas e o envelhecimento do material magnético começam a cobrar o seu preço. Quando uma pequena região do disco perde a capacidade de reter a carga magnética de forma estável, surge o que chamamos de setor defeituoso ou bad block.

Na prática, isso significa que o sistema operacional tenta ler um arquivo importante, mas esbarra em um trecho mudo onde a informação se corrompeu ou sumiu. Na maioria das vezes, o sistema de arquivos percebe o problema, acusa um erro de leitura e trava temporariamente. Antes de descartar o hardware ou tentar uma troca drástica, é possível utilizar ferramentas nativas do Linux para diagnosticar a gravidade do dano, isolar as áreas problemáticas e extrair os arquivos vitais, assim como fazemos ao organizar rotinas de cópias de segurança incrementais para mitigar perdas futuras.

Como diagnosticar o estado real do disco com o SMART

Antes de executar qualquer comando destrutivo ou tentativa de reparo, precisamos perguntar ao próprio disco o que ele está sentindo. Os discos modernos possuem um sistema interno de monitoramento chamado SMART, sigla em inglês para tecnologia de autorrelato, análise e relatório. Esse sistema registra estatísticas vitais sobre o funcionamento mecânico, como horas de uso, temperatura e o número exato de setores que já falharam.

Para verificar esses dados no Linux, utilizamos o pacote smartmontools através do terminal. O comando básico para inspecionar um disco específico, como /dev/sda, é executado com privilégios administrativos. Na prática, olhamos principalmente para atributos como Reallocated_Sector_Count, que indica quantos blocos ruins já foram substituídos por setores reservas, e Current_Pending_Sector_Count, que mostra setores instáveis aguardando uma decisão de realocação.

sudo smartctl -a /dev/sda

Como extrair dados de áreas danificadas usando o ddrescue

Quando um disco rígido começa a apresentar falhas graves, tentar copiar arquivos comuns usando o gerenciador de arquivos gráfico é o caminho mais curto para destruir o que restou. O movimento do cabeçote tentando reler os blocos danificados gera calor e desgaste acelerado, travando o sistema operacional. Para evitar esse estresse desnecessário, a ferramenta ideal no ecossistema Linux é o ddrescue, projetado especificamente para recuperar dados de mídias com defeitos físicos.

Diferente do comando tradicional dd, que desiste ao encontrar o primeiro erro de leitura, o ddrescue utiliza um algoritmo inteligente em duas fases. Primeiro, ele copia rapidamente todas as áreas saudáveis do disco, deixando as regiões problemáticas para o final. Na segunda fase, ele retorna aos trechos corrompidos e aplica múltiplas tentativas reversas para extrair o máximo de bits legíveis antes que o motor pare de girar.

sudo ddrescue -d -r3 /dev/sda /mnt/backup/imagem_disco.img /mnt/backup/mapa_erros.log

Como forçar a realocação de blocos ruins com o utilitário badblocks

Após resgatar os dados importantes e salvar o que era crítico, podemos tentar recuperar a usabilidade temporária do disco forçando o firmware a realocar os blocos defeituosos. O Linux possui a ferramenta badblocks, capaz de testar a superfície magnética de forma destrutiva ou não destrutiva. O modo não destrutivo lê e escreve os dados de volta, mas para forçar uma limpeza real e acionar o remapamento de fábrica, o modo de gravação destrutiva é o mais eficiente.

Na prática, o comando executa padrões de teste em toda a extensão do bloco. Quando o controlador do disco percebe que uma escrita falhou em um setor específico, ele automaticamente marca aquele endereço como inutilizável e o substitui por um setor de reserva mantido em uma área isolada do disco. Vale lembrar que essa operação exige cautela extrema, pois qualquer erro na identificação da unidade pode apagar o sistema operacional principal.

sudo badblocks -v -s -w /dev/sda

Como validar a integridade do sistema de arquivos após o reparo

Depois de realizar o mapeamento e a realocação dos setores defeituosos, o sistema de arquivos no topo da partição pode ficar inconsistente. Metadados e tabelas de alocação que apontavam para os blocos corrompidos precisam ser corrigidos para que o sistema operacional volte a operar de forma estável. Para essa tarefa, utilizamos o comando fsck, que verifica e repara estruturas corrompidas em partições do tipo ext4, xfs e outros formatos suportados pelo kernel.

É fundamental executar o fsck com a partição devidamente desmontada, pois tentar reparar um sistema de arquivos em uso ativo resulta em corrupção catastrófica de dados. Durante o processo, o utilitário varre os blocos, reconecta arquivos órfãos à pasta perdida e ajusta os ponteiros internos, preparando o terreno para que o hardware recupere sua funcionalidade operacional básica.

sudo umount /dev/sda1 && sudo fsck -y -f /dev/sda1

Considerações finais sobre a vida útil de discos recuperados

Reviver um disco rígido através da realocação de setores defeituosos e do resgate com comandos de baixo nível é uma excelente estratégia de emergência para salvar arquivos cruciais ou manter sistemas legados funcionando temporariamente. Contudo, é preciso encarar esse procedimento como uma medida paliativa e nunca como uma solução definitiva. Um disco que começou a desenvolver bad blocks mecânicos indica que o desgaste físico atingiu um ponto sem retorno e novas falhas em cascata tendem a acontecer em breve. A melhor prática de engenharia continua sendo a substituição preventiva da unidade danificada e a manutenção rigorosa de rotinas automatizadas de cópia de segurança.