2012-01-30 20:59:25 +0000 2012-01-30 20:59:25 +0000
38
38
Advertisement

Como forçar um remap dos sectores reportados no S.M.A.R.T C5 (Current Pending Sector Count)?

Advertisement

O valor S.M.A.R.T C5 do meu disco rígido Samsung HM640JJ (num portátil HP Pavilion dv6) é “yellow status = caution”

C5 era 10 ontem, e é 21 hoje.

C4 (Reallocation Event Count) = 0 e 05 (Reallocated Sectors Count) = 0

Como posso forçar o firmware a realocá-los?

  • Removi as divisórias, recriei-as novamente e formatei toda a unidade.
  • Executei chkdsk /r /f
  • Executei o utilitário de verificação do disco BIOS e outras ferramentas de diagnóstico/reparação
Advertisement
Advertisement

Respostas (8)

120
120
120
2013-12-15 18:06:48 +0000

Resposta curta: Escrever algo novo para o sector (mesmo zeros - o que um formato longo faz).

Resposta Longa

Os discos rígidos hoje em dia tentam esconder os maus sectores do computador anfitrião. O computador anfitrião pede simplesmente ao disco para devolver o conteúdo de um determinado número de sector. Normalmente, a unidade lê o sector, devolve-o à máquina anfitriã, e tudo está bem.

O disco rígido sabe se o valor lido é válido ou não, porque a unidade usa Código de correcção de erros (ECC) para validar que o conteúdo lido está correcto. Se a unidade detecta que o conteúdo do sector é inválido, irá tentar novamente a leitura. A esperança é que se simplesmente a ler novamente, poderá obter o conteúdo correcto do sector. Continuará a tentar de novo até obter um bom valor, ou até atingir o seu limite de tempo (formalmente conhecido como o Command completion time limit, ou CCTL _).

Durante estas tentativas, a unidade aparecerá morta; uma vez que já não está a responder aos comandos .

Sectores de reposição

A maioria das unidades modernas contém um número de “sobresselentes” sectores (por exemplo, 1.024 sectores sobresselentes). Se a unidade reconhecer um sector como mau, deixará de o utilizar. Quaisquer pedidos para ler ou escrever para esse sector danificado serão redireccionados de forma transparente para um sector sobresselente. Esta marcação de um sector danificado, e a realocação dos seus dados para um sector sobressalente, é chamada de Apresentação de realocação. E o número total de sectores que foram realocados (e portanto quantos dos seus sectores sobressalentes foram utilizados) é a Contagem de Sector Realocado*.

Neste exemplo a partir de um dos meus próprios discos rígidos, 64 sectores foram considerados como maus. Isto significa que 64 dos sectores de reserva da unidade foram chamados a ser utilizados:

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64

Neste mesmo disco rígido, houve 4 Acontecimentos de realocação*. Isto significa que houve quatro ocasiões em que a unidade marcou sectores como maus, e em vez disso utilizou sectores sobresselentes.

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4

E se alguma vez não conseguir ler os dados?

Estas acções de releitura de sectores, consumindo sobresselentes, tudo nas costas do computador é uma coisa boa. Significa que o sistema operativo anfitrião não tem de lidar com a questão dos sectores falhados. A própria unidade pode tratar desses pormenores.

Bonus Chatter : Antigamente, o seu disco rígido era enviado com um autocolante colado a ele. Este autocolante continha a Lista de Defeitos de Fábrica; a lista de todos os pontos maus conhecidos na unidade.

Se realizava um formato de baixo nível da unidade, tinha de utilizar uma ferramenta para digitar todos os Cilindro-Cabeça-Sector* locais dos pontos maus.
As unidades SCSI têm um comando, IOCTL_DISK_REASSIGN_BLOCKS , para lhes dizer para realocar um ponto mau na unidade depois de o sistema operativo o detectar. Nas unidades IDE tudo isto acontece automaticamente, sem a necessidade de intervenção do sistema operativo.

O ideal seria que a unidade reconhecesse que o sector está a falhar, movesse os dados para um sector de reserva, e nunca mais utilizasse o sector original. Mas o que acontece se a unidade não tiver sido capaz de ler o sector com sucesso?

Isto é o que Pending Sectors& são. A unidade detectou que um sector está a falhar, e precisa de ser refeito para um sector de reserva. Mas não o pode fazer enquanto não conseguir ler os dados com sucesso. Quando a unidade sabe que um sector é mau, e precisa de ser refeito, mas ainda não o pode fazer porque está à espera de obter uma boa leitura do sector: a isso chama-se a Contagem de Sector Pendente :

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4
(C5) Current Pending Sector 100 100 0 2

