Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

Hola a todos!

Este artículo describe los pasos que debe seguir para agregar la capacidad de arranque UEFI a su WDS.

Aquellos. Las instrucciones de este artículo asumen que ya tiene la siguiente configuración:

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

Además, aquí se describen acciones que no me dieron el resultado adecuado.
Los describí para facilitar la búsqueda y ahorrarle tiempo.

prefacio

Hice un WDS en el trabajo con muchas cosas buenas, tk. cansado de andar constantemente con un montón de unidades flash y sobrescribirlas.

Estos artículos me ayudaron por cierto:
Adición de versatilidad WDS
Menú de inicio PXE con System Center Configuration Manager


Se parece a esto

Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

Y todo estuvo bien, se agregaron nuevas imágenes para cargar, la imagen winPE adquirió nuevas funciones y todo funcionó.

Pero, lejos de todos los dispositivos compatibles con el modo de arranque BIOS / Legacy, o si lo hacen, entonces su inclusión puede estar en un lugar muy poco obvio.

Sí, y la instalación de Windows en modo heredado, cuando es posible instalar en UEFI, no es genial.

Como resultado, decidí agregar la capacidad de iniciar en UEFI y fui a Google.

Pero no encontré información estructurada sobre cómo obtener un WDS + UEFI que funcione.
En realidad, es por eso que 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 no obvia:

Si agrega un archivo de arranque a WDS y cuando intenta arrancar en el dispositivo
en UEFI verá el siguiente texto:
The selected boot device failed. Press <Enter> to Continue.
O Boot Device Not Found
Pero cargar en legado funciona para ti.
Entonces una de las opciones posibles es la ausencia de un archivo wdsmgfw.efi,
de la siguiente manera: %WDSpath%Bootx64wdsmgfw.efi

Puedes tomarlo aquí: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
O, si por alguna razón le falta este archivo, lo publiqué en google.
Por esta solución, gracias chicos de Reddit.

Con este problema, maté la mayor parte del tiempo, porque. Pensé que el problema estaba en algún lugar de la configuración de WDS o DHCP.

Políticas configuradas agregando clases de proveedores para varias arquitecturas y configurando las opciones de DHCP 060, 066, 067. instrucciones para configurar las políticas de DHCP.

Arquitecturas en ASCII para configurar DHCP

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

Además, probé varias opciones para archivos de arranque. .efi

  • syslinux
  • grub 2

También traté de encontrar el problema en el registro de eventos.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Pero, como dije anteriormente, el problema estaba en el archivo wdsmgfw.efi.
O lo eliminé yo mismo por accidente o no se copió durante la instalación
y configurar WDS.

Bueno, ¡comencemos!

instrucciones

Etapa 1: verificar que WDS esté funcionando

Tome cualquier dispositivo o máquina virtual con soporte para arrancar en modo UEFI a través de la red e intente arrancar.

Deberías tener la siguiente imagen:

Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

Si es así, genial, puedes continuar.
Si no, entonces mira lo que escribí en el prefacio.

Etapa 2: creación del archivo de arranque iPXE

Lanzamos Ubuntu pre-preparado, abrimos una terminal y pegamos esta línea:

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

Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

Aquí me gustaría hacer un pequeño comentario de que es posible que deba agregar paquetes a Ubuntu que son necesarios para compilar C y C ++.
Recién los tengo instalados.

¿Descargado? - ¡Excelente!
Ahora necesita crear un archivo de configuración para el ensamblaje.
En la terminal, escribimos:

cd ipxe/src
gedit chain.ipxe

Y pegue el siguiente código en este archivo y luego guárdelo:

#!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

Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

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

Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

y archivo ipxe.efi, por el camino: ipxe/src/bin-x86_64-efi/ipxe.efi
Si por alguna razón no puede compilar por su cuenta,
he adjuntado el mio файл.
Está compilado para arrancar desde http://192.168.0.100/install.ipxe

Eso es todo para Ubuntu.

Paso 3: agregar ipxe.efi a WDS

Tomamos el archivo que recibimos en la segunda etapa y lo copiamos en el camino:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Después lo renombramos a BOOTX64.EFI.
No es necesario, simplemente es más conveniente.

Luego lanzamos cmd en nombre del administrador, y escriba los siguientes 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

Esto establecerá que el archivo resultante se descargue a través de WDS.

Comprobemos la configuración:

wdsutil /get-server /Show:Config

Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

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

Vamos a comprobar lo que pasó.
Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI
Genial, WDS envía nuestro archivo para descargar y este, a su vez, busca la configuración en la ruta: http://192.168.0.100/install.ipxe

Paso 4 - Configuración del menú

Vaya a la carpeta raíz de su sitio.
El valor predeterminado es: C:inetpubwwwroot

Crear un archivo de texto instalar.ipxe.

y configurarlo según documentación y tus necesidades
También hay un idioma ruso. descripción comandos
lo disfruté este instrucciones al configurar su 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,
necesitas darles acceso.

Porque incluso si intenta descargar un archivo desde el navegador, obtendrá un error en su dirección: HTTP 404.3 - Not Found.
Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

Para hacer esto, debe agregar tipos MIME en el panel de control de IIS, de acuerdo
con extensiones de archivo que descargarás a través de http.

No busqué qué tipo de MIME es mejor para este propósito y pregunté application/octet-stream, después de lo cual todo funcionó.

Para archivos que no tienen extensión, use un punto.

Aquí, así que:

Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

Conclusión

En última instancia, tenemos la capacidad de arrancar a través de una red local a través de UEFI.

Si hicimos todo correctamente, habrá algo como este menú de selección de arranque:

Expansión de la funcionalidad WDS: adición de la capacidad de arranque UEFI

Si ha preparado las herramientas básicas y no se molestará con la configuración, le llevará entre 10 y 20 minutos implementar esta función.
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é es: ingtar и ciudad profunda.

Fuente: habr.com

Añadir un comentario