Como obter um teste off-line SMART para concluir em uma unidade ativa?

1

Gostaria de executar um teste off-line SMART em um dos meus discos rígidos (SATA interno). A máquina está rodando o Ubuntu 14.04, então eu simplesmente faço smartctl -t offline /dev/sdb (como root). Começa o teste e me dá um tempo estimado de conclusão.

A unidade em questão detém o fs raiz do sistema, por isso está sendo ativamente (mas não pesadamente) usado. Então, quando mais tarde executo smartctl -a /dev/sdb , mesmo depois do tempo estimado, vejo "Status da coleta de dados offline: (0x04) Atividade de coleta de dados off-line                                         foi suspenso por um comando de interrupção do host. "Não está claro se o teste nunca vai terminar.

Meu entendimento é que o teste off-line essencialmente verifica cada setor no disco para ver se ele pode ser lido. Quando o computador acessa o disco, o teste é suspenso e retomado após o término do comando. Mas parece que há comandos suficientes sendo enviados que muito pouco tempo é gasto no teste, então ele progride extremamente devagar ou não é de todo. (Eu também me pergunto se existe um atraso intencional entre a conclusão do comando e a retomada do teste, para evitar alternar com muita frequência.)

Existe alguma maneira de priorizar o teste SMART de alguma forma, para que ele progrida a uma taxa razoável, mantendo o disco acessível? Seria bom se o acesso ao disco fosse mais lento, como desde que o sistema ainda possa ser executado. Eu sei sobre o modo cativo -C , mas isso tornaria o sistema inutilizável enquanto o teste é executado. Naturalmente, eu poderia inicializar a partir de outro disco e executar o teste SMART com sdb desmontado, mas isso também tornaria o sistema efetivamente inutilizável pela duração (e requer acesso físico à máquina, o que é inconveniente).

Eu vi O SMART-Test nunca termina , mas esse parece ser o problema oposto: o disco não tem atividade e entra no modo de espera. Não vejo nenhuma evidência de que seja o caso aqui, como o disco está ativo. Eu também vi o SMART O teste offline curto nunca termina para todas as unidades de um RAID1 no ServerFault, mas a resposta sugere problemas de controlador ou cabeamento, que não tenho motivos para suspeitar, já que a unidade geralmente funciona bem.

(Como um aparte: existe alguma maneira de verificar o progresso de um teste offline? Isso me daria uma idéia se o teste tem alguma chance de ser concluído em um período de tempo razoável .)

    
por Nate Eldredge 09.08.2015 / 00:17

1 resposta

1

Se o comando

sudo smartctl -c /dev/sdb

diz

Offline data collection capabilities:
  Suspend Offline collection upon new command.

então seu teste deve ser concluído ok. Talvez você tenha smartd executando em segundo plano fazendo comandos ocasionais?

Você pode dividir seu -t offline em intervalos menores de blocos. Por exemplo,

sudo smartctl -t select,0+10000 /dev/sdb

quando terminar, repita este comando com uma espera por cada resultado:

sudo smartctl -t select,next+10000 /dev/sdb
    
por 09.08.2015 / 12:01