O meu disco rígido tem 2* sectores que a unidade reconhece como maus, mas que ainda não podem ser realocados. Se lesse um destes “sectores pendentes”, a unidade provavelmente tentaria de novo (e tentaria de novo, e tentaria de novo), e eventualmente devolveria um erro de leitura ao sistema operativo anfitrião:

ID Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(05) Reallocated Sector Count 192 192 140 66
(C4) Reallocated Event Count 196 196 0 5
(C5) Current Pending Sector 100 100 0 0

desista do sector pendente e será realocado

Há duas formas de a unidade poder finalmente realocar o sector, e consumir outro sector de reserva:

  • finalmente obtém uma boa leitura & - já não lhe interessa o que está no sector

Se a unidade finalmente ler o sector, então sabe que pode realocar o sector.

A outra forma de a unidade poder reatribuir o sector é se lhe disser que o conteúdo desse sector é irrelevante; que já não se importa com o que está no sector. Como se faz isso?

Escrevendo algo novo para o sector.

Sempre que ler de, ou escrever para, um sector num disco rígido, tem de ler/escrever o entire 512-byte sector1. Não é capaz de escrever apenas parte de um sector. Quando o SO escreve dados para um sector, tem de especificar o entire 512 bytes. Se disser ao disco rígido que deseja que estes novos conteúdos substituam este mau sector, a unidade sabe que nem sequer se importa com o que se encontra actualmente no mau sector. Pode então Realocar um mau sector para um dos sobresselentes, e o sector já não é Pendente*.

É por isso que quando as pessoas perguntam sobre tendo alguns Current Pending Sectors , o conselho comum é utilizar uma ferramenta (como o DataGuard da Western Digital) para escrever todos os zero à unidade.

> C:\Windows\system32>chkdsk /r c:
The type of the file system is NTFS.
Volume label is OS.

        12 KB in bad sectors.

Ao escrever zeros a cada sector na unidade, está a dizer à unidade que pode finalmente reafectar todos aqueles sectores*** desagradáveis. Após a limpeza, todos os seus Pending Sectors tornar-se-ão Reallocated Sectors:

ID Attribute Name Current Worst Threshold Raw  
============================= ======= ===== ========= ====
(C5) Current Pending Sector 100 100 0 18

Nota: Não é estritamente necessário utilizar uma ferramenta de “baixo nível” como o Data LifeGuard da Western Digital. Se instruir o Windows a executar um formato full* (isto é, formato não Quick*) de um volume, ele escreverá zeros para cada sector no volume.

O sistema de arquivo OS suporta a marcação de sectores como maus

Armado com este conhecimento, exploraremos um cenário comummente confuso.

Antes do advento da Integrated Drive Electronics (IDE), o sistema operativo anfitrião era responsável pela detecção de maus sectores, pela nova tentativa de leitura, pela deslocação de dados para outro sector, e pela marcação de sectores antigos como maus.

Se fosse correr um chkdsk /r c: utilizando o sistema operativo anfitrião, reconheceria que os sectores “pendentes” são maus, e os marcaria como maus, e nunca mais tentaria utilizá-los novamente:

>chkdsk c: /B

Assim, assumindo um disco rígido de sector de 512 bytes, 12 KB de ‘Sectores Pendentes’ ou neste exemplo 12KB marcados pelo SO como ‘sectores maus’, que corresponderiam à decimal 24 ou hexadecimal 0x18 como seria mostrado por um S. M.A.R.T. disk utility, tal como Crystal Disk Information:

/B NTFS only: Re-evaluates bad clusters on the volume
                (implies /R)

Nota : O utilitário Data LifeGuard v1.31 da Western Digital (último a partir de 31/08/2017) não parece mostrar correctamente os valores actuais do contador S.M.A.R.T. ‘Raw’.

Agora se efectuar um full format (que escreve zeros para cada sector no volume):

/B NTFS only: Clears the list of bad clusters on the volume and 
                  rescans all allocated and free clusters for errors. /b includes
                  the functionality of /r. Use this parameter after imaging a
                  volume to a new hard disk drive.

Isso significa que todos os sectores que foram Pending vão ser realocados. É agora seguro para o sistema de arquivo utilizar novamente esses sectores. A fim de instruir o sistema de arquivo de que esses sectores já não são “maus”, executa-se uma opção onde avalia os sectores maus:

onde a documentação do comando diz

Ou

