Marcar setores defeituosos no disco rígido sem formatação

17

Tenho notado que no meu servidor Ubuntu doméstico uma unidade é lida apenas por algum motivo. Descobri que isso pode acontecer quando os discos rígidos têm erros. Eu usei badblocks para verificar erros e, de fato, tenho alguns setores danificados.

Na maioria dos casos, o único curso racional de ação é tentar fazer backup de dados, remover o HDD e comprar um novo. No entanto, este servidor não tem nada que eu já não tenha feito backup em vários lugares, e gostaria de usá-lo até que ele morra. Eu uso para streaming de música e executando alguns scripts simples. Em qualquer caso, seria um grande problema reinstalar tudo.

Existe uma maneira de marcar esses blocos ruins sem formatar um disco rígido?

    
por enedene 06.05.2013 / 17:44

1 resposta

21

Suponho que você esteja falando sobre blocos físicos ruins em um disco e não sobre sistemas de arquivos corrompidos.

Para verificar a condição física do seu disco, é melhor instalar smartmontools

sudo apt-get install smartmontools

Isso funciona porque todos os discos modernos registram seu status de saúde usando um sistema chamado S.M.A.R.T.

Use o comando smartctrl para ler este status. Por exemplo, para ler todos os atributos da primeira chamada de disco

sudo smartctl --all /dev/sda

Cuidado com uma linha falando sobre o status geral de saúde. Quando isso indicar um erro, é muito provável que o disco falhe em breve.

SMART overall-health self-assessment test result: PASSED

Outras linhas que você deseja verificar são a Contagem do setor pendente e os setores realocados.

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       48
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2

Reallocated listas geralmente no campo bruto o número de setores defeituosos que o disco trocou por trabalhar com peças sobressalentes. Pendentes são setores que podem ser realocados caso a próxima gravação falhe.

Você pode até mesmo disparar autotestes do disco quando suportado pelo seu modelo

sudo smartctl -t long /dev/sda

Para forçar a verificação de todos os setores, use badblocks em um modo no qual os dados são gravados. Tenha em atenção que, embora, em geral, seja seguro executar, irá colocar uma carga extra nos seus discos, o que poderá causar falhas. Sempre tenha um backup dos seus dados.

sudo badblocks -svvn -c 262144 /dev/sda

Se você tiver processado totalmente seu disco dessa maneira, o controlador de disco deve ter substituído todos os blocos defeituosos pelos que estão funcionando e a contagem realocada será aumentada no log do SMART.

    
por user228505 01.07.2014 / 23:38

Tags