Olá a todos!
Este artigo descreve as etapas que você precisa seguir para adicionar o recurso de inicialização UEFI ao seu WDS.
Aqueles. As instruções neste artigo pressupõem que você já tenha a seguinte configuração:
1. Windows Server 2012R2 (или новее)
2. Полностью настроенный DHCP для работы с WDS
3. Собственно сам WDS
4. IIS
5. Виртуальная машина или ПК с Ubuntu
Além disso, aqui estão descritas ações que não me trouxeram o resultado adequado.
Eu os descrevi para facilitar a busca e economizar seu tempo.
Prefácio
Fiz um WDS no trabalho com muitas guloseimas, tk. cansado de correr constantemente com um monte de pen drives e sobrescrevê-los.
A propósito, esses artigos me ajudaram:
E estava tudo bem, novas imagens foram adicionadas para carregar, a imagem winPE foi repleta de novos recursos e tudo funcionou.
Mas, nem todos os dispositivos suportam o modo de inicialização BIOS / legado ou, se o fizerem, sua inclusão pode estar em um local nada óbvio.
Sim, e instalar o windows em modo legado, quando é possível instalar em UEFI, não é legal.
Como resultado, decidi adicionar a capacidade de inicializar no UEFI e fui para o Google.
Mas não encontrei informações estruturadas sobre como obter um WDS + UEFI funcional.
Na verdade, é por isso que decidi escrever este artigo.
Antes de começar, descreverei o problema que levou mais tempo.
Ao adicionar UEFI ao WDS, a seguinte situação não óbvia é possível:
Se você adicionar um arquivo de inicialização ao WDS e tentar inicializar no dispositivo
em UEFI você vê o seguinte texto:
The selected boot device failed. Press <Enter> to Continue.
Ou Boot Device Not Found
Mas carregar no legado funciona para você.
Então uma das opções possíveis é a ausência de um arquivo wdsmgfw.efi,
pelo seguinte caminho: %WDSpath%Bootx64wdsmgfw.efi
Você pode pegar aqui: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Ou, se por algum motivo este arquivo estiver faltando para você, eu postei no
Obrigado pessoal por esta solução.
Com esse problema, matei mais tempo, porque. Achei que o problema estava em algum lugar na configuração WDS ou DHCP.
Políticas configuradas adicionando classes de fornecedores para várias arquiteturas e definindo as opções de DHCP 060, 066, 067.
Arquiteturas em ASCII para configuração de DHCP
PXEClient:Arch:00000 - BIOS/Legado
PXEClient:Arch:00006 - UEFI x86
PXEClient:Arch:00007 - UEFI x64
Além disso, tentei várias opções para arquivos de inicialização. .efi
- syslinux
- grub 2
Também tentei encontrar o problema no log de eventos.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics
Mas, como eu disse acima, o problema estava no arquivo wdsmgfw.efi.
Eu mesmo o apaguei acidentalmente ou não foi copiado durante a instalação
e configuração do WDS.
Bem, vamos começar!
Instrução
Estágio 1 - Verifique se o WDS está funcionando
Pegue qualquer dispositivo ou máquina virtual com suporte para inicializar no modo UEFI na rede e tente inicializar.
Você deve ter a seguinte imagem:
Se assim for, ótimo, você pode continuar.
Se não, veja o que escrevi no prefácio.
Estágio 2 - Construindo o Arquivo de Inicialização iPXE
Lançamos o Ubuntu pré-preparado, abrimos um terminal e colamos esta linha:
git clone https://git.ipxe.org/ipxe.git ipxe
Aqui, gostaria de fazer uma pequena observação de que talvez você precise adicionar pacotes ao Ubuntu necessários para compilar C e C ++.
Acabei de instalá-los.
Baixou? - Ótimo!
Agora você precisa fazer um arquivo de configuração para a montagem.
No terminal, escrevemos:
cd ipxe/src
gedit chain.ipxe
E cole o seguinte código neste arquivo e salve:
#!ipxe
dhcp
chain http://%IP-address-your-IIS-server%/install.ipxe
Voltamos ao terminal e iniciamos a compilação:
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
Se tudo estiver em ordem, você deve obter a seguinte saída no terminal:
E arquivo ipxe.efi, pelo caminho: ipxe/src/bin-x86_64-efi/ipxe.efi
Se por algum motivo você não conseguir compilar sozinho,
eu anexei o meu
Ele é compilado para inicializar a partir http://192.168.0.100/install.ipxe
Isso é tudo para o Ubuntu.
Etapa 3 - Adicionando ipxe.efi ao WDS
Pegamos o arquivo que recebemos na segunda etapa e copiamos ao longo do caminho:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Depois de renomeá-lo para BOOTX64.EFI.
Não é necessário, é apenas mais conveniente.
Então nós lançamos cmd em nome do administrador e escreva os seguintes comandos:
wdsutil /set-server /bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi
и
wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi
Isso definirá o arquivo resultante a ser baixado via WDS.
Vamos verificar a configuração:
wdsutil /get-server /Show:Config
Também copiei o arquivo ipxe.efi, renomeei-o para BOOTIA32.EFI e configurei a inicialização para ele, apenas por precaução. architecture:x86uefi
Mas, em geral, isso não faz sentido, porque. O arquivo Bootmgfw.efi não suporta x86
Vamos verificar o que aconteceu.
Ótimo, o WDS envia nosso arquivo para download e ele, por sua vez, procura a configuração pelo caminho: http://192.168.0.100/install.ipxe
Passo 4 - Configuração do Menu
Vá para a pasta raiz do seu site.
O padrão é: C:inetpubwwwroot
Criar um arquivo de texto instalar.ipxe.
e configurá-lo de acordo com
Há também uma língua russa
eu aproveitei
exemplo de configuração install.ipxe
#!ipxe
:start
menu Please choose an operating system to start/install
item --gap Start Win PE
item WinPE-x64 WinPE x64
item --gap ipxe shell
item shell Drop to iPXE shell
choose target && goto ${target}
:failed
echo Booting failed, dropping to shell
goto shell
:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start
:WinPE-x64
kernel http://192.168.0.100/wimboot
initrd http://192.168.0.100/peSE/Boot/bcd
initrd http://192.168.0.100/peSE/Boot/boot.sdi
initrd http://192.168.0.100/peSE/Boot/peSE64.wim
boot || goto failed
Você pode ler sobre a configuração para carregar o winPE
Estágio 5 - tipos MIME
Depois de criar o menu e adicionar todos os arquivos necessários à pasta raiz do IIS,
você precisa dar-lhes acesso.
Porque mesmo se você tentar baixar um arquivo do navegador, receberá um erro em seu endereço: HTTP 404.3 - Not Found
.
Para fazer isso, você precisa adicionar tipos MIME no painel de controle do IIS, de acordo com
com extensões de arquivo que você baixará via http.
Não procurei qual tipo MIME é melhor para esse fim e perguntei application/octet-stream
, depois do qual tudo funcionou.
Para arquivos que não possuem extensão, use um ponto.
Aqui, então:
Conclusão
Por fim, temos a capacidade de inicializar em uma rede local por meio de UEFI.
Se fizermos tudo corretamente, haverá algo como este menu de seleção de inicialização:
Se você preparou as ferramentas básicas e não se incomodará com a configuração, levará cerca de 10 a 20 minutos para implementar esse recurso.
Levei 2 dias úteis, porque. Eu tive que pesquisar muito no Google.
Implementação bem-sucedida!
Obrigado pela atenção e muito obrigado às pessoas cujos artigos me ajudaram!
Em Habré é:
Fonte: habr.com