De acordo com https://technet.microsoft.com/en-us/library/cc730714(v=ws.11).aspx

Isto foi uma escrita de lote inteiro, e imagens de ecrã de lote inteiro, para algo que nunca será lido.

5
5
5
2012-09-11 10:05:04 +0000

Não precisa de fazer nada - ainda. A contagem da realocação significa “disco encontrado com defeito no sector e successfully reallocated it”. O firmware já resolveu o problema.

Só precisa de estar ciente de que a unidade está a começar a falhar. A dada altura no futuro, a unidade não terá sectores de reserva para a realocação e perderá dados. Se algum bloco importante for perdido, poderá perder todos os dados da unidade.

Portanto, mantenha-se atento a este valor ou compre uma nova unidade imediatamente para que possa esquecê-la.

3
Advertisement
3
3
2012-01-30 21:29:36 +0000
Advertisement

Tive uma boa experiência com o método aqui descrito https://www.smartmontools.org/wiki/BadBlockHowto . O meu disco fazia ruído e deixava de funcionar, por isso utilizo o relatório inteligente e a fórmula para calcular o bloco defeituoso e uso o dd para o limpar. Tive sorte porque o smart ainda reporta uma contagem actual do sector, mas o disco está a funcionar há cerca de 2 anos. Comprei um substituto, mas nunca o utilizei. Parece-me que o smart também não é assim tão exacto.

2
2
2
2012-10-18 08:38:52 +0000

Talvez não conheça esta ferramenta HD Sentinel

Hard Disk Sentinel (HDSentinel) é um software de monitorização e análise de SSD e HDD multi-OS. O seu objectivo é encontrar, testar, diagnosticar e reparar problemas na unidade de disco rígido, reportar e exibir a saúde da SSD e do HDD, degradações e falhas de desempenho. O Hard Disk Sentinel fornece uma descrição textual completa, dicas e apresenta/reporta a informação mais completa sobre os discos rígidos e discos de estado sólido no interior do computador e em caixas externas (discos rígidos USB / discos rígidos e-SATA). Estão disponíveis muitos alertas e opções de relatórios diferentes para garantir a máxima segurança dos seus dados valiosos.

Esta parece ser uma óptima ferramenta para realizar tais acções. Mas tenha cuidado, algumas opções de execução podem destruir completamente os dados.

1
Advertisement
1
1
2013-05-31 11:13:45 +0000
Advertisement

Experimente Spinrite 6 ou CD regenerador de HDD de arranque. Eles fazem testes de superfície de escrita, pelo que deve limpar os sectores ruins pendentes e aumentar a contagem reatribuída.

1
1
1
2012-06-08 21:34:36 +0000

Zero escrito, também conhecido como Low Level Format. Só se pode fazer isto com um utilitário de disco do fabricante, normalmente. Se houver uma falha no disco rígido que cause este erro, pode voltar quase imediatamente.

1
Advertisement
1
1
2012-01-30 21:22:33 +0000
Advertisement

É necessário utilizar uma ferramenta que escreva a todos os sectores da unidade. Caso contrário, não há maneira de o fazer. Se a unidade atribuiu um sector de reserva e refez um remapeamento, que dados deve colocar no sector de reserva? Não faz ideia, uma vez que a sua tentativa de ler a partir do sector existente falhou. Só uma operação de escrita pode eliminar o erro.

0
0
0
2019-10-30 15:48:58 +0000

Para acrescentar outra solução, usei recentemente Victoria para reparar 2 discos que falharam com sectores pendentes, mas o disco não os refazia automaticamente por si só.

Victoria é uma interface gráfica de baixo nível para o seu disco, e inclui (se realmente quiser!) edição real de byte por byte do disco, forçar o remapeamento do sector em falhas, suporta unidades USB e aqueles adaptadores de dados USB-2 baratos da China-bay, mudar os atributos e características inteligentes do conjunto de fábrica, e muito mais.

O lado negativo - é desenvolvido por um programador russo, e deixo-vos abrir a caixa de Pandora se tiverem problemas com ela…

Com Victoria, peguei no primeiro sector que não conseguiu refazer, fiz um scan de “leitura” de cada sector depois disso com um remap de força. Depois fiz uma “Verificação” de todo o disco, voltei a fazer a verificação inteligente, e agora está tudo bem…

…Mas, tenho discos de reserva, por isso estou no processo de os trocar agora. Isto foi um pouco assustador, pois também eu estou entre soluções de backup, de todos os tempos!

Advertisement

Questões relacionadas

19
18
16
3
6
Advertisement