quinta-feira, 27 de outubro de 2011

Utilizando o WinPE 3.0 para backup e instalação do Windows 7

O WinPE (Windows Preinstallation Environment) é uma versão reduzida do Windows destinada especificamente para preparar um computador para uma nova instalação. Ele pode inicializar um computador novo, que não tenha um sistema operacional instalado, e ser utilizado para particionar e formatar o disco rígido, copiar imagens de disco e inicializar a instalação do Windows. É possível também utilizá-lo para realizar backup e manutenção de computadores.

A versão atual, baseada no Windows 7, é o WinPE 3.0. Neste tutorial iremos aprender como utilizar o WinPE para capturar a imagem de instalação personalizada do Windows 7 e como gravar esta imagem em novos computadores.

Pré-Requisitos

Tenha em mãos:

  • Kit de Instalação Automatizada do Windows 7 – Windows AIK. Baixe aqui.
  • Ferramenta para abrir o ISO do AIK. Recomendo o MagicDisc que é gratuito e funciona muito bem. Se preferir você pode queimar o ISO num CD.
  • Computador com sistema operacional Windows Vista, 7 ou 2008, para instalação do AIK e geração de Disco USB para inicializar o WinPE e realizar a captura e a gravação de imagem personalizada do Windows.
  • Disco USB (PenDrive) com pelo menos 512 MB de capacidade para gravar o WinPE. Pode ser maior se você quiser gravar a imagem personalizada do Windows diretamente no PenDrive. Outra opção é gerar um CD/DVD bootável contendo o WinPE. Isso também será mostrado neste tutorial.

Resumo

São esses os passos que iremos seguir:
  1. Instalação do Windows AIK.
  2. Geração de PenDrive ou CD/DVD inicializável contendo o WinPE.
  3. Captura da imagem de instalação personalizada do Windows 7.
  4. Gravação da imagem de instalação do Windows 7 em um novo computador.

Tutorial

Vamos por a mão na massa.

1. Instalação do Windows AIK

Se você já instalou o Windows AIK, pule para o próximo passo.
O Windows AIK vem no formato ISO. Utilize um programa como o MagicDisc para abri-lo ou então queime o ISO num CD/DVD.
Execute o arquivo StartCD.exe que vem no CD e na tela que se abre clique em Instalação Windows AIK.

Windows AIK
Siga os passos da instalação deixando os valores padrão. Feche a janela ou clique em Sair.
Simples, fácil e rápido.

2. Geração de PenDrive ou CD/DVD inicializável contendo o WinPE.

Essa é a tarefa mais difícil.

Passo 1:

Com o Windows AIK instalado, clique em Iniciar,Todos os Programas, Microsoft Windows AIK. Clique com o botão direito do mouse sobre Prompt de Comando das Ferramentas de Implantação e escolha a opção Executar como administrador.
Uma nova janela como a abaixo será mostrada:

Prompt de Comando das Ferramentas de Implantação

Insira o PenDrive em uma porta USB de seu computador.
O PenDrive será formatado para receber o WinPE, então aproveite para fazer um backup do mesmo antes de prosseguir.
No Prompt de comando digite Diskpart. Uma nova tela será aberta:

diskpart.exe

Nesta nova tela digite list disk. Uma lista contendo todos os discos encontrados será exibida. Identifique o seu PenDrive. No meu caso é o disco 2, conforme ilustra a imagem abaixo:

diskpart: list disk

Digite os comandos na sequencia abaixo.
ATENÇÃO:  Troque 2 pelo número de seu disco.
select disk 2
clean
create partition primary
select partition 1
active
format fs=fat32 quick
assign
exit
 
A saída será algo parecido com isso:

diskpart: format disk

Quando você digitar exit, a janela do Diskpart será fechada e você retornará para o Prompt de comando das Ferramentas de Implantação. Digite:

copype.cmd x86 c:\winpe_x86
 
Se preferir uma imagem de 64 bits troque x86 por amd64 no comando acima.
A estrutura do WinPE será copiada para a pasta winpe_x86. Não se preocupe em criar esta pasta, ela será criada automaticamente para você. O resultado será o seguinte:

copype.cmd x86 c:\winpe_x86

Passo 2:

Precisamos da ferramenta imagex para permitir a captura e gravação da imagem personalizada do Windows 7. Este utilitário não vem por padrão no WinPE.
Para incluir esta ferramenta vamos primeiro montar a imagem do WinPE, copiar o utilitário e por fim salvar a imagem do WinPE.
Para abrir a estrutura do WinPE digite:

imagex /mountrw winpe.wim 1 mount
 
ATENÇÃO: É importante executar o Prompt de Comando das Ferramentas de Implantação como usuário administrador, caso contrário a execução do comando acima irá falhar.
O WinPE será montado na pasta mount:

imagex /mountrw winpe.wim 1 mount
Copie o utilitário imagex para o WinPE que acabou de ser montado, digitando o comando:
copy "c:\Program Files\Windows AIK\Tools\x86\imagex.exe" c:\winpe_x96\mount\Windows\
Agora feche e salve as alterações na imagem do WinPE com a execução do seguinte comando:
imagex /commit /unmount mount
A saída da execução será a seguinte:
imagex /commit /unmount mount

Passo 3:

Copie a imagem do WinPE para a pasta correta e com o nome correto para permitir a inicialização do PenDrive:

copy c:\winpe_x86\winpe.wim c:\winpe_x86\ISO\sources\boot.wim
 
Por fim copie o WinPE para o PenDrive. Substitua G: pela letra atribuída automaticamente para o seu PenDrive.

xcopy c:\winpe_x86\ISO\*.* /e G:\
 
A execução do xcopy será a seguinte:

xcopy c:\winpe_x86\ISO\*.* /e g:

Agora você pode utilizar o PenDrive para inicializar um computador utilizando o WinPE.
Se quiser gerar uma imagem ISO inicializável para gravar num CD ou DVD é só executar o seguinte comando neste mesmo prompt de comando:

oscdimg -n -bc:\winpe_x86\etfsboot.com c:\winpe_x86\ISO c:\winpe_x86\winpe_x86.iso

Isso irá gerar o arquivo winpe_x86.iso na pasta c:\winpe_x86. Utilize o programa de sua preferência para gravar o ISO em um CD ou DVD.
A figura abaixo ilustra a execução do comando oscdimg utilizado para gerar o ISO do WinPE:

oscdimg -n -bc:\winpe_x86\etfsboot.com c:\winpe_x86\ISO c:\winpe_x86\winpe_x86.is

ATENÇÃO: A inicialização por PenDrive USB costuma ser bem mais lenta do que quando realizada por CD ou DVD. Isto ocorre pois a maioria dos computadores inicializa com a USB em modo 1.0, com velocidade extremamente reduzida. Verifique o manual de sua placa mãe para saber se é possível inicializar com a USB em modo 2.0 ou superior para aumentar a velocidade do boot. Outra opção é utilizar um CD ou DVD ou ainda realizar o boot pela rede. Falarei como fazer o boot do WinPE pela rede num próximo artigo.

3. Captura da imagem de instalação personalizada do Windows 7

Utilize o PenDrive ou o CD/DVD preparado no passo anterior e utilize-o para inicializar o computador que contém a imagem do Windows 7 que deseja capturar.
Algumas máquinas mostrar um menu de boot quando se pressiona F8 ou F12 na inicialização. Outras precisam ser configuradas na BIOS para inicializar por um disco USB. Normalmente a tecla DEL permite acessar a BIOS e configurá-la. Verifique o manual de sua placa mãe para saber como inicializar utilizando um disco USB.
Após a inicialização, uma tela como esta será mostrada:

WinPE em execução

Só feche esta janela quando tiver concluído todas suas atividades. Ao fechar esta janela o WinPE é encerrado e o computador é automaticamente reinicializado.
Vamos utilizar o utilitário imagex que copiamos para o WinPE para fazer a captura da imagem de instalação personalizada do Windows 7.

O drive C:\ deve estar montado como o disco principal do computador e é ele que vamos capturar. O drive X:\ é o drive montado como o raiz do WinPE.

