Pesquisa este tema e o Google vai sugerir-te "smartctl fix bad sectors". Essa sugestão descreve algo que a ferramenta não faz, e a distância entre aquilo que as pessoas esperam e aquilo que o SMART fornece na realidade é onde os dados se perdem.
O smartctl comunica, não repara
A documentação não deixa margem para interpretação: o smartctl "não calcula nenhum dos valores dos Atributos, limiares ou tipos, limita-se a comunicá-los a partir dos dados SMART presentes no dispositivo."
É um utilitário de monitorização e de relato. Não existe nenhuma opção que repare um setor, porque reparar não é algo que uma ferramenta de diagnóstico faça. Quando um disco realoca um setor defeituoso, é o firmware que o faz, em silêncio, usando um sobresselente da sua reserva.
Isto tem consequências práticas. Qualquer utilitário que anuncie que "corrige" setores defeituosos está a fazer uma de duas coisas: a escrever por cima deles, o que destrói permanentemente aquilo que lá estava, ou a forçar a mão ao firmware para que realoque. Nenhuma das duas recupera o teu ficheiro. Se os dados ainda interessam, escrever no disco é a última coisa que queres.
Os cinco atributos que vale a pena ler
A Backblaze mantém um dos maiores conjuntos de dados publicados sobre falhas de discos, e monitoriza cinco atributos SMART para efeitos de previsão:
| ID | Atributo |
|---|---|
| 5 | Reallocated Sectors Count |
| 187 | Reported Uncorrectable Errors |
| 188 | Command Timeout |
| 197 | Current Pending Sector Count |
| 198 | Uncorrectable Sector Count |
A comparação que publicaram: 76,7% dos discos avariados tinham pelo menos um destes acima de zero, contra 4,2% dos discos operacionais. É essa separação que os torna dignos de verificação.
Os dois mais frequentemente mal lidos são o 197 e o 5, e vale a pena perceber a diferença entre eles.
197, Current Pending Sector Count, é a lista provisória. São setores que o disco teve dificuldade em ler e que colocou sob observação. Ainda não estão condenados. Se uma leitura posterior for bem sucedida, a contagem pode voltar a descer.
5, Reallocated Sectors Count, é o registo permanente. São setores que o disco deu por perdidos e trocou por sobresselentes. Este número só sobe.
Por isso, um 197 diferente de zero é o aviso mais precoce, e aquele sobre o qual vale a pena agir, porque diz que o disco está neste momento com dificuldade em ler alguma coisa. Essa alguma coisa bem pode ser o teu ficheiro.

