segunda-feira, 27 de abril de 2009

Recuperando-se de desastres no Registro do Windows.



 
 

Enviado para você por Penha através do Google Reader:

 
 

via Geringonças e Gambiarras de Jefferson em 17/04/09

Nota: O método descrito a seguir foi o que usei inicialmente para me recuperar do dano ao meu Windows descrito neste post, que envolveu um erro STOP : C000021a com status de 0xC0000022. Eu já testei um método ainda melhor e mais preciso, que vou descrever em outro post.


O Registro do Windows, como vemos pelo Regedit, é uma representação em memória do conteúdo de um ou mais arquivos, que tem essa finalidade exclusiva.

No Windows 2000 e XP esses arquivos ficam armazenados em:

%windir%\system32\config\

No momento em que a instalação ou reinstalação do Windows é concluída o programa de instalação faz uma cópia-base desses arquivos em:

%windir%\repair\

Essa cópia tem o estado do seu Registro com todo o software e hardware que o Windows pôde instalar sozinho. E a melhor parte é que o hardware está bem separado do software. São dois arquivos: SYSTEM e SOFTWARE (sem extensão).

Edit: Esses arquivos que contém seções do Registro são chamados de "hives".

O arquivo %windir%\system32\config\SYSTEM tem todo o conteúdo da chave HKLM\SYSTEM do Registro, com todos os drivers e serviços instalados e não muito mais que isso. Se você substituir a cópia em "config" pelo backup em "repair", seu Windows volta, do ponto de vista da instalação do hardware, ao estado em que estava quando o Windows foi instalado.

Nota: Você não precisa e nem deve mexer com o arquivo SOFTWARE a não ser que você queira reverter o Registro totalmente para o estado em que estava na instalação, perdendo toda a configuração do software instalado.

Problemas dessa solução:
  • Qualquer driver que foi instalado após a instalação do Windows terá que ser reinstalado. Isso inclui hardware virtual como o Daemon tools e o CPUIdle;
  • Qualquer software que instale um serviço (como o Cobian Backup e todos os programas antivirus e de firewall) terá que ser reinstalado. Uma exceção possivelmente é o maldito GBplugin, cujo módulo não-serviço irá detectar o que está faltando e reinstalar silenciosamente (eu não testei).
  • Alguns raros programas podem não gostar, mesmo não requerendo drivers nem serviços. Eu só tive problemas com o Delphi 5 e o Delphi 7 e ainda assim com controles de terceiros específicos.
Não é possível fazer isso com o Windows rodando, mas se vai apelar para essa solução você provavelmente nem está conseguindo mesmo entrar no Windows, porém existem várias alternativas:
  • Usar o Console de Recuperação do XP;
  • Usar o prompt de comando no DVD do Vista;
  • Usar um LiveCD qualquer que tenha a capacidade de escrever na sua partição. Todos, se sua partição for FAT32, mas só alguns recentes se sua partição for NTFS.
  • Colocar o HDD como escravo em outro PC;
  • Instalar outra cópia do Windows em um HDD secundário no mesmo PC;
  • etc.
O meu procedimento no console de recuperação é o seguinte:



Note que a primeira coisa que fiz foi fazer um backup do arquivo SYSTEM defeituoso. Nunca esqueça de fazer um, porque ele vai fazer muita falta depois se algo der errado.

Após reiniciar você já deverá poder entrar normalmente no Windows. Consulte o Gerenciador de Dispositivos para ver o que falta reinstalar. Daemon Tools e CPUIdle reclamam na hora.


Windows 9X

A mesma técnica pode ser usada no Windows 9x, com algumas diferenças. Primeiro, os arquivos do Registro são esses dois:

%windir%\system.dat
%windir%\user.dat

Muitos programas ao se instalarem fazem cópias de backup do Registro mudando apenas a extensão. Por exemplo:

Coreldraw
%windir%\system.cor
%windir%\user.cor

Norton Utilities
%windir%\system.nu
%windir%\user.nu

Edit: A cada inicialização bem sucedida o Windows 9x faz o seu próprio backup de user.dat e system.dat, mas não me lembro agora se a extensão que ele coloca é .old ou .bak.

É por essas cópias que você deve procurar primeiro, por serem mais recentes. No prompt do DOS em %windir% eu faço assim:

attrib -h -r -s user.*
attrib -h -r -s system.*

dir system.*
dir user.*

Mas cuidado para não confundir backups de system.ini (sempre menores que 64KB) com os de system.dat (sempre bem maiores).

O Windows 9x também faz uma cópia ao terminar a instalação, mas apenas do arquivo System.dat. Essa cópia fica oculta como %systemdrive%\system.1st ("1st" significa "primeiro"). Eu cansei de consertar instalações do Windows 9x realmente bagunçadas simplesmente colocando esse arquivo no lugar de system.dat e reinstalando os drivers.


 
 

Coisas que você pode fazer a partir daqui:

 
 
TwitThis
Share |

2 comentários:

cefenu disse...

Muiiiiito obrigado!! Não podia iniciar diferente! Qdo busco soluções de problemas na net é que acredito mesmo que a humanidade ainda superará o excesso de egoismo que ainda impera na raça humana. Tenho encontrado muitos "Penhas" e "Jeffersons" nos
Fóruns onde posto minhas dificuldades, pessoas interessadas em solucionar o problema tanto qto eu mesmo ou simplesmente encontro solução, como esta, deixada aí na net para todos que dela quiser fazer uso. Pessoas como voces serão sempre iluminadas por toda a eternidade. Parabéns pela boa vontadoe e o despreendimento. Vocês estão se multiplicando e isso é ótimo.

Unknown disse...

Obrigado pela suas palavras!!! Cesar!!

Mas lembre-se que todo crédito desta postagem e de autoria do Sr. Jeferson, apenas coloquei este artigo no meu Blog porque e um dos melhores artigos de ajuda.

Eu desejo que a mesma luz ilumine você e sua família.

Obrigado por visitar meu Blog , caso tenha artigos de sua autoria que deseje publicar aqui este espaço estará sempre aberto.

Um forte abraço!!

Penha
Editor do Blog

;

Pesquisa na WEB

assine o feed

siga no Twitter

Postagens

acompanhe

Comentários

comente também