Engenharia da Computação - Hardwares: CHECKSUM ou SYSTEM HALTED
Autor: Ciência da Computação - JokerHat | Publicado: 2016-04-02T15:24:00-03:00




Esse tópico acho necessário abordar depois que vi um parecer da Microsoft e algumas hipóteses para resolução desse problema em alguns fóruns.





Links relacionados:1. POST: https://pt.wikipedia.org/wiki/POST

2. POST: https://books.google.com.br/books?id=V48MZCwICH8C&amp;pg=PA646&amp;lpg=PA646&amp;dq=POWERON+SELF+TESTE+microsoft&amp;source=bl&amp;ots=kKhECUot7w&amp;sig=k6P6jhoVwhH9BuoEwYQkDnBbmGM&amp;hl=pt-BR&amp;sa=X&amp;ved=0ahUKEwjQ_fa5mfDLAhVIgpAKHZDWA_AQ6AEISjAF#v=onepage&amp;q=POWERON%20SELF%20TESTE%20microsoft&amp;f=false 

3. BIOS: https://pt.wikipedia.org/wiki/BIOS

4. P5VDC-X: https://www.asus.com/Motherboards/P5VDCX/&nbsp;

5. Blue Scream: http://windows.microsoft.com/pt-br/windows7/resolving-stop-blue-screen-errors-in-windows-7

6. MBR: https://pt.wikipedia.org/wiki/Master_Boot_Record

7. Minidump: http://www.nirsoft.net/utils/blue_screen_view.html 





Nessa semana, foi procurado para dar opinião sobre um possível "problema" encontrado em um computador. Ao ligar a CPU aparece este erro: The file is possibly corrupt. The file header checksum does not match the computed checksum (O arquivo esta possivelmente corrompido. A soma de verificação do cabeçalho não coincide com a soma calculada). 









Para entendermos o que o erro esta dizendo, precisamos entender melhor a funcionalidade da BIOs. 

A BIOS, em resumo, refere-se a um programa gravado na memória ROM da placa mãe. Ela é responsável pela entrada e saída de dados no hardware.



Quando ligamos o computador, a fonte de energia é carregada alimentando o circuito elétrico da placa mão iniciando a BIOS. Uma teste é feito por ela nos hardwares ligados à placa mãe, ele se chama POST (Power-on Self-Test). Entre os testes realizados pelo POST encontram-se:



1. Identificando as configurações realizadas na BIOS. Embora varie com o fabricante as teclas para acesso à BIOS, comumente, é F2 ou Del. Ela é apresentada no inicio da leitura das configurações da BIOS em tela tela. Salvo a mais recente tecnologia chamada EFI (que auxilia uma entrada rápida da BIOS dificultando a visualização das possibilidades em tela sendo necessário configurar na BIOS caso queira ver mais informações) com a tendência de substituir a BIOS. O EFI permite funcionalidades que não é possível com a BIOS como por exemplo, ele pode gerenciar um sistema de boot com mais de um sistema operacional, como o GRUB;



2. Iniciação dos periférico acoplados na placa mãe;

3. Iniciação da placa de vídeo on-board. Caso esteja habilitada na BIOS;

4. Teste de memória;

5. Detecção de teclado;

6. Carregamento do sistema operacional;

7. Passe de controle do processador ao sistema operacional;



A placa mãe tem BIPs para identificação de problemas e variam com o fabricante. Para entendê-lo basta entrar no site do fabricante e baixar o manual. Não tem segredo. Para fazer um teste, retire as memórias e ligue o computador e ouça os BIPs. Verifique antes se sua placa necessita da entrada de um mini auto falante. Embora dependa do fabricante, na wikipedia você pode encontrar algumas informações genéricas sobre sua identificação.





Bom, a máquina que veio para mim é uma P5VDC-X da ASUS. Possui slots duplos para DDR2 e DDR400 e podem trabalhar em frequência 1066/800/533 Mhz. Com ela esta uma DDR400 com capacidade de 1Gb. Com socket 775, esta com um processador Pentium 4 de 3.0 Mhz. um Hard Disk Sata com capacidade de 150Gb de armazenamento. O sistema operacional da máquina é o Windows 7 i386.



Sim, a máquina esta obsoleta para esta época. A maioria delas para ser sincero. Principalmente de pequenos comércios onde procuram evitar maiores investimentos e quando se trata de equipamentos de informática, o que pouco entendem, é difícil de convencer da importância de informatizar o seu negócio. Contudo, a máquina esta adequada às necessidades realizadas com ela.



Os sintomas informados foram: A máquina estava funcionando corretamente. Em um belo dia, sem nenhuma explicação lógica, como queda de energia, alguém passou correndo e desligou o PC, ou por descuido manteve o Power pressionado, o computador desligou.