Como ler o resultado sem o interpretar mal
Três comandos cobrem o terreno prático:
smartctl -H /dev/sda # overall health status
smartctl -A /dev/sda # the attribute table
smartctl -l selftest /dev/sda # results of past self-tests
No -H, o significado documentado de uma falha é específico e urgente: "ou que o dispositivo já falhou, ou que está a prever a sua própria falha nas próximas 24 horas." Vinte e quatro horas não é uma janela de manutenção. Significa copiar já o que interessa.
No -A, cada atributo traz um valor Raw (bruto), um valor Normalized (normalizado) e um Threshold (limiar). A regra documentada é que, se o valor normalizado for inferior ou igual ao limiar, o atributo falhou. As pessoas leem rotineiramente a coluna raw e entram em pânico, ou leem-na e descontraem, sem a confrontarem com o threshold. O valor raw sozinho não te diz se um atributo falhou.
Para executar os próprios testes:
smartctl -t short /dev/sda # usually under ten minutes
smartctl -t long /dev/sda # tens of minutes, more thorough
O teste curto verifica o desempenho elétrico e mecânico juntamente com o desempenho de leitura. O teste alargado é a versão mais longa e mais minuciosa. Em ambos os casos o comando lança o teste e devolve o controlo; lês o desfecho depois com -l selftest, que mostra o tipo e o estado final de cada um dos autotestes mais recentes.
O número que ninguém cita: 23,3%
Aqui está a parte que deveria mudar a forma como reages a um relatório limpo.
Segundo os próprios números da Backblaze, se 76,7% dos discos avariados mostraram um aviso, então 23,3% dos discos avariados não mostraram nenhum. Perto de uma falha em cada quatro chega sem que o SMART comunique fosse o que fosse de errado.
O SMART é um aviso precoce útil que fica calado cerca de um quarto das vezes. É prova de um problema quando fala, e não é prova de saúde quando se cala. Uma verificação aprovada significa que ainda nada de mau foi detetado. Não significa que o disco esteja bem, e não substitui ter uma segunda cópia.
O que torna suspeito qualquer valor raw
Antes de confiares em qualquer um dos números acima, há no próprio manual do smartctl uma ressalva que muda a forma como toda a tabela deve ser lida.
Desde a revisão 4 da ATA/ATAPI-4, o significado destes campos de atributos passou a ser inteiramente específico de cada fabricante. O manual atenua isto de imediato, notando que a maioria dos discos ATA/ATAPI-5 parece respeitar o seu significado convencional, mas a própria norma deixou de os definir.
A consequência recai sobre a coluna que as pessoas mais citam:
A conversão do valor raw numa grandeza com unidades físicas não é especificada pela norma SMART.
Portanto, um valor raw é um número cuja unidade é decidida pelo fabricante. O manual dá exemplos concretos da confusão daí resultante: alguns discos Hitachi comunicam as horas de funcionamento em minutos, e alguns discos IBM usam o atributo da temperatura para seguir três temperaturas diferentes em vez de uma só.
Daqui decorrem duas regras práticas.
Compara um disco consigo próprio, não com uma tabela da internet. Um valor raw de 200 não significa nada sem saberes a unidade e o modelo. O que significa alguma coisa é que no mês passado estava em 40.
Lê a coluna normalizada quando quiseres um veredito. O VALUE vai de 1 a 254 contra um THRESH de 0 a 255, e a regra está enunciada com clareza: se o valor normalizado for inferior ou igual ao limiar, diz-se que o atributo falhou. É essa a comparação que o fabricante quis que fizesses.
A coluna WHEN_FAILED conta-te depois o historial numa palavra: FAILING_NOW se neste momento estiver no limiar ou abaixo dele, In_the_past se o valor atual for aceitável mas o pior valor registado não o era, e um hífen se o atributo está bem agora e nunca falhou.
Uma última coisa que vale a pena saber sobre a própria ferramenta: o smartctl não calcula nenhum dos valores dos atributos, limiares ou tipos. Comunica aquilo que o firmware lhe entrega. Quando um número parece absurdo, a ferramenta não está errada, está a transmitir fielmente algo que o disco disse.
O que fazer quando os números são maus
A ordem importa, e o primeiro passo é aquele que as pessoas saltam.
Deixa de escrever no disco. Cada escrita é uma oportunidade de sobrescrever algo recuperável e mais trabalho para um mecanismo que já está a lutar.
Cria a imagem antes de investigares. Trabalha a partir de uma cópia ao nível do setor, não a partir do disco defeituoso. Tentativas de leitura repetidas num disco com setores pendentes colocam esforço exatamente onde ele já está frágil, e cada nova tentativa é uma oportunidade para um setor marginal se tornar ilegível. Cobrimos o processo em clonar um disco defeituoso com o ddrescue.
Depois recupera a partir da imagem. Assim que tiveres uma cópia, podes voltar a tentar as vezes que quiseres sem arriscares o original.
Recuperar a partir de uma imagem ou de um disco ainda legível
Aplica-se assim que o disco esteja suficientemente estável para ser lido ou tenhas feito uma cópia. Não repara setores defeituosos e nenhum software o faz, porque a realocação é tratada pelo firmware do disco.
A versão curta
O smartctl diz-te aquilo que o disco comunica sobre si próprio. Nunca repara nada, por isso trata "fix bad sectors" como a descrição de outra coisa qualquer. Lê o atributo 197 como o aviso precoce e o 5 como o registo permanente, e compara os valores normalizados com os limiares em vez de leres apenas os números raw. Um -H reprovado dá-te um horizonte documentado de 24 horas. E um relatório limpo não é um atestado de saúde, porque aproximadamente uma falha em cada quatro nunca chegou sequer a aparecer nestas estatísticas.
O comportamento dos comandos e a semântica dos atributos são retirados da documentação do smartctl; os números de correlação com a falha (76,7%, 4,2%, 23,3%) são as estatísticas publicadas pela Backblaze a partir da sua própria frota. Os números descrevem a população de discos deles e não são uma previsão para nenhum disco individual. As ligações comerciais têm o atributo rel="sponsored nofollow"; pode aplicar-se uma comissão de afiliado sem custo adicional para ti.
Recupera os dados do teu disco rígido → EaseUS
Análise gratuita · ficheiros apagados, formatados, perdidos · Windows & Mac



