{[['']]}
Deteção de problemas no disco rígido
Uma das peças mais frágeis que constituem o computador pessoal é o disco rígido, por isso, é expectável que quando um disco rígido não se encontra em perfeito estado, que o desempenho e a estabilidade do computador sejam afetados.
O disco rígido tem uma forte componente mecânica, como tal, as peças estão sujeitas a desgaste por uso. Para além do desgaste existe também o fator da densidade, ou seja, a capacidade de armazenamento dos dados aumentou sem que o tamanho físico do disco aumentasse, fazendo com que as operações de leitura e de escrita tenham de ser muito mais precisas (o que na maior parte das vezes nos equipamentos modernos acontece). Se juntarmos estes dois fatores de instabilidade ao fato do sistema operativo necessitar constantemente de ler e escrever informação de/para o disco, obtemos uma forte dependência entre a estabilidade do sistema operativo e o funcionamento do disco.
Dada a arquitetura e o modo de funcionamento dos discos rígidos não é fácil determinar quando é que um disco vai falhar, por isso é muito importante estar atento aos sintomas que podem ser tão vagos como:
- Sistema operativo deixa de arrancar
- Durante o processo de arranque do computador surgem mensagens relacionadas com falta de ficheiros ou entradas de registo corrompidas
- Lentidão excessiva
- Sistema operativo deixa de responder a efetuar algumas tarefas e depois aparentemente retoma
- Ouvem-se barulhos (tipo cliques ou estalidos) quando o disco se encontra em funcionamento
Tirando o último sintoma referido, os restantes podem ser perfeitamente provocados por outras situações não relacionadas com o disco, por isso, infelizmente, o método mais eficaz para determinar o estado físico é monitorizar o estado do mesmo.
Como é que se pode monitorizar o estado físico de um disco?
É possível obter o estado físico do disco “pedindo” à controladora do disco que nos devolva o seu estado ou monitorizando os eventos que a controladora do disco vai passando para o sistema operativo. O “problema” destas duas opções são não serem evidentes como é que se realizam e no caso específico da segunda, a morosidade da pesquisa no Visualizador de Eventos por erros relacionados com o disco ou controladora do disco.
Neste artigo vou mostrar como é que com simples linhas de comando (em PowerShell) se consegue obter esta informação sem recorrer a software externo.
O primeiro passo é lançar o PowerShell, para tal basta efetuar:
- Clicar em “Iniciar” e escrever “PowerShell”
Para saber se o que é que a controladora do disco está a dizer ao sistema operativo relativamente ao seu estado, deve executar-se na linha de comandos do PowerShell o seguinte:
(Get-WmiObject win32_diskdrive).status
Se o resultado for diferente de “OK” então é porque a controladora está a dizer que está a detetar demasiados erros ou que o disco em breve vai falhar.
Se não for devolvido nenhum resultado pela execução do comando então é porque a controladora não está a devolver informação SMART ou então o disco não suporta SMART.
Os valores possíveis, segundo a documentação da Microsoft, são “OK”, “Error”, “Degraded”, "Unknown", "Pred Fail", "Starting", "Stopping", "Service", "Stressed", "NonRecover", "No Contact" e "Lost Comm".
Exemplo da execução quando não existem erros a reportar por parte da controladora
Para saber se já existem eventos registados no sistema operativo que evidenciem problemas no disco, deve executar-se na linha de comandos do PowerShell a seguinte instrução:
Get-EventLog -LogName System –InstanceId 3221487627 -ea 0 | ForEach-Object { $_.ReplacementStrings[0] } | Group-Object -NoElement | Sort-Object Count -Descending
Exemplo da execução quando não existem erros
Exemplo da execução num computador cujo disco apresenta bastantes erros
Podemos ainda usar o PowerShell para obter a opinião do sistema operativo sobre a necessidade ou não de se desfragmentar o disco. Para isso basta executar a seguinte instrução:
(Get-WmiObject win32_volume -filter "drivetype=3").DefragAnalysis().DefragRecommended
Exemplo da execução num computador no qual o sistema operativo diz não existir a necessidade de se efetuar a desfragmentação do disco
Utilizando ainda o WMI podemos questionar o sistema operativo sobre se a controladora do disco informou o sistema operativo que está prestes a falhar. A execução deste comando perde um pouco a sua importância porque o próprio sistema operativo quando a controladora se encontra neste esta, informa o utilizador. Existem ainda BIOS que durante o arranque efetuam este mesmo teste e têm a capacidade de informar o utilizador. Para obter esta informação basta, uma vez mais na linha de comandos PowerShell, executar o seguinte:
Get-WmiObject -Namespace root\wmi -Class MSStorageDriver_FailurePredictStatus -property PredictFailure
Se o resultado for diferente de “False” é porque o disco se encontra com sérios problemas e como tal a primeira coisa que deve ser feita é uma cópia de segurança atual aos dados que interessam preservar pois dificilmente vão conseguir ver várias vezes esta mensagem.
Exemplo da execução num computador cuja controladora não prevê nenhuma falha do disco
Onde é que encontro o PowerShell para executar estas instruções?
O Windows PowerShell é um componente do Windows que vêm incluído no sistema operativo desde o Windows Vista e Windows 2008 Server, no entanto é possível instalar o PowerShell num Windows XP ou Windows 2003 , para isso basta descarregar e instalar o Windows Management Framework.
A página que contem as hiperligações necessárias para os sistemas operativos Windows XP, Vista, 2003 e 2008 encontra-se em http://support.microsoft.com/kb/968930
Se o sistema operativo for Windows Server 2008 ou Windows Server 2008 R2 poderá ser necessário ativar o Windows PowerShell. Os passos para o fazer são os seguintes:
Na consola de gestão Server Manager clicar em “Features” | “Add Feature”. Na janela de funcionalidades ativar o “Windows PowerShell Integrated Scripting Environment (ISE)”
Imagem da consola de gestão do Windows Server 2008 R2 para adicionar a funcionalidade Windows PowerShell
Notas:
Nenhuma das instruções tem mais do que uma linha, apesar de visualmente aparentarem, por isso sugiro que copiem e colem diretamente a instrução na consola do PowerShell.
A dificuldade em detetar com antecedência problemas no disco rígido não está de forma alguma relacionada com o sistema operativo, ou seja, o Windows não é pior nem melhor que os outros. A verdadeira causa desta incerteza prende-se com o fato de os fabricantes de discos rígidos não disponibilizarem mais informação e informação mais concreta sobre o real estado do disco.