Windows Vista

Preparando-se para o Windows PE 2.0

Wes Miller

 

Visão geral:

  • Tecnologia do Microsoft Windows Imaging
  • Atualizações e serviços de driver
  • Personalização de instalação autônoma

Nos últimos dois números da TechNet Magazine, discuti a história do Windows Preinstallation Environment (ou Windows PE), abordando diversas decisões de design e como se pode usar o Windows® PE hoje. Neste artigo, vou me concentrar no Windows PE 2.0, que é a versão que será entregue simultaneamente com o Windows Vista™. Não se trata de um exame minucioso sobre como usar cada recurso. Pelo contrário, este artigo visa fornecer uma visão geral dos novos recursos que serão encontrados no Windows PE 2.0. Embora eu dê algumas informações práticas, discussões detalhadas sobre como usar o Windows PE 2.0 serão apresentadas nos artigos futuros.

No início do trabalho sobre o Windows Vista, a equipe de instalação do Windows (de que eu fazia parte, na época) estava concentrada principalmente em criar uma arquitetura de instalação inteiramente nova, criar uma nova ferramenta de imagem para auxiliar a implantação e criar uma substituição para o RIS (Serviços de Instalação Remota). Em seguida, porém, nossa atenção foi deslocada para o Windows PE provisório e o Windows XP Service Pack 2 (SP2) e, mais tarde, para o Windows Server® 2003 SP1. Isso significou um período de pausa em nossos esforços de desenvolvimento para o Windows PE no Windows Vista. Mas a atualização provisória do Windows PE nos permitiu entregar um pouco da funcionalidade que havíamos planejado originalmente para inclusão na versão 2.0 do Windows PE, de modo que nossos esforços não foram postos totalmente de lado.

A equipe do Windows PE se concentrou com muita intensidade na sustentabilidade e nos casos de uso típicos pelo usuário para definir os novos recursos que queríamos incluir (consulte a barra lateral "Novidades no Windows PE 2.0"). Examinemos mais de perto os principais recursos novos.

Trabalhando com imagens

Há alguns conceitos básicos que você precisa entender com relação à tecnologia do Microsoft® Windows Imaging (WIM) e aos Serviços de Implantação do Windows. O WIM foi criado a partir do zero para ser usado na implantação do Windows na forma de imagens (chamado historicamente de imagens Sysprep). Em vez de ser baseado em setor, como a maioria das ferramentas de imagem, o WIM é baseado em arquivo. Isso significa que, em vez de replicar cada um dos setores de um disco rígido, o WIM apanha cada arquivo e os metadados a ele associados (listas de controle de acesso, nomes de arquivos curtos e longos etc.) e armazena os dados em um único arquivo.

Um dos principais benefícios das imagens do WIM é que um único arquivo WIM pode armazenar uma cópia de mais de um volume (sendo, cada uma delas, chamada de imagem de volume). E, independentemente de quantas sejam capturadas, cada arquivo único é armazenado apenas uma vez. A isso chamamos de Criação de Instância Única. Em seu funcionamento, a técnica é similar àquela usada pelos Serviços de Instalação Remota, embora a tecnologia utilizada seja muito diferente. A ferramentas para criar imagens WIM se chama ImageX. (Note que já foi chamado de XImage em algum momento, mas o nome mudou desde então.)

Enquanto desenvolvíamos o Windows Vista e seu novo mecanismo de instalação baseado em imagem (que usaria o Windows PE para implantar o sistema operacional), percebemos que talvez pudéssemos usar alguns truques para economizar espaço na mídia. Na época, não tínhamos certeza se o Windows Vista seria entregue em CD ou DVD e, portanto, tínhamos como orientação minimizar o espaço em disco ocupado pela própria instalação. Uma vez que a versão de todos os arquivos que compreendiam o Windows PE no CD era idêntica à dos arquivos contidos no arquivo WIM, que estava ali, bem a seu lado, começamos a pensar em incluir o Windows PE no próprio arquivo WIM e fazer a inicialização a partir dele. Graças ao trabalho impressionante feito por um arquiteto da equipe do sistema operacional central do Windows, nossa idéia se tornou uma série de protótipos e foi integrada ao produto antes da Pré-Estréia para Desenvolvedores do “Longhorn” (agora, Windows Vista), que teve lugar na Conferência para Desenvolvedores Profissionais, em 2003. Atualmente, o Windows PE jaz em um arquivo WIM na mídia (boot.wim) e a mídia de instalação existe em outro arquivo (install.wim). Embora a criação de instância única entre o Windows PE e o Windows que prevíamos originalmente não faça mais parte da mídia de instalação, o Windows PE ainda se beneficia do espaço reduzido que ocupa por ser compactado no disco. Com a integração da funcionalidade de inicialização RAMDisk entregue no Windows PE 1.6, a possibilidade de trocar de mídia (para remover o CD/DVD de primeira inicialização depois que esta é concluída) também foi incluída depois que o trabalho na inicialização WIM foi concluído.

