Saltar para o conteúdo principal
hard-driveINFO

smartctl e setores defeituosos: o que te diz mesmo, e os 23% que lhe escapam

O smartctl comunica os setores defeituosos, nunca os repara. Que atributos SMART preveem realmente a falha, como os ler, e porque a Backblaze concluiu que 23,3% dos discos avariados não deram aviso nenhum.

Por Eric Gerard · Editor · Save My Disk6 min de leituraFoto via Pexels

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:

IDAtributo
5Reallocated Sectors Count
187Reported Uncorrectable Errors
188Command Timeout
197Current Pending Sector Count
198Uncorrectable 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.

Uma vista macro do interior de um disco rígido aberto a mostrar o prato espelhado e o braço do atuador com as suas cabeças de leitura e escrita.
Uma vista macro do interior de um disco rígido aberto a mostrar o prato espelhado e o braço do atuador com as suas cabeças de leitura e escrita.

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 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.

Escolha editorial
4.5 / 5

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.

Fundada em 2004Garantia de 30 diasVersão gratuita de 2 GB
Ver a oferta

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.

Escolha editorial
4.5 / 5

Recupera os dados do teu disco rígido → EaseUS

Análise gratuita · ficheiros apagados, formatados, perdidos · Windows & Mac

Fundada em 2004Garantia de 30 diasVersão gratuita de 2 GB
Ver a oferta

Perguntas frequentes

O smartctl consegue reparar setores defeituosos?

Não. A documentação do smartctl é explícita ao dizer que a ferramenta não calcula nenhum dos valores dos atributos nem dos limiares, limita-se a comunicá-los a partir dos dados SMART presentes no dispositivo. É um utilitário de monitorização e de relato. Nada nele escreve nos teus dados nem repara um setor. A realocação é feita pelo firmware do disco por sua própria iniciativa, não pelo smartctl, e uma ferramenta que afirma reparar setores defeituosos ou está a reescrevê-los, o que destrói o que lá estava, ou está a descrever mal aquilo que faz.

Que atributos SMART interessam mesmo?

A Backblaze monitoriza cinco para prever a falha: SMART 5 Reallocated Sectors Count, 187 Reported Uncorrectable Errors, 188 Command Timeout, 197 Current Pending Sector Count e 198 Uncorrectable Sector Count. Os números que publicaram mostram que 76,7% dos discos avariados tinham pelo menos um destes acima de zero, contra 4,2% dos discos operacionais.

O que significa um estado de saúde reprovado no smartctl -H?

A documentação indica que, se o dispositivo comunicar um estado de saúde reprovado, isso significa ou que o dispositivo já falhou, ou que está a prever a sua própria falha nas próximas 24 horas. É uma janela estreita. É uma razão para deixar de usar o disco imediatamente e copiar o que interessa, não uma razão para agendar manutenção para o fim de semana.

O meu disco passa no SMART. Os meus dados estão seguros?

Não necessariamente, e este é o número que mais importa. A Backblaze comunicou que 23,3% dos discos avariados não mostraram qualquer aviso a partir destas cinco estatísticas SMART. Perto de uma falha em cada quatro chega com um relatório limpo. Uma verificação SMART aprovada diz-te que ainda nada de mau foi detetado, o que não é o mesmo que o disco estar saudável.

Qual é a diferença entre smartctl -t short e -t long?

O autoteste curto costuma demorar menos de dez minutos e verifica o desempenho elétrico e mecânico, bem como o desempenho de leitura do disco. O teste alargado demora dezenas de minutos e é uma versão mais longa e mais minuciosa da mesma coisa. Lê os resultados depois no registo de autotestes, em vez de assumires que o comando que lançou o teste comunicou o desfecho.