Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

Ola a todos!

Este artigo describe os pasos que debes seguir para engadir a capacidade de arranque UEFI ao teu WDS.

Eses. As instrucións deste artigo supoñen que xa tes a seguinte configuración:

1. Windows Server 2012R2 (или новее)
2. Полностью настроенный DHCP для работы с WDS
3. Собственно сам WDS
4. IIS
5. Виртуальная машина или ПК с Ubuntu

Ademais, aquí descríbense accións que non me deron o resultado axeitado.
Describínos para facilitar a busca e aforrar tempo.

Prefacio

Fixen un WDS no traballo con moitas golosinas, tk. canso de correr constantemente cunha chea de unidades flash e sobreescribilas.

Estes artigos axudáronme por certo:
Engadindo versatilidade WDS
Menú de inicio PXE con System Center Configuration Manager


Parece así

Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

E todo estaba ben, engadíronse novas imaxes para cargar, a imaxe winPE estaba cuberta de novas funcións e todo funcionou.

Pero, lonxe de que todos os dispositivos admitan o modo de inicio BIOS / Legacy, ou se o fan, a súa inclusión pode estar nun lugar moi pouco obvio.

Si, e instalar Windows en modo herdado, cando é posible instalalo en UEFI, non é xenial.

Como resultado, decidín engadir a posibilidade de iniciar UEFI e fun a Google.

Pero non atopei información estruturada sobre como obter un WDS + UEFI que funcione.
En realidade, por iso decidín escribir este artigo.

Antes de comezar, describirei o problema que levou máis tempo.

Ao engadir UEFI a WDS, é posible a seguinte situación, bastante non obvia:

Se engades un ficheiro de inicio a WDS e cando intentas iniciar o dispositivo
en UEFI ves o seguinte texto:
The selected boot device failed. Press <Enter> to Continue.
Ou Boot Device Not Found
Pero a carga no legado funciona para ti.
Entón, unha das opcións posibles é a ausencia dun ficheiro wdsmgfw.efi,
polo seguinte camiño: %WDSpath%Bootx64wdsmgfw.efi

Podes levalo aquí: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Ou, se por algún motivo falta este ficheiro, publiqueino en Google.
Por esta solución, grazas rapaces de reddit.

Con este problema, matei a maior parte do tempo, porque. Pensei que o problema estaba nalgún lugar da configuración WDS ou DHCP.

Políticas configuradas engadindo clases de provedores para varias arquitecturas e configurando as opcións DHCP 060, 066, 067. Instrución para configurar políticas DHCP.

Arquitecturas en ASCII para configurar DHCP

PXEClient:Arch:00000 - BIOS/Legacy
PXEClient:Arch:00006 - UEFI x86
PXEClient:Arch:00007 - UEFI x64

Ademais, probei varias opcións para os ficheiros de arranque. .efi

  • syslinux
  • gruba 2

Tamén tentei atopar o problema no rexistro de eventos.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Pero, como dixen anteriormente, o problema estaba no arquivo wdsmgfw.efi.
Ou o eliminei por accidente ou non o copiei durante a instalación
e configurando WDS.

Ben, imos comezar!

Instrución

Fase 1 - Verifique que WDS funciona

Colle calquera dispositivo ou máquina virtual con soporte para o arranque en modo UEFI a través da rede e tenta iniciar.

Deberías ter a seguinte imaxe:

Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

Se é así, xenial, podes continuar.
Se non, mira o que escribín no prefacio.

Etapa 2: creación do ficheiro de arranque iPXE

Lanzamos Ubuntu previamente preparado, abrimos un terminal e pegamos esta liña:

git clone https://git.ipxe.org/ipxe.git ipxe

Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

Aquí gustaríame facer unha pequena observación de que pode ter que engadir os paquetes necesarios para compilar C e C++ a Ubuntu.
Só os teño instalados.

Descargado? - Xenial!
Agora cómpre facer un ficheiro de configuración para a montaxe.
No terminal escribimos:

cd ipxe/src
gedit chain.ipxe

E pega o seguinte código neste ficheiro e despois gárdao:

#!ipxe

dhcp
chain http://%IP-address-your-IIS-server%/install.ipxe

Volvemos ao terminal e iniciamos a compilación:

make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe

Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

Se todo está en orde, deberías obter a seguinte saída no terminal:

Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

E arquivo ipxe.efi, polo camiño: ipxe/src/bin-x86_64-efi/ipxe.efi
Se por algún motivo non podes compilar por conta propia,
Adxunto o meu файл.
Compilouse para arrincar desde http://192.168.0.100/install.ipxe

Iso é todo para Ubuntu.

Paso 3 - Engadir ipxe.efi a WDS

Collemos o ficheiro que recibimos na segunda etapa e copiamos ao longo do camiño:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Despois de cambiarlle o nome a BOOTX64.EFI.
Non é necesario, é máis cómodo.

Despois lanzamos cmd en nome do administrador e escriba 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

Isto establecerá que o ficheiro resultante se descargue a través de WDS.

Comprobamos a configuración:

wdsutil /get-server /Show:Config

Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

Tamén copiei o ficheiro ipxe.efi, renomeei BOOTIA32.EFI e configurei o arranque para el, por se acaso. architecture:x86uefi
Pero en xeral, isto non ten sentido, porque. O ficheiro Bootmgfw.efi non é compatible con x86

Imos comprobar o que pasou.
Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI
Xenial, WDS envía o noso ficheiro para descargar e, á súa vez, busca a configuración ao longo do camiño: http://192.168.0.100/install.ipxe

Etapa 4 - Configuración do menú

Vaia ao cartafol raíz do seu sitio.
O valor predeterminado é: C:inetpubwwwroot

Crea un ficheiro de texto install.ipxe.

e configúrao segundo documentación e as túas necesidades.
Tamén hai unha lingua rusa описание comandos.
Disfrutei isto instrucións ao configurar o seu WDS.

Exemplo de configuración 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

Podes ler sobre a configuración para cargar winPE aquí.

Etapa 5 - Tipos MIME

Despois de crear o menú e engadir todos os ficheiros necesarios ao cartafol raíz de IIS,
cómpre darlles acceso.

Porque aínda que intentes descargar un ficheiro do navegador, recibirás un erro no seu enderezo: HTTP 404.3 - Not Found.
Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

Para iso, cómpre engadir tipos MIME no panel de control de IIS, de acordo
con extensións de ficheiro que descargará a través de http.

Non busquei que tipo MIME é o mellor para este propósito e preguntei application/octet-stream, despois de que todo funcionou.

Para ficheiros que non teñen extensión, use un punto.

Aquí así:

Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

Conclusión

En definitiva, temos a posibilidade de iniciar a través dunha rede local a través de UEFI.

Se fixemos todo correctamente, entón haberá algo así como este menú de selección de arranque:

Ampliación da funcionalidade WDS: Engadindo a capacidade de arranque UEFI

Se preparou as ferramentas básicas e non se preocupará coa configuración, levará uns 10-20 minutos en implementar esta función.
Levoume 2 días laborables, porque. Tiven que buscar moito en Google.

Implementación exitosa!

Grazas pola túa atención e moitas grazas a aquelas persoas cuxos artigos me axudaron!
En Habré é: Ingtar и Deeptown.

Fonte: www.habr.com

Engadir un comentario