Geek de TI Como inicializar em rede (PXE) o disco de recuperação WinPE com o PXElinux v5 & Wimboot
Alguma vez você já desejou ter o “Windows Recovery Console” rodando para aquele procedimento de manutenção ou programa que você quer usar, sem ter que lembrar onde você esqueceu o CD? HTG explica como inicializar o WinPE a partir do PXE.
Crédito da foto: Alfred Hermida via Compfight cc
O ambiente de pré-execução do Windows (WinPE) é a versão do Windows que a maioria das pessoas conhece como a que inicializa o CD de instalação. Ao longo dos anos, projetos inteiros foram criados para dar a possibilidade de ter uma espécie de ambiente “Windows Live” como muitas distribuições Linux. Neste guia, teremos o windows PE a partir da inicialização do CD de instalação do PXE apenas para que possamos usá-lo para executar o utilitário de atualização do BIOS da Dell. Você é encorajado a continuar a exploração deste poço sem fundo de bondade geek…
visão global
Mostramos a você o que é o PXE e como você pode instalar facilmente um servidor para ele (e muito mais) com o FOG, hoje iremos adicionar mais uma extensão ao FOG. Geralmente o procedimento de hoje será:
- Atualize o PXElinux para v5.01 ou superior, se ainda não estiver instalado.
- Adicione o módulo wimboot.
- Copie a imagem WIM e os arquivos de suporte do CD de instalação do Windows.
- Adicione a entrada do menu.
- Use o WinPE inicializado para obter um "console de recuperação do Windows" em funcionamento.
Vamos fazer o acima, porque seguir o modo “regular” do Kit de Instalação Automatizada do Windows (WAIK) força você, na melhor das hipóteses, a instalá-lo em sua máquina e passar por um processo não tão simples para manipular o arquivo WIM e seu suporte arquivos em seu formulário WDS / RIS. Embora existam alternativas ao Linux, como a do projeto UDA (que é o servidor PXE que eu usei antes do FOG), usando dessa forma você simplesmente substitui alguns arquivos no servidor PXE uma vez (o que você provavelmente teria de qualquer forma) e copia o arquivo. arquivo WIM inalterado e arquivos de suporte diretamente do CD do Windows para o servidor PXE.
A única coisa a notar é que, embora pareça que você pode iniciar o procedimento de instalação do Windows dessa maneira, na verdade, não é possível concluí-lo e tornar isso possível está além do escopo deste guia..
Vamos começar a quebrar :)
Atualize o PXElinux para a V5.01
No momento em que este artigo foi escrito, a versão do Syslinux no repositório do Ubuntu ainda é 4.05. Eu estou supondo que isso é porque a equipe Syslinux decidiu agitar as coisas com o ramo V5 e mudaram a maneira como seus módulos COM32 trabalham (agora baseados em ELF) e mudaram o “núcleo” para requerer uma biblioteca (ldlinux.c32) para qualquer coisa além de “inicialização pura”. Isso torna muito possível encontrar uma quebra, para qualquer um que esteja acostumado com o “jeito antigo”. Não se preocupe, nós iremos baixar os arquivos necessários manualmente e fazer com que sua instalação FOG não perca uma batida.
Nós estaremos usando a versão 5.01, pois é a última estável release da filial V5 no momento em que este texto foi escrito e é o mesmo em que a equipe da Syslinux trabalhou junto com a equipe wimboot para fazer este procedimento específico funcionar.
NotaOutra razão pela qual a versão mais recente ainda não faz parte do repositório do Ubuntu (IMHO) é que, pelo menos no Citrix-Xen, os convidados do HVM não conseguem inicializar nada além dos menus PXE. Outros hipervisores como o VMware, Hyper-V e VirtualBox, bem como máquinas físicas, estão bem com a nova versão.
Se a nota acima não afeta você, prossiga.
Obtenha a versão 5.01 do PXElinux diretamente do Kernel.org e extraia-a no servidor FOG por:
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.tar.bz2
tar xvhf syslinux-5.01.tar.bz2
Crie o diretório que conterá as bibliotecas recém-requeridas:
mkdir -p / tftpboot / howtogeek / libs
Copie os arquivos de biblioteca necessários para esse diretório, para que eles estejam disponíveis para os clientes no tempo de execução:
cp -av syslinux-5.01 / com32 / lib / libcom32.c32 / tftpboot / howtogeek / libs /
cp -av syslinux-5.01 / com32 / libutil / libutil.c32 / tftpboot / howtogeek / libs /
cp -av syslinux-5.01 / com32 / modules / linux.c32 / tftpboot / howtogeek / libs /
Anexe o “caminho” a este diretório, ao arquivo de configuração “default” já existente, editando-o ou emitindo o seguinte:
echo "PATH howtogeek / libs" >> /tftpboot/pxelinux.cfg/default
Copie o ldlinux.c32 recém-requerido para a raiz do servidor TFTP, emitindo:
cp -av syslinux-5.01 / com32 / elflink / ldlinux / ldlinux.c32 / tftpboot /
Atualize o mecanismo gráfico (vesamenu.c32) para corresponder a esta nova versão:
cp -av syslinux-5.01 / com32 / menu / vesamenu.c32 / tftpboot /
Parabéns, seu servidor PXE agora está atualizado para v5.01 e tudo o que já estava funcionando (a menos que você seja afetado pela "nota" do início deste segmento) deve continuar a fazê-lo.
WIMboot
Este bootloader faz parte do projeto iPXE e eles descrevem da seguinte forma:
wimboot
é um gerenciador de partida para o formato Windows Imaging (.wim
) arquivos. Ele permite inicializar um ambiente Windows PE (WinPE) de um disco RAM, sem desperdiçar a memória usada para a imagem de disco RAM.
Faça o download da versão mais recente do site deles:
wget http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
Instale o unzip no seu servidor FOG se ele estiver faltando:
o aptitude instala o unzip
Descompacte o pacote wimboot:
descompacte wimboot-latest.zip
Copie o módulo wimboot para o diretório “libs” que criamos no segmento anterior:
cp -va wimboot * / wimboot / tftpboot / howtogeek / libs /
Isso é tudo. O bootloader wimboot está pronto para ser chamado.
Arquivos de CD do Windows
Crie um novo diretório no servidor FOG para armazenar os arquivos sobre os quais copiaremos:
mkdir -p / tftpboot / howtogeek / WinPE /
Coloque o CD de instalação original do Windows 7 na sua unidade de CD-ROM e copie os arquivos listados abaixo neste diretório:
\ bootmgr
\ boot \ bcd
\ boot \ boot.sdi
\ sources \ boot.wim
Sim, é assim tão simples e você não precisa manter a estrutura de diretórios no CD para que isso funcione.
Observação: para que as atualizações do BIOS da Dell funcionem, descobri que é necessário usar uma versão de 32 bits do Windows.
Adicione a entrada do menu
Crie a entrada do menu PXE editando o menu “Utils”:
sudo vim /tftpboot/howtogeek/menus/utils.cfg
Anexe a ele o seguinte:
rótulo WinPE
com32 linux.c32 howtogeek / libs / wimboot
APPEND wimboot initrdfile = / howtogeek / WinPE / bootmgr / howtogeek / WinPE / bcd / howtogeek / WinPE / boot.sdi / howtogeek / WinPE / boot.wim
Parabéns, agora você tem o WindowsPE no seu servidor PXE. :)
Nota: pode parecer que está pendurado no arquivo “wim”, mas não é. Na verdade, ele está transferindo os 140 MB de um arquivo para o cliente através do TFTP, o que leva mais tempo do que os arquivos geralmente pequenos que são transferidos dessa maneira..
Aqui está a imagem para provar que aconteceu.
A VM acima, foi executada usando o VMware-player, teve o Ubuntu instalado em seu HD e foi inicializado pelo PXE no WinPE.
Console de Recuperação do Windows
Novamente, como mencionado na visão geral, embora pareça que você possa iniciar o procedimento de instalação do Windows dessa maneira, na verdade, não é possível concluí-lo e tornar isso possível está além do escopo deste guia..
Com isso dito, apenas para dar um exemplo do porquê isso seria útil, usaremos esse ambiente para executar uma atualização do BIOS da Dell..
Obtenha a atualização que você precisa para executar no site da Dell e coloque-a em um Disk-On-Key. Coloque o disco na chave e o PXE inicialize o cliente.
Para acessar o console de recuperação, na janela principal, como na captura de tela acima, clique em "Avançar".
Clique em "Reparar o seu computador".
Escolha “Use recovery tools” e clique em “Next”.
Clique em "Prompt de comando".
Uma vez no prompt de comando, você terá que descobrir o que “letra de unidade” WinPE decidiu designar para seu Disk-on-Key. Para fazer isso, faça o sistema enumerar todas as letras de unidade atribuídas atualmente, emitindo:
wmic logicaldisk recebe nome
Agora, excluindo as letras A: e X: e talvez até C: (embora não seja um dado), percorra as letras da unidade e procure o Disk-on-Key emitindo:
Driveletter:
dir
Depois de encontrar a unidade correta, execute o arquivo e você verá algo como o abaixo:
Parabéns, está tudo pronto para atualizar :)
Eu conheço o Kung Fu ...