Como corrijo a contagem atual do setor pendente

8

A partir do SMART Data, mostra que eu tenho 3 contagens do setor pendentes. (Executando o Ubuntu Maverick.)

Eu tentei seguir um link de um fórum sobre como resolver isso , mas não sou capaz de identificar a contagem exacta do sector para escrever nesse sector. Eu executo o autoteste completo a partir do Utilitário de Disco, mas o Utilitário de disco não mostra o número de setor exato em Maverick, mas não tenho certeza sobre versões anteriores. Isso mudou em Maverick?

Como identifico o setor e corrijo essa contagem pendente? Essa dica nos fóruns é segura?

PS: Eu tenho outros problemas com a "Contagem de setores realocados", pelo que eu pesquisei no Google, não é possível corrigi-los. Existe alguma maneira de evitar que ele aumente?

    
por Vish 01.10.2010 / 10:14

4 respostas

7

Este é realmente um longo comentário; -)

IMO o sistema de arquivos deve automaticamente cuidar dele no devido tempo, especialmente desde que você tenha executado o auto-teste. Como você pode ver, o remapeamento é feito no evento de falha de gravação, portanto, da próxima vez que ele tentar escrever, ele será remapeado.

Você poderia declarar o propósito maior por trás disso? Além da preocupação com os blocos que exigem o remapeamento, existe algum outro problema / irritação que você está tentando resolver fazendo isso?

A dica no post do ubuntuforums que você citou é segura desde que você saiba exatamente qual setor foi ruim e tenha uma razão convincente para corrigi-lo. Normalmente, o setor # não é relatado nem mesmo pelos programas de verificação de arquivos, pois é abstraído e tratado internamente pelo sistema de arquivos.

Mas, se você precisar encontrar os bad clocks ofensivos, use as etapas abaixo:

  1. Observe o arquivo do dispositivo correspondente ao sistema de arquivos. Este é o formato / dev / hdc ou / dev / sdb dependendo do tipo de disco. Isso é exibido no Utilitário de Disco ( System -> Administration -> Disk Utility ). Se você clicar no nome do disco na lista exibida no painel do lado esquerdo, o nome do dispositivo poderá ser lido em "Dispositivo:" à direita.

  2. Desmonte todos os sistemas de arquivos nesse disco. O seguinte comando não deve retornar nenhuma saída.

    mount | grep -i <device-name>
    
  3. Execute o seguinte comando

    badblocks -sv -b 512 <device-name>
    

    Nota O -b 512 é o de alinhar o tamanho do bloco a 512 para que você possa usar o número reportado por este comando como entrada para dd conforme explicado no forums post

Eu não recomendaria todos os itens acima, pois ele é cuidado pelas operações normais do disco.

    
por koushik 01.10.2010 / 16:46
1

Quando isso excede 0, normalmente é um sinal de falha iminente da unidade. Eu não acredito que isso possa ser corrigido sem substituir o disco rígido.

Consulte o link

    
por Malcolm McCaffery 06.12.2011 / 01:22
1
pior ainda, você sempre pode fazer isso: Desmonte o disco ou a matriz e pare qualquer matriz.

dd if=/dev/sdX of=/dev/sdX iflag=direct,sync oflag=direct,sync

Demorará muito tempo, mas deverá funcionar.

O ideal seria consultar a lista de defeitos de crescimento do disco rígido (glist), mas ainda não descobri como fazer isso.

    
por Jim Mills 14.08.2011 / 19:07
1

Parece que a opção conv=noerror ajuda. Quando há um erro de E / S, parece que essa opção força dd a tentar novamente até concluir a leitura / gravação. Eu criei um arquivo de origem com o seguinte comando para cada um dos blocos defeituosos encontrados pelo comando badblocks (fornecido pelo Kaushik acima) e ele limpou a "Contagem do setor pendente atual" ("aguardando remapeamento") para zero de 5.

sudo dd bs=512 count=1 conv=noerror ibs=512 obs=512 if=/dev/sda of=/dev/sda iflag=direct,sync oflag=direct,sync skip=3186809 seek=3186809
    
por Vis 09.10.2011 / 17:00

Tags