Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Hej alle sammen!

I denne artikel beskrives de trin, der skal udfyldes for at tilføje mulighed for opstart i UEFI til din WDS.

Det vil sige, at instruktionen i denne artikel forudsætter, at du allerede har en konfiguration som nedenfor:

1. Windows Server 2012R2 (eller nyere)
2. Fuldstændigt konfigureret DHCP til at arbejde med WDS
3. Selve WDS
4. IIS
5. Virtuel maskine eller PC med Ubuntu

Derudover beskrives der handlinger, som ikke gav mig de ønskede resultater.
Jeg nævnte dem for at lette søgningen og spare din tid.

Forord

Jeg fik på arbejdet oprettet en WDS med mange fordele, da jeg var træt af konstant at rende rundt med en masse USB-nøgler og genoptage dem.

Disse artikler hjalp mig dengang:
Vi tilføjer WDS-universialitet
Boot-menu PXE med System Center Configuration Manager


Det ser sådan her ud

Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Og alt fungerede godt, nye opstartsdiske blev tilføjet, winPE-billedet fik nye funktioner, og alt fungerede.

Men allerede i dag understøtter ikke alle enheder BIOS/Legacy opstart, eller hvis de gør, kan aktivering findes et meget ikke-fremtrædende sted.

Og installation af Windows i legacy-tilstand, når der er mulighed for installation i UEFI — er ikke optimalt.

Så jeg besluttede mig for at tilføje mulighed for opstart i UEFI og gik ind på Google.

Men jeg fandt ikke struktureret information om, hvordan man får en fungerende WDS + UEFI.
Derfor besluttede jeg at skrive denne artikel.

Før vi begynder, vil jeg beskrive det problem, der tog mest tid.

Når man tilføjer UEFI til WDS, er der en ret ikke-indlysende situation:

Hvis du tilføjer en startfil til WDS og ved forsøg på at starte på enheden
i UEFI ser du følgende tekst:
Den valgte opstartsenhed fejlede. Tryk på for at fortsætte.
Eller Opstartsenhed ikke fundet
Men opstart i legacy fungerer.
Så en af de mulige årsager kan være, at filen wdsmgfw.efi,
mangler i følgende sti: %WDSpath%Bootx64wdsmgfw.efi

Du kan få fat i den her: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Eller, hvis du af en eller anden grund mangler denne fil, har jeg lagt den op på google.
Tak til gutterne fra Reddit.

Jeg brugte mest tid på dette problem, da jeg troede, at fejlen lå et sted i WDS- eller DHCP-konfigurationen.

Jeg indstillede politikker ved at tilføje Vendor Classes til forskellige arkitekturer og konfigurerede DHCP indstillingerne 060, 066, 067. Brugsanvisning om konfiguration af DHCP politikker.

Arkitekturer i ASCII til DHCP konfiguration

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

Jeg har også prøvet forskellige varianter af boot-filer. .efi

  • syslinux
  • grub 2

Jeg har også forsøgt at finde problemet i logbogen.
win + r -> eventvwr -> Applikationer og tjenester-logs -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Men som jeg sagde før, lå problemet i filen. wdsmgfw.efi.
Enten har jeg ved et uheld slettet den, eller også blev den ikke kopieret under installationen.
og konfigureringen af WDS.

Nå, lad os komme i gang!

Brugsanvisning

Trin 1 — Tjek af WDS funktionalitet

Tag en hvilken som helst enhed eller virtuel maskine, der understøtter netværksboot i UEFI-tilstand, og prøv at starte op.

Du skal have følgende billede:

Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Hvis det er tilfældet, er det fantastisk, så kan vi fortsætte.
Hvis ikke, så se hvad jeg skrev i indledningen.

Trin 2 — Samling af boot-filen iPXE

Start den forberedte Ubuntu, åbne terminalen og indsæt denne linje:

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

Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Her vil jeg gerne påpege, at det kan være, du skal tilføje de pakker, der er nødvendige for at kompilere C og C++ i Ubuntu.
Jeg havde bare dem allerede installeret.