Incluir uma imagem do Windows PE em um WIM é tão fácil quanto usar o ImageX para selecionar os arquivos (discutirei isso mais detalhadamente em um artigo a sair em breve) e indicar a imagem como inicializável fornecendo o sinalizador /boot ao ImageX. Pense nisso como o setor de inicialização. Quando o Gerenciador de Inicialização do Windows carrega o arquivo WIM, o marcador incluído no sinalizador/boot declara qual imagem (se houver uma ou mais de uma) no arquivo WIM é inicializável. Observe que apenas o Windows PE pode ser inicializado a partir de um arquivo WIM. Não é possível inicializar todo o Windows Vista a partir de um WIM. O WIM, como no caso de um CD ou DVD, também é somente leitura. Logo, não será possível inicializar a partir de uma imagem WIM do Windows PE e modificar algum dos arquivos. Para fazer qualquer alteração no Windows PE, será necessário modificar o próprio WIM.

Lidando com drivers

No Windows PE, sempre prestamos atenção no suporte a armazenamento em massa e ao dispositivo de rede. Mesmo assim, ainda há ocasiões em que faltou suporte do Windows PE a certos dispositivos em sistemas novos. O Windows PE 1.5 continha suporte um pouco aprimorado à inclusão de drivers de dispositivo, mas o Windows PE 2.0 agiliza ainda mais essa capacidade. Agora, todos os tipos de dispositivo têm suporte e simplesmente funcionam na inicialização, sem a necessidade de nenhuma mágica de factory.exe ou drvinst.exe. Para adicionar um novo driver de dispositivo ao Windows PE 2.0, basta executar a nova ferramenta peimg.exe que ela adicionará os drivers. A sintaxe, mostrada abaixo, é simples:

peimg.exe /inf drivername.inf builddirectory\Windows

Basta substituir drivername pelo nome do .inf (curingas, como net*.inf, são aceitos) e substituir builddirectory pelo nome do diretório onde sua imagem do Windows PE está sendo criada.

Espaço transitório

Um problema freqüente encontrado pelos aplicativos executados em Windows PE é que muitos deles (e até mesmo muitos componentes do próprio Windows) esperam ser executados em armazenamento gravável. Muitos reagem de modo desagradável ao serem executados a partir de mídia somente leitura, como um CD-R. Por exemplo, quando tentei, pela primeira vez, fazer com que o Microsoft Internet Explorer® fosse executado em Windows PE (e, finalmente, quando tentei apenas os componentes MSHTA ou o aplicativo HTML Microsoft do Windows), as DLLs fundamentais não se registraram, porque exigiam armazenamento gravável de algumas das tarefas que precisavam realizar como parte do processo de registro.

No Windows PE 2.0, isso não é um problema, já que agora existe até 32 MB de espaço transitório disponível para os arquivos que o sistema grava. Por conseqüência, os componentes que antes não funcionavam, devido à natureza somente leitura do Windows PE, agora funcionam, já que podem realizar as gravações em disco de que necessitam. Isso é diferente de um RAMDrive para espaço transitório (como tem sido rotineiramente utilizados por usuários do Windows PE), pois, agora, o espaço transitório se encontra no mesmo volume que o volume de inicialização, e não em uma outra unidade temporária.

Componentes opcionais

