segunda-feira, 14 de março de 2011

Corrigir boot de uma imagem do Windows XP

Uma das coisas que faço muito é criar uma máquina virtual a partir de uma imagem de um disco rígido com Windows. Imagem esta que foi gerada por uma ferramenta de diskdump.

Acontece que, quando se muda uma instalação do Windows para um outro hardware, quando move o disco do sistema para um outro computador, as entradas de registro para hardware de controlador de armazenamento de massa ficam erradas. E se tentar iniciar este Windows na máquina virtual, durante o boot aparece uma tela azul informando o erro Stop 0x0000007B.

Uma das formas de corrigir o Windows virtual é reinstalando o sistema a partir do CD de instalação, mas isso é demorado e pode prejudicar alguma característica do sistema, que pode servir de prova. Porém 99,9% garantido.

Outra forma é corrigir este erro com algumas ferramentas específicas para isto. O sistema "live CD" Hiren's BootCD (http://www.hirensbootcd.org/download/) contém as ferramentas necessárias.

Vamos descrever como é feito desde o começo. A imagem foi criada com uma ferramenta dd qualquer, gosto do dcfldd:

# dcfldd if=/dev/sdd of=imagem-hd.dd

Em seguida esta imagem foi convertida para o formado VDI, do VirtualBox:

# VBoxManage convertfromraw imagem-hd.dd imagem-hd.vdi --format VDI

Mova a imagem VDI para o diretório de discos rígidos do VirtualBox (~/.VirtualBox/HardDisks/), acrescente esta imagem pelo Gerenciador de Mídias Virtuais e crie a nova máquina virtual usando este disco virtual.

Ao criar e configurar a máquina virtual, é importante verificar o tipo da controladora de disco, se é IDE ou SATA, ativar o I/O APIC etc., isto é, deixar a máquina virtual o mais próximo das características do hardware real.

Em vez de iniciar a máquina virtual pelo sistema do HD, iniciei com o sistema do Hiren's BootCD, definindo o seu ISO para uma unidade óptica da máquina virtual. O famoso boot pelo CD.

No menu de inicialização do Hiren's BootCD escolha "mini Windows XP", será iniciado um Windows XP otimizado. Quando aparecer a área de trabalho deste mini Windows, dê dois cliques no ícone "HBCD Menu" para executar o "Hiren's BootCD Program Launcher". É a partir desta interface que nós vamos executar as ferramentas.

Primeiramente vamos corrigir a MBR, o setor de boot do sistema e por fim o registro do Windows.

No menu "Programs" clique e avance até:

Programs - Partition/Boot/MBR - Commandline - MbrFix

A primeira ferramenta a ser executada é esta. A interface abre um terminal DOS e uma janela com a ajuda do programa. Simplesmente execute o comando abaixo no prompt do DOS (se for Vista ou 7, adicione as opções correspondentes, para o XP ignore-as):

B:\Temp\HBCD> MbrFix /drive c: fixmbr {/vista|/win7}

A segunda ferramenta é a "Boot sector restoration tool", no menu "Programs" clique e avance até:

Programs - Partition/Boot/MBR - Commandline - BootSect

Da mesma forma, simplesmente execute o comando abaixo no prompt do DOS. Se for Vista ou 7, use a opção /nt60, para o XP use /nt52:

B:\Temp\HBCD> bootsect {/nt52|/nt60} c:

A terceira ferramenta é a BootICE, no menu "Programs" clique e avance até:

Programs - Partition/Boot/MBR - BootICE

Na aba "Physical Disk" selecione o disco em "Destination Disk".

Clique no botão "Process MBR". Na janela "Master Boot Record", em "Avaliable MBR Types" selecione "Windows NT 5.x MBR" ou "Windows NT 6.x MBR" e clique no botão "Install/Config". Feche esta janela.

Clique no botão "Process PBR". Na janela "Partition Boot Record", em "Avaliable PBR Types" selecione "NTLDR boot record (FAT/NTFS)" ou "BOOTMGR boot record (FAT/NTFS)" e clique no botão "Install/Config". Confirme na janela seguinte e feche esta janela.

Saia do BootICE.

O uso do BootICE pode ser redundância com o uso das ferramentas anteriores mas, em uma das vezes, só o uso das duas primeiras não tinha sido suficiente para corrigir. Como é sabido, cada caso é um caso.

O último passo é corrigir a controladora de disco no registro do Windows. Será usada a ferramenta FixHDC, no menu "Programs" clique e avance até:

Programs - Registry - Fix hard disk controller

Será aberta uma janela de terminal DOS já com a ferramenta em execução. Digite T para definir "TargetRoot" em C:\Windows e digite M para iniciar "Update MassStorage drivers". Simples e rápido.

Aliado à todos estes passos, um pouco de sorte, o sistema Windows da máquina virtual vai iniciar normalmente. Mas um aviso, outras diferenças de hardware também podem causar o erro "stop 0x7b", encontrei referências citando dispositivos USB conectados e até controle de energia. Como dito, cada caso é um caso, a solução apresentada aqui é para uma situação apenas.

Nenhum comentário:

Postar um comentário