Ao liga-lo novamente, após algumas horas, uma tela azul surgiu. E o computador foi reiniciado. E permaneceu assim por algum tempo. Até começar a reiniciar antes de iniciar o sistema operacional.

Com o tempo, o erro acima (descrito na imagem) apareceu e não foi possível entrar no sistema operacional.





Com relação à descrição, temos algumas hipóteses, sem realizar nenhum teste, sobre as possíveis causas. 

Com por exemplo a famosa tela azul.



A Tela azul: esta tela é assinatura em sistemas operacionais windows. Segundo a Microsoft, este erro acontece quando existe algum travamento do sistema que o impede de operar normalmente de forma que obriga o windows a reiniciar inesperadamente. A microsoft alerta que este erro pode ser causado por problemas no hardware e/ou software e podem ser difíceis de solucionar http://windows.microsoft.com/pt-br/windows7/resolving-stop-blue-screen-errors-in-windows-7 



Geralmente, os problemas encontrados com a tela azul referem-se a memória. Contudo, esse erro (tela azul) não é apenas relacionado à memória podem ser hardware (memória, etc) e/ou software.



Obs: Bom, se o segundo erro não houvesse ocorrido (checksum), poderíamos arriscar uma análise forense no arquivo de despejo de memória física
 para realmente entendermos o que de fato ocorreu e/ou esta ocorrendo 
com o sistema operacional para reiniciar inesperadamente. Estou falando 
do pagefile.sys, um minidump da memória do sistema criado antes de reiniciar. 





Sobre o erro de checksum, eu fiz uma rápida pesquisa na internet para encontrar o que o pessoal esta falando sobre esse assunto, e as soluções que estão fornecendo.&nbsp;

A maioria esta relacionando a erros ao:



1. MBR (Master Boot Record): também conhecido como trilha 0. Trata-se do primeiro setor lido pelo POST da BIOS no disco rígido para inicio do boot no sistema. Alguns fóruns estão dizendo que os "arquivos de iniciação do sistema estão corrumpidos" baseado na informação na tela "The file is possibly corrupt...";





2. Memória: o
 problema pode ser relacionado à memória ou não (neste caso é a 
memória). E estão pedindo para fazerem testes trocando a memória e 
retornar ao fórum para dizer o que aconteceu.