Assim como nas versões anteriores do Windows PE, a nova versão fornece componentes opcionais que podem ser usados para adicionar mais funcionalidade. (Obviamente, eles ocupam espaço e justamente por isso são opcionais.) Ainda há suporte disponível para o Windows Script Host (WSH), instrumentação de gerenciamento do Windows (WMI) e MSHTA. Agora, é possível adicionar suporte a MSXML, ao Ambiente de Recuperação do Windows Vista, mais fontes do Windows e Microsoft Data Access Components (MDAC) formais, que substituem o antigo suporte ADO para SQL, que incluía algum suporte a MDAC, embora não completamente. A alteração mais importante neste ponto, contudo, é a facilidade com que os componentes podem ser adicionados. Em vez de serem implementados por meio de um script WSH grosseiro, os componentes podem ser facilmente adicionados ou removidos via peimg.exe — a mesma ferramenta que discuti antes para adicionar drivers.

Pacotes de idiomas

Uma das principais filosofias originais do Windows Vista foi pegar o conceito da Interface de Usuário Multilíngüe (MUI) — um conceito introduzido no Windows 2000 e aprimorado no Windows XP — e implementá-lo em todo o sistema operacional. No Windows 2000 e no Windows XP, é possível especificar um idioma diferente do inglês, mas a própria MUI se baseia na versão em inglês do sistema operacional para dar a partida. Ou seja, você pode ter qualquer outro idioma que se quiser, desde que o inglês também esteja lá.

Isso mudou no Windows Vista. Embora eu não vá detalhar todas as especificidades, devo observar que essa mudança é significativa no Windows PE. Não havia suporte formal a MUI nas versões anteriores do Windows PE. Era preciso criar a partir do idioma localizado do Windows o suporte ao idioma que se desejava. Agora, adicionar ou alterar o suporte ao idioma funciona da mesma forma que com qualquer outro componente opcional: usando peimg.exe para adicionar ou remover pacotes de idiomas e atender às suas necessidades específicas do Windows PE.

Serviços melhores

As primeiras versões do Windows PE também não tinham suporte a serviços. Para adicionar um pacote de serviços, era preciso recriar inteiramente o Windows PE. Para adicionar um hotfix, era preciso improvisá-lo manualmente — se você fosse ousado o bastante. Dado o fato de que o Windows PE era pequeno, incluía funcionalidade Windows limitada e não era executado por um longo período de tempo, isso não era visto como um problema. Isto é, até a infame vulnerabilidade ao Blaster. Uma vez que a chamada de procedimento foi incluída no Windows PE, sob determinadas circunstâncias a vulnerabilidade podia acontecer, fazendo com que o Windows PE se reinicializasse continuamente.

Foi isso que nos levou a incluir o Windows Firewall no Windows PE 1.5. E, depois disso, a equipe passou a assegurar que as futuras versões do Windows PE pudessem ser atendidas por serviços da mesma forma que uma versão de lançamento do Windows. Uma área-chave de foco no Windows Vista foi o aprimoramento da aptidão para atendimento por serviços. O Windows PE é herdeiro disso. E, como seus outros componentes e idiomas opcionais, o Windows PE usa peimg.exe para realizar atualizações. As atualizações serão fornecidas pelo Centro de Download do Windows.

Suporte a arquivo autônomo

Você pode estar familiarizado com o winbom.ini, que foi usado em versões anteriores do Windows PE para orientar um pequeno aplicativo denominado factory.exe. Ele foi substituído nesta nova versão. Agora, há uma nova infra-estrutura XML utilizada para personalizar o Windows PE (trata-se do mesmo mecanismo XML usado para a instalação autônoma no Windows Vista) e um novo aplicativo denominado wpeinit.exe.

O wpeinit.exe usa o formato unattend.xml padrão do Windows Vista para especificar personalizações e ações do Windows PE. A Figura 1 mostra um exemplo de arquivo unattend.xml que poderia ser usado para personalizar o Windows PE. O formato do arquivo unattend.xml está documentado como parte do kit de pré-instalação de OEM Windows e do kit de instalação automatizada do Windows (WAIK), que discutirei logo em seguida.

Figure 1 Arquitetura de um arquivo unattend.xml