Er den downloaded? — Fantastisk!
Nu skal der laves en konfigurationsfil til kompileringen.
I terminalen skriver vi:

cd ipxe/src
gedit chain.ipxe

Og indsæt den følgende kode i denne fil, og gem derefter:

#!ipxe

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

Gå tilbage til terminalen og start kompileringen:

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

Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Hvis alt er i orden, skal du have følgende output i terminalen:

Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Og filen ipxe.efi, på stien: ipxe/src/bin-x86_64-efi/ipxe.efi
Hvis du af en eller anden grund ikke kunne kompilere det selv,
jeg har vedhæftet min fil.
Den er kompileret til opstart fra http://192.168.0.100/install.ipxe

Det er alt fra Ubuntu.

Trin 3 — Tilføjelse af ipxe.efi til WDS

Tag den fil, vi fik i det andet trin, og kopier den til stien:
%WDSpath%Bootx64%your-boot-folderIBOOT
Derefter omdøber vi den til BOOTX64.EFI.
Det er ikke nødvendigt, det er bare mere praktisk.

Derefter kører vi cmd som administrator og skriver følgende kommandoer:

wdsutil /set-server /bootprogram:Bootx64%your-boot-folderIBOOTBOOTX
64.EFI /architecture:x64uefi
og
wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folderIBOOTBOOTX
64.EFI /architecture:x64uefi

Dette vil sætte den oprettede fil til opstart via WDS.

Lad os tjekke konfigurationen:

wdsutil /get-server /Show:Config

Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Jeg har også kopieret filen ipxe.efi, omdøbt den til BOOTIA32.EFI og konfigureret boot til den, for en sikkerheds skyld. architecture:x86uefi
Men i det store hele giver det ikke mening, da filen Bootmgfw.efi ikke understøtter x86.

Lad os tjekke, hvad vi har opnået.
Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI
Perfekt, WDS overfører vores fil til opstart, og den søger derefter konfigurationen på stien: http://192.168.0.100/install.ipxe

Trin 4 — Menu konfiguration

Vi går til roden af dit websted.
Som standard er dette: C:inetpubwwwroot

Opretter en tekstfil install.ipxe.

Og konfigurerer den i henhold til dokumentation og dine behov.
Der er også en russisktalende beskrivelse kommando.
Jeg brugte denne vejledningen til at konfigurere min WDS.

Eksempel på konfiguration af 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

Du kan læse om konfigurationen til opstart af winPE her.

Trin 5 — MIME-typer

Efter oprettelsen af menuen og tilføjelsen af alle nødvendige filer til roden af IIS,
er det nødvendigt at give adgang til dem.

For selv hvis du prøver at downloade filen fra browseren, vil du få en fejl: HTTP 404.3 - Not Found.
Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

For at gøre dette skal du tilføje MIME-typer i IIS kontrolpanelet, i overensstemmelse
med filernes udvidelser, som vil blive downloaded via http.

Jeg har ikke søgt efter hvilken MIME-type der er bedst til dette formål, og indtastede application/octet-stream, hvorefter alt fungerede.

For filer uden udvidelse skal du bruge et punkt.

Sådan her:

Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Konklusion

I sidste ende har vi mulighed for at starte op via det lokale netværk gennem UEFI.

Hvis vi har gjort det rigtigt, vil der være en menu til valg af opstart som denne:

Vi udvider funktionaliteten af WDS: tilføjelse af mulighed for at starte op i UEFI

Hvis du har forberedt de grundlæggende værktøjer og ikke vil bruge for lang tid på konfigurationen, tager det cirka 10-20 minutter at implementere denne mulighed.
Jeg brugte derimod 2 arbejdsdage, da jeg måtte google meget.

Held og lykke med implementeringen!

Tak for opmærksomheden, og mange tak til de personer, hvis artikler hjalp mig!
På Habr er det: Ingtar og Deeptown.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster