Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Hej alla!

Den här artikeln beskriver de steg du måste följa för att lägga till UEFI-startkapacitet till din WDS.

De där. Instruktionerna i den här artikeln förutsätter att du redan har följande konfiguration:

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

Här beskrivs också åtgärder som inte gav mig rätt resultat.
Jag beskrev dem för att underlätta sökningen och spara tid.

Förord

Jag gjorde en WDS på jobbet med en massa godsaker, tk. trött på att ständigt springa runt med en massa flash-enheter och skriva över dem.

Dessa artiklar hjälpte mig förresten:
Lägger till WDS-mångsidighet
PXE-startmeny med System Center Configuration Manager


Det ser ut så här

Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Och allt var bra, nya bilder lades till för laddning, winPE-bilden var övervuxen med nya funktioner och allt fungerade.

Men långt ifrån alla enheter stöder BIOS / Legacy-startläge, eller om de gör det, kan det vara på en mycket icke-uppenbar plats.

Ja, och att installera windows i äldre läge, när det är möjligt att installera i UEFI, är inte coolt.

Som ett resultat bestämde jag mig för att lägga till möjligheten att starta upp i UEFI och gick till Google.

Men jag hittade inte strukturerad information om hur man får en fungerande WDS + UEFI.
Det var faktiskt därför jag bestämde mig för att skriva den här artikeln.

Innan jag börjar kommer jag att beskriva det problem som tog mest tid.

När du lägger till UEFI till WDS är följande, ganska icke-uppenbara situation möjlig:

Om du lägger till en startfil till WDS och när du försöker starta på enheten
i UEFI ser du följande text:
The selected boot device failed. Press <Enter> to Continue.
Eller Boot Device Not Found
Men att ladda in äldre fungerar för dig.
Då är ett av de möjliga alternativen frånvaron av en fil wdsmgfw.efi,
längs följande väg: %WDSpath%Bootx64wdsmgfw.efi

Du kan ta det här: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Eller, om den här filen av någon anledning saknas för dig, lade jag upp den på google.
För denna lösning, tack killar från reddit.

Med detta problem dödade jag mest tid, eftersom. Jag trodde att problemet låg någonstans i WDS- eller DHCP-konfigurationen.

Konfigurerade policyer genom att lägga till leverantörsklasser för olika arkitekturer och ställa in DHCP-alternativ 060, 066, 067. Instruktion för att konfigurera DHCP-policyer.

Arkitekturer i ASCII för att konfigurera DHCP

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

Jag provade också olika alternativ för startfiler. .efi

  • syslinux
  • grub 2

Jag försökte också hitta problemet i händelseloggen.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Men som jag sa ovan låg problemet i filen wdsmgfw.efi.
Antingen raderade jag den av misstag själv, eller så kopierades den inte under installationen
och konfigurera WDS.

Nåväl, låt oss börja!

Instruktion

Steg 1 - Kontrollera att WDS fungerar

Ta valfri enhet eller virtuell maskin med stöd för uppstart i UEFI-läge över nätverket och försök starta.

Du bör ha följande bild:

Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Om så är fallet, bra, du kan fortsätta.
Om inte, se vad jag skrev i förordet.

Steg 2 - Bygga iPXE-startfilen

Vi startar förberedd Ubuntu, öppnar en terminal och klistrar in den här raden:

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

Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Här skulle jag vilja göra en liten anmärkning om att du kan behöva lägga till paket till Ubuntu som är nödvändiga för att kompilera C och C++.
Jag har bara installerat dem.

Nedladdat? - Bra!
Nu måste du göra en konfigurationsfil för monteringen.
I terminalen skriver vi:

cd ipxe/src
gedit chain.ipxe

Och klistra in följande kod i den här filen och spara sedan:

#!ipxe

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

Vi går tillbaka till terminalen och startar kompileringen:

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

Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Om allt är i sin ordning, bör du få följande utgång i terminalen:

Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Och fil ipxe.efi, längs vägen: ipxe/src/bin-x86_64-efi/ipxe.efi
Om du av någon anledning inte kan kompilera på egen hand,
Jag har bifogat min файл.
Den är kompilerad för att starta upp från http://192.168.0.100/install.ipxe

Det är allt för Ubuntu.

Steg 3 - Lägga till ipxe.efi till WDS

Vi tar filen som vi fick i det andra steget och kopierar den längs vägen:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Efter att vi döpt om det till BOOTX64.EFI.
Det är inte nödvändigt, det är bara bekvämare.

Sedan lanserar vi cmd på uppdrag av administratören och skriv följande kommandon:

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

Detta kommer att ställa in den resulterande filen för att laddas ner via WDS.

Låt oss kontrollera konfigurationen:

wdsutil /get-server /Show:Config

Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Jag kopierade också filen ipxe.efi, döpte om den till BOOTIA32.EFI och konfigurerade boot för den, för säkerhets skull. architecture:x86uefi
Men i stort sett är detta ingen mening, eftersom. Bootmgfw.efi-filen stöder inte x86

Låt oss kolla vad som hände.
Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet
Bra, WDS skickar vår fil för nedladdning och den letar i sin tur efter konfigurationen längs vägen: http://192.168.0.100/install.ipxe

Steg 4 - Menykonfiguration

Gå till rotmappen på din webbplats.
Standard är: C:inetpubwwwroot

Skapa en textfil install.ipxe.

och konfigurera den enligt dokumentation och dina behov.
Det finns också ett ryskt språk описание kommandon.
jag njöt detta instruktioner när du konfigurerar din WDS.

install.ipxe-konfigurationsexempel

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

Du kan läsa om konfigurationen för att ladda winPE här.

Steg 5 - MIME-typer

Efter att ha skapat menyn och lagt till alla nödvändiga filer i IIS-rotmappen,
du måste ge dem tillgång.

Därför att även om du försöker ladda ner en fil från webbläsaren får du ett felmeddelande på dess adress: HTTP 404.3 - Not Found.
Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

För att göra detta måste du lägga till MIME-typer i IIS-kontrollpanelen, i enlighet med detta
med filtillägg som du laddar ner via http.

Jag letade inte efter vilken MIME-typ som är bäst för detta ändamål och frågade application/octet-stream, varefter allt fungerade.

För filer som inte har ett tillägg, använd en prick.

Här så:

Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Slutsats

I slutändan får vi möjligheten att starta upp över ett lokalt nätverk genom UEFI.

Om vi ​​gjorde allt korrekt, kommer det att finnas något i stil med denna startvalsmeny:

Utökar WDS-funktionalitet: Lägger till UEFI-startkapacitet

Om du har förberett de grundläggande verktygen och du inte kommer att bry dig om konfigurationen, tar det cirka 10-20 minuter att implementera den här funktionen.
Det tog mig 2 arbetsdagar, eftersom. Jag var tvungen att googla mycket.

Lyckad implementering!

Tack för din uppmärksamhet och stort tack till de människor vars artiklar hjälpte mig!
På Habré är det: Ingtar и Deeptown.

Källa: will.com

Lägg en kommentar