Arquivo XML Comentários
<ComputerName>MyWinPEMachine</ComputerName>
Configura o nome da máquina no Windows PE como MyWindowsPEMachine.
<Restart>Shutdown</Restart>
Desliga o sistema ao reiniciar (em vez de reinicializar, como faziam as versões anteriores do Windows PE).
<RunSynchronous>
 
<RunSynchronousCommand> <Order>1</Order> <Path>notepad.exe</Path> </RunSynchronousCommand>
Runs notepad.exe.
<RunSynchronousCommand> <Order>2</Order> <Path>cmd.exe</Path> </RunSynchronousCommand>
Assim que o notepad.exe se encerra, é executado o cmd.exe.
</RunSynchronous>
 
<EnableFirewall>true</EnableFirewall>
Habilita o Windows Firewall na inicialização.
<PageFile> <Size>1000</Size> <Path>C:\pagefile.sys</Path> </PageFile>
Configura um arquivo de paginação de 1GB na unidade C.
<LogPath>C:\mylog.txt</LogPath>
Registra a saída de wpeinit.exe e esse script em C:\mylog.txt.

Serviços de implantação do Windows

Como já mencionei, uma de nossas principais metas era aprimorar a instalação baseada em rede, mudando para uma infra-estrutura unificada independente de a instalação ser iniciada de um CD, DVD ou rede. Infelizmente, há uma boa dose de trabalho extra a ser feito durante a instalação do Windows quando ela é realizada remotamente (RIS). Nós queríamos remover essa complexidade e redundância tanto quanto possível e, para isso, criamos os serviços de implantação do Windows.

Como o RIS, os serviços de implantação do Windows são uma instalação baseada em ambiente de execução pré-inicialização (PXE). Porém, ao contrário do RIS, eles iniciam o Windows PE pela rede e utilizam a mesma infra-estrutura de instalação baseada em imagem que as instalações por CD ou DVD, fornecendo, ainda, o mesmo tipo de infra-estrutura de instalação empresarial centralizada que o RIS vem proporcionando desde o Windows 2000. Há muito que se discutir sobre o WIM e os serviços de implantação do Windows e há pouco espaço neste artigo. Mas não se preocupe, eu os examinarei com mais detalhes em um artigo a sair em breve; portanto, fique de olho!

Usando o WAIK

Neste momento, você pode estar imaginando como começar a ganhar intimidade com o Windows PE 2.0. O primeiro passo é obter o WAIK. As versões anteriores do Windows PE foram entregues como parte do OPK do Windows ou da mídia Software Assurance. Uma vez que o Windows PE 2.0 está programado para ser disponibilizado a todos os clientes licenciados do Windows, a Microsoft criou o WAIK para clientes não-OEM.

O WAIK fornece todas as ferramentas de criação do Windows PE para que você crie sua própria cópia do Windows PE 2.0. Atualmente, é possível obter o WAIK como parte do Windows Business Desktop Deployment (BDD) 2007 beta. Além do WAIK, o BDD dá orientações sobre como usar o WAIK e suas ferramentas. Obviamente, ele continua não dizendo que a melhor maneira de se familiarizar de verdade com o Windows PE 2.0 e com todas as outras novas tecnologias de instalação e implantação contidas no Windows Vista é começar a experimentá-los assim que você puder.

Novidades do Windows PE 2.0

O Windows PE 2.0 contém todos os recursos que se achavam no Windows PE 1.6, além de disponibilizar uma variedade de novos recursos e componentes, dentre os quais:

  • Inicialização a partir de dentro de uma imagem do Microsoft Windows Imaging (WIM)
  • Injeção de driver e suporte a Plug and Play em tempo real
  • Espaço transitório gravável (mesmo quando inicializado de CD)
  • Componentes opcionais de fácil inclusão — serviços de XML de núcleo da Microsoft, ambiente de recuperação do Windows, componentes de acesso a dados da Microsoft
  • Pacotes de idiomas
  • Suporte a arquivo autônomo
  • Ferramentas aprimoradas para a criação e atualização do Windows PE

Wes Miller é gerente de desenvolvimento da Pluck (www.pluck.com) em Austin, Texas. Antes disso, Wes trabalhou na Winternals Software, em Austin, e na Microsoft, como gerente de programas e gerentes de produtos do Windows. Para falar conosco, envie um email para technet@getwired.com.

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..