3. BIOS: encontrei o pessoal dizendo que é para atualizar a BIOS porque o sistema não consegue ser reconhecido por estar absoleta ou mal configurada. A microsoft alerta sobre isso [http://answers.microsoft.com/en-us/windows/forum/all/the-file-is-possibly-corrupt-the-file-header/a7dcc0ea-8d7e-4131-a2fb-b13203cd3cd4?auth=1].
Para vc testar isso, tire a pilha da sua placa mãe, e ligue o computador com os periféricos ligados. Alguns casos precisa retirando o teclado e/ou mouse é o suficiente.&nbsp;&nbsp;



Obs: Existe um JUMPER em alguns modelos antigos e na maioria dos 
modelos recentes que permite um clear (apagar-resetar) a BIOS sem ser 
preciso tirar a bateria e carregar a opção default das configurações da 
BIOS.





A BIOS estará desconfigurada. Em alguns modelos ao retirar a bateria ela ja carrega o default. Outras não, aparece uma opção na bandeira da do BIOS, após o checking dos componentes, algumas opções que definem a entrada na BIOS para ser configurada, a opção de carregamento das configurações default da BIOS ou o prosseguimento dos passos posteriores para entrada no sistema. Outros modelos, a opção default esta nas configurações da BIOS.




O que irá acontecer, é provavelmente, o erro que aparece relacionado a checksum e não estará relacionado à memória. Desde que as configurações da BIOS não carreguem o default e não sejam definidas, como acontece com este modelo de CPU. Esta é uma maneira de reproduzir o erro.



Para voltar as configurações de basta que o JUMPER (causo houver) esteja em default (caso tenha tirado a bateria coloque-a novamente) . E alguns casos o teclado e/ou mouse conectados.&nbsp; E carregue a opção default seja em modo virtual, caso necessario.














Em resumo o erro checksum significa "checar a soma". O POST, realiza testes com todo o hardware antes de iniciar o sistema operacional. Sua forma de validar suas operações (em sua lógica de programação) é proposto por uma soma de valores. O erro é claro e diz: "The file is possibly corrupt. The file header checksum does not match the computed checksum (O arquivo possivelmente esta corrompido. A soma de verificação do cabeçalho não coincide com a soma calculada)" 



Se entendemos que o POST é uma verificação de hardwares o erro se relaciona aos componentes que compõe a CPU e não especificamente a um hardware.



Se você rodar outro sistema operacional, como o linux nestas condições, o erro que aparecerá será: CRC Error - System Halted (Sistema bloqueado).










Enfim, não sabemos ainda qual de fato o componente que esta com problemas no computador de forma que cause o erro eminente.



A solução é simples, aparentemente. Basta desligarmos os periféricos da placa mãe. Mantenha apenas os principais componente como o processador e memória acoplados.&nbsp; Rode um sistema live USB, como alguma distro Linux. Até o boot no pendrive ele não irá ler a memória do slot da placa mãe lhe dando algumas opções, somente na boot do sistema operacional, que esta neste caso no pendrive, começará a operar na memória.



Se o erro ainda ocorrer, você terá uma maior hipótese que o problema esteja relacionado à memória. Esta é uma forma de ser rápido para identificar o problema, testando os hardwares relacionados que poderão não ser a memória, em casos extremos, será o processador (nestas duas hipóteses). Entenda que reduzimos as hipóteses.


Para ter certeza, faça um teste na memória. Não precisa trocá-la (até o momento).



Na distro da maioria das distribuições Linux, vem um utilitário chamado Memterter. Você poderá acessá-lo na live USB na opção TESTAR MEMÓRIA que aparece após o boot.



Eu testei a memória DDR400. Veja os erros e suas posições de registros:







Isso com 2% de análise. Esta cheia de erros que impossibilitam a leitura e escrita nestes registros, o que impossibilita do sistema carregar as instruções para o processador do Sistema Operacional.



Neste caso, o problema, realmente esta na memória.

Ao troca-la o problema foi resolvido. Foi possivel iniciar o sistema normalmente e operá-lo. Contudo, como se trata do windows, com vários erros nos logs e alguns registros os quais podem tornar o computador um pouco mais lento.



Obs: teoricamente, utilizando os dois slots ao invés de um, você poderá melhorar a performace de leitura e escrita na memória. Essa placa mãe trabalha com frequencias 1066/800/533 Mhz. Veja que esta memória tem 1Gb e na descrição você poderá ver a velocidade de comunicação chega a 1610 MB/s. 

Ao inserir em dois slots DRR2 dois módulos de capacidade de 512Mb com de 533Mhz (ambas com mesma frequência), formamos 1Gb com uma velocidade de comunicação a 2123 MB/s. A diferença você irá sentir quando estiver operando no sistema.

É importante que você conheça as frequências que a placa trabalha por é calculado com o BUS dos processadores. Se vc não respeitar isso, entre os sintomas são a lentidão durante operações com o computador. Acontece que as instruções precisam chegar na memória primeiro e depois direcionadas ao processador. Temos a evolução de memórias mais avançado do que a evolução dos processadores, esta é uma das causas do cache nos processadores ser implementado para acompanhar as altas frequencias de comunicação das memórias. A performance melhora quando estas frequencias, entre processador e memória, são mais próximas.

Isso também, varia com o sistema operacional. No caso do windows, existe um fator de paginação da memória. Ou seja, se a memória RAM não for o suficiente para ler ou escrever uma instrução (chamada de algum processo), o windows utiliza a memória virtual utilizando parte do Hard Disk para ler e escrever partes que na memória principal (RAM) não caberiam. E a velocidade do HD é muito, muito, muito inferior ao processador e à memória o que torna o sistema lento para responder a alguma operação, principalmente s eo HD for de 5.400 rpm. Isso pode melhorar se você utilizar um HD SSD, e ja alerto são caros. A leitura é flash, absurdamente mais rápido que o HD de disco, e muito mais seguro em questões de quedas e perdas de informações por danos no disco.



Atenção às frequências das memórias e as recomendadas no manual da placa mãe. Caso usar dois slot, devem ser módulos de mesma frequência caso não, vc perderá MB/s na comunicação, e o sistema operacional começará a travar inesperadamente em ações multitarefas.









Obs: Para recuperar esta memória, ou sanar os erros dos registros, é outro assunto. Um amigo da UEMG, me disse que resolveu esse problema esquentando a memória RAM com um secador de cabelo O.O. Eu não entendi a relação da termodinâmica para recuperação dos erros de endereços da memória. Depois podemos estudar isso de forma científica e tentar entender a possibilidade disso.





Até o momento identificamos o erro e sua origem.

A origem pode ser temporal e relacionado à oxidação da memória, à temperatura entre outras causas mais técnicas.
Outro erro relacionado à memória é referente a casos da CPU ligar e não aparecer NADA no monitor. Retire a memória, passe uma borracha (de apagar lapis em caderno, borracha escolar) no circuito dos pentes que vão acoplados no slot. Retire a tomada da CPU, até que a energia se dispersa. Insira a memória e ligue a CPU. Voilá, oxidação e ou energia (por minima que seja) nos módulos. 
Entre elas, erros na memória podem estar relacionados, também, à virus de computadores.



Podemos criar malwares (vírus) desse tipo, que casam danos ou impossibilitem a leituras de certos registros na memória. Caso este seja a causa do problema, o malware poderá estar instalado no sistema operacional ou pior, no firmware (Rootkits) de algum hardware e não diretamente à memória. Entre elas incluem a ROM da BIOS.



Este não foi o caso deste computador mas talvez poderá ser o seu.

O que vc pode não entender é: O que diabos alguém gaste seu tempo criando vírus de computador para causar um erro como este. O que diabos esta ganhando com isso?
Sinceramente, eu não sei.



Em caso de duvidas, no sistema operacional você rodará um anti-virus. Não é 100% garantido que ele pegue alguma coisa, duvido muito. Instale um anti-malware como o malwarebytes e veja se encontra alguma coisa.
Ou você poderá analisar o sistema mais afundo com o canivete suíço da microsoft chamada system internals [https://technet.microsoft.com/en-us/sysinternals/bb842062.aspx]. São diversas ferramentas para utilização de analise em sistemas windows. Analisando os processos você poderá chegar a um malware, o que acontece é que eles escalonam-se em outros processos e estão em nível de kernel e podem enganar facilmente o antivius e controlar o SO. Então você só o vê de forma manual, quando não possuem vacinas.

Encontrando algo diferente ou que tenha chamado sua atenção, submeta-o ao virus total [https://www.virustotal.com/] para buscar uma avaliação caso houve e pesquise o nome do processo. Caso ainda não encontre, você precisa abrir o binário do programa relacionado ao processo pai, e analisar sua estrutura além do que ela faz no sistema como conexões de rede, arquivos que deixa, etc. É vc vai gastar muito tempo, e se o computador ou o caso não valer isso, deixe pra lá. A não ser trabalho acadêmico, notifica tudo e faz um doutorado com tema para criar uma vacina. Ta cheio de malwares por ai cara, pode chegar ao título de PhD fácil.







Na caso da BIOS, vc verá sua versão. Isso porque para gravar o flash na ROM é preciso primeiro apagá-la completamente e instalar uma versão sobre ela. Verifique a versão de fábrica da BIOS se bate com a versão atual. Caso não, veja no fabricante as versões disponíveis e confere.

Em caso de duvidas faça uma atualização da BIOS.

Eu atualize a BIOS da placa P5VDC-X&nbsp; porque eu quis.



Vou seguir a ideia como exemplo. Você precisará:



1. Um pendrive

2. Baixe o arquivo de boot do MS-DOS o FREEDOS que pode ser obtido com o Rufus: https://rufus.akeo.ie/

3. Vá até o fabricante e baixe a versão que você desejar da BIOS. No meu caso as versões são estas: https://www.asus.com/Motherboards/P5VDCX/HelpDesk_Download/

4. Baixe o manual da sua placa mãe e verifica o capítulo BIOS. Ali esta descrito o necessário para você executar esta operação. No meu caso, para versões desta placa mãe o Wim Bios (programa) para executar os ROM dos arquivos que baixei das updates da BIOS chama-se AFUDOS.exe. Você poderá encontrar esta versão entre outras neste site: https://www.wimsbios.com/amiflasher.jsp





A versão do afudos que baixei é usada sem a necessidade do sistema operacional. Utilizo no boot com o pendrive. Por isso iniciamos um boot com FREEDOS.

Instale o FreeDos no pendrive. Adicione as verões da BIOS que quer testar e instalar. Baixe o executável compatível. Aparentemente o AFUDOS é para todas as BIOS, não tenho certeza, não li a documentação. EU SEGUI O MANUAL DA PLACA MÃE.







Ao dar um boot no pendrive, você estará no raiz que no caso do FreeDos será c:/ (do pendrive). Os&nbsp;

comandos são os mesmos do DOS. Entre na pasta da versão que você escolhe e use o comando: para gravar o flash na ROM afudos.exe /iversão_da_bios; ou grave a versão atual, antes de instalar o update, com afudos.exe /oversão_d_bios. 





Obs: O afudos esta dentro de cada pasta da versão da BIOS que baixe.





Se desejar ter os meus arquivos sendo RUFUS+AFUDOS+BIOS-P5VDC-X estão aqui: http://www.4shared.com/zip/JsZdtBExce/FreeDOSAFUDOSBIOS-P5VDC-X.html









Bom, é isso aí pessoal.