Precisamos de um lugar para salvar a imagem personalizada. Pode ser um PenDrive, nesse caso insira o PenDrive em uma porta USB do computador e verifique qual a letra mapeada. Outra opção é uma pasta da rede. Para mapear uma pasta da rede execute o seguinte comando:

net use Z: \\nome-do-servidor\nome-do-compartilhamento
 
Onde Z: é a unidade que vamos utilizar para mapear a pasta da rede, nome-do-servidor é o nome DNS ou o IP de seu servidor de arquivos e nome-do-compartilhamento é o nome da pasta compartilhada. Você pode compartilhar uma pasta de seu próprio computador para fazer a cópia. Se for necessário o Windows irá perguntar por um usuário e senha para se conectar a pasta compartilhada.

Para capturar a imagem do drive C: para a pasta Backup do drive Z: com o nome do arquivo sendo imagem.wim, com compressão fast (outras opções são maximum e none) e nome da imagem "Microsoft Windows 7 Professional (x86)" digite o seguinte comando:

imagex /compress fast /capture c:\ z:\Backup\imagem.wim "Microsoft Windows 7 Professional (x86)"

A saida será a seguinte:

imagex /compress fast
No final do processo, que demora um pouco, você terá uma imagem de sua instalação do Windows, pronta para ser levada para outros computadores.

4. Gravação da imagem de instalação do Windows 7 em um novo computador

Utilize seu PenDrive ou CD/DVD contendo o WinPE com o imagex para inicializar o novo computador que irá receber a imagem personalizada do Windows 7.

A primeira coisa a fazer é preparar o disco utilizando o diskpart. Os comandos são os seguintes:

diskpart
select disk 0
clean
create partition primary
format quick fs=ntfs
assign letter="C"
active
exit
 
A saída será a seguinte:

Script diskpart

Você pode automatizar essa tarefa criando um script. Basta criar um arquivo txt contendo os comandos a serem executados pelo diskpart, por exemplo diskpart.txt:

select disk 0
clean
create partition primary
format quick fs=ntfs
assign letter="C"
active
exit
 
E um outro arquivo, por exemplo disco.cmd:

diskpart /s diskpart.txt
 
Grave estes dois arquivos na pasta Windows\system32 do ponto de montagem do WinPE, da mesma forma como fizemos com o imagex.exe no passo 2 acima. Dai quando você inicializar a máquina pelo WinPE, basta executar disco.cmd para preparar o disco. Outros scripts podem ser gravados para facilitar suas tarefas.

Agora que o disco está preparado, vamos gravar a imagem que geramos antes. Coloque o PenDrive com a imagem salva, ou então monte a pasta de rede que contém a imagem com o comando net use.
Para aplicar a imagem que está no arquivo imagem.wim na pasta backup do drive Z: para o drive C:, digite o comando:

imagex /apply Z:\backup\imagem.wim 1 C:\
 
O parâmetro 1 indica que é a primeira imagem do arquivo .wim. Um arquivo .wim pode conter diversas imagens, como só gravamos uma, então o número da imagem é 1.

imagex /apply Z:\backup\imagem.wim 1 C:\

Ainda falta ajustar o BCD (Boot Configuration Data) que é um arquivo especial utilizado pelo Windows 7 para gerenciar qual o disco e partição utilizados para inicializar a máquina.

Por algum motivo o windows não reconstrói o BCD da maneira correta e precisamos corrigir alguns valores.

Para listar os valores contidos no BCD execute bcdedit sem parâmetros. Você verá uma tela como essa:

bcdedit

Note que os parâmetros device e osdevice estão com valor unknown. Isto fará com que o computador mostre uma mensagem de erro de inicialização de número 0xc000000e e informando que não consegue encontrar o arquivo \windows\system32\winload.exe. Para corrigir estas informações no BCD digite:

bcdedit /set {default} device Partition=C:
bcdedit /set {default} osdevice Partition=C:
bcdedit /set {bootmgr} device Partition=C:

Observações

Você pode colocar os comandos net use, diskpart, imagex e bcdedit todos em um único script para facilitar a gravação de imagens e evitar erros.

Minha sugestão de script é a seguinte:

