Hola a todos!
Este artículo describe los pasos que debe seguir para agregar opciones de arranque UEFI a su WDS.
Es decir las instrucciones en este artículo asumen que ya tiene algo como la siguiente configuración:
1. Windows Server 2012R2 ( ) 2. DHCP WDS 3. WDS 4. IIS 5. Ubuntu
Además, aquí se describen las acciones que no me dieron el resultado adecuado.
Los describí para facilitar la búsqueda y ahorrar tiempo.
Prólogo
Hecho de alguna manera en el trabajo WDS con muchas cosas buenas, porque cansado de correr constantemente con un montón de unidades flash y sobrescribirlas.
Por cierto, estos artículos me ayudaron por cierto:
Añadir versatilidad WDS
Menú de inicio PXE con System Center Configuration Manager
Y todo estuvo bien, se agregaron nuevas imágenes para cargar, la imagen winPE se cubrió de nuevas características y todo funcionó.
Pero, de ninguna manera, todos los dispositivos admiten el modo de arranque BIOS / Legacy, o si lo admiten, su inclusión puede ubicarse en un lugar muy poco obvio.
E instalar Windows en modo heredado, cuando es posible instalarlo en UEFI, no es genial.
Al final, decidí agregar la capacidad de subir a UEFI y fui a Google.
Pero todavía no encontré información estructurada sobre cómo obtener un WDS + UEFI que funcione.
En realidad, por eso decidí escribir este artículo.
Antes de comenzar, describiré el problema que tomó más tiempo.
Al agregar UEFI a WDS, es posible la siguiente situación, bastante obvia:Si agrega un archivo de inicio a WDS y cuando intenta iniciar en el dispositivo
en UEFI ves el siguiente texto:
The selected boot device failed. Press <Enter> to Continue.
O Boot Device Not Found
Pero cargar en el legado funciona para usted.
Entonces, una de las opciones posibles es la ausencia del archivo wdsmgfw.efi ,
siguiente ruta: %WDSpath%\Boot\x64\wdsmgfw.efi
Puede tomarlo aquí: C:\Windows\System32\RemInst\boot\x64\wdsmgfw.efi
O, si por alguna razón no tiene este archivo, lo publiqué en google .
Por esta decisión, gracias a los chicos del reddit .
Con este problema, maté la mayor parte del tiempo desde Pensé que el problema estaba en algún lugar de la configuración WDS o DHCP.
Configuramos políticas agregando clases de proveedores para diversas arquitecturas y configurando las opciones de DHCP 060, 066, 067. Instrucciones para configurar las políticas de DHCP.
Arquitecturas ASCII para configurar DHCPPXEClient: Arch: 00000 - BIOS / Legacy
PXEClient: Arch: 00006 - UEFI x86
PXEClient: Arch: 00007 - UEFI x64
Además, probé varias opciones para archivos de arranque .efi
También intenté encontrar el problema en el registro de eventos.
win + r -> eventvwr -> -> Microsoft -> Windows -> Deployment-Services-Diagnostics
Pero, como dije anteriormente, el problema radica en el archivo wdsmgfw.efi .
O lo eliminé accidentalmente, o no se copió durante la instalación
y configurar WDS.
Bueno, empecemos!
Manual de instrucciones
Etapa 1 - Verificación de salud de WDS
Tome cualquier dispositivo o máquina virtual que admita el arranque UEFI a través de la red e intente arrancar.
Deberías tener la siguiente imagen:

Si es así, entonces bien, puedes continuar.
Si no, entonces mira lo que escribí en la introducción.
Paso 2: compila el archivo de arranque iPXE
Ejecute el Ubuntu preparado previamente, abra la terminal e inserte esta línea:
git clone https://git.ipxe.org/ipxe.git ipxe

Aquí me gustaría hacer un pequeño comentario sobre el hecho de que puede que tenga que agregar paquetes en Ubuntu que sean necesarios para compilar C y C ++.
Acabo de tenerlos ya instalados.
Descargado? - Genial!
Ahora necesita hacer un archivo de configuración para el ensamblaje.
En la terminal, escribe:
cd ipxe/src gedit chain.ipxe
Y pegue en este archivo, el siguiente código, y luego guarde:
#!ipxe dhcp chain http://%IP-address-your-IIS-server%/install.ipxe
Volvemos a la terminal y comenzamos la compilación:
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe

Si todo está en orden, debería obtener la siguiente salida en el terminal:

Y el archivo ipxe.efi , a lo largo de la ruta: ipxe/src/bin-x86_64-efi/ipxe.efi
Si por alguna razón no pudieras compilarte,
Adjunté mi archivo .
Se compila para su descarga desde http://192.168.0.100/install.ipxe
Eso es todo con Ubuntu.
Etapa 3 - Agregar ipxe.efi a WDS
Tomamos el archivo que recibimos en la segunda etapa y lo copiamos a lo largo de la ruta:
%WDSpath%\Boot\x64\%your-boot-folder%\EFI\BOOT\
Después de renombrarlo a BOOTX64.EFI.
No es necesario, es más conveniente.
Luego ejecute cmd como administrador y escriba los siguientes comandos:
wdsutil /set-server /bootprogram:Boot\x64\%your-boot-folder%\EFI\BOOT\BOOTX 64.EFI /architecture:x64uefi wdsutil /set-server /N12bootprogram:Boot\x64\%your-boot-folder%\EFI\BOOT\BOOTX 64.EFI /architecture:x64uefi
Esto instalará el archivo resultante para descargar a través de WDS.
Verifique la configuración:
wdsutil /get-server /Show:Config

También copié el archivo ipxe.efi, lo renombré a BOOTIA32.EFI y configuré la descarga, por si acaso. architecture:x86uefi
Pero en general esto no tiene sentido, porque El archivo Bootmgfw.efi no es compatible con x86
Mira lo que pasó.

Bueno, WDS envía nuestro archivo para descargar y, a su vez, busca la configuración a lo largo de la ruta: http://192.168.0.100/install.ipxe
Etapa 4 - Configuración del menú
Vamos a la carpeta raíz de su sitio.
Por defecto es: C:\inetpub\wwwroot
Cree un archivo de texto install.ipxe .
Y configúrelo de acuerdo con la documentación y sus necesidades.
También hay una descripción en ruso de los equipos.
Usé estas instrucciones al configurar mi WDS.
Ejemplo de configuración de 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
Puede leer sobre la configuración para cargar winPE aquí .
Etapa 5 - Tipos MIME
Después de crear el menú y agregar todos los archivos necesarios a la carpeta raíz de IIS,
debes darles acceso.
Porque incluso si intenta descargar un archivo desde el navegador, recibirá un error en su dirección: HTTP 404.3 - Not Found
.

Para hacer esto, agregue los tipos MIME en el panel de control de IIS, de acuerdo con
con extensiones de archivo que descargará a través de http.
No busqué qué tipo de MIME es mejor para estos fines, y configuré application/octet-stream
, después de lo cual todo funcionó.
Para los archivos que no tienen una extensión, use un punto.
Así:

Conclusión
En última instancia, tenemos la capacidad de arrancar a través de la red local a través de UEFI.
Si hicimos todo bien, habrá algo como el menú de selección de arranque:

Si ha preparado las herramientas básicas y no se molestará con la configuración, la implementación de esta característica demorará entre 10 y 20 minutos.
Me tomó 2 días hábiles, porque Tuve que googlear mucho.
Implementación exitosa!
¡Gracias por su atención y muchas gracias a aquellas personas cuyos artículos me ayudaron!
En Habr it: Ingtar y Deeptown .