@echo off
echo Montando pasta de compartilhamento contendo a Imagem do Windows 7...
:credenciais
net use Z: \\nome-do-servidor\nome-do-compartilhamento
if not %errorlevel% == 0 goto credenciais
echo Preparando o disco local para receber a imagem do Windows 7...
diskpart /s diskpart.txt
echo Gravando a imagem do Windows 7 no disco local...
imagex /apply Z:\backup\imagem.wim 1 C:\
echo Corrigindo informações do BCD...
bcdedit /set {default} device Partition=C:
bcdedit /set {default} osdevice Partition=C:
bcdedit /set {bootmgr} device Partition=C:
 
Dica 1
Coloque este script, com o nome imagem.cmd, por exemplo, juntamente com o script diskpart.txt acima, na pasta Windows\System32 do ponto de montagem do WinPE, da mesma forma que realizado com o imagex.exe no passo 2. Quando o WinPE inicializar basta executar imagem.cmd para ter o disco da nova máquina preparado e com a imagem personalizada do Windows 7 gravada.
Agora é só fechar a janela de comandos do WinPE para reinicializar o computador e prosseguir com a instalação automatizada do Windows 7.

Dica 2
Para colocar a imagem personalizada do Windows 7 dentro do mesmo pendrive onde gravou o WinPE, grave a imagem do Windows 7 na pasta raiz do pendrive, ou crie uma pasta especifica para ela. Não coloque a imagem dentro do arquivo wim do WinPE pois isto não irá funcionar. Quando o WinPE inicializar você terá o drive X: mapeado para o WinPE e um outro drive mapeado para o pendrive.
O único problema com esta abordagem é que a letra do pendrive pode variar de computador para computador e um script para gravar a imagem do Windows de forma automática precisa levar este fato em consideração. Infelizmente não há um comando mágico para descobrir a letra mapeada mas, podemos fazer um script que descubra a letra mapeada do pendrive desde que ele possua um label conhecido (Você pode  atribuir um label para o pendrive no momento da formatação com o diskpart utilizando o comando: format quick fs=ntfs label="Windows7", ou depois de formatado utilizando o comando label ou ainda através do Windows Explorer).

O script abaixo pode ser utilizado para obter a letra mapeada para um pendrive baseado no nome do volume:

@echo off
:: Obtem a letra de um drive baseado no nome do Volume
:: Blog do Nerd (c) 2010

set TMPFILE=%TEMP%\getdrive.tmp
set DRIVELETTERS=abcdefghijklmnopqrstuvwxyz
set RESULT=
set LABEL=%1

if "%LABEL%" == "" goto :USO
set LABEL=%LABEL:"=%
for /L %%g in (0,1,25) do call :CHECKVOLUME %%g %*
if not "%RESULT%"=="" echo %RESULT%
if "%RESULT%"=="" echo Letra de drive para volume "%LABEL%" nao encontrado.
goto :END

:CHECKVOLUME
:: Se resultado encontrado: termina
if not "%RESULT%"=="" goto :EOF
call set DRIVE=%%DRIVELETTERS:~%1,1%%
vol %DRIVE%: > "%TMPFILE%" 2>&1
if not "%ERRORLEVEL%"=="0" goto :EOF
set ACHOU=0
for /F "usebackq tokens=3 delims= " %%g in (`find /C /I "%LABEL%" "%TMPFILE%"`) do set ACHOU=%%g
set /A ACHOU=%ACHOU% + 0
if not "%ACHOU%"=="0" set RESULT=%DRIVE%:
goto :eof

:USO
echo %0
echo .
echo Obtem a letra de um drive baseado no nome do Volume
echo Blog do Nerd (c) 2010
echo.
echo Uso: %0 "LABEL"

:END
if exist "%TMPFILE%" del "%TMPFILE%"
Para chamar este script dentro de outro e atribuir a letra do pendrive para a variável DRIVEUSB, utilize o seguinte:

for /f "delims=" %a in ('c:\temp\getdrive "Windows 7"') do @set DRIVEUSB=%a
 
Não esqueça de substituir "Windows 7" pelo nome de volume escolhido para seu pendrive.

Fonte: BlogdoNerd

0 comentários:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...