Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

Hei!

Denne artikkelen beskriver trinnene du må følge for å legge til UEFI-oppstartsevne til WDS.

De. Instruksjonene i denne artikkelen forutsetter at du allerede har følgende konfigurasjon:

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

Her er også beskrevet handlinger som ikke ga meg det riktige resultatet.
Jeg beskrev dem for å lette søket og spare tid.

Forord

Jeg har laget en WDS på jobb med mye snadder, tk. lei av å hele tiden løpe rundt med en haug med flash-stasjoner og overskrive dem.

Disse artiklene hjalp meg forresten:
Legger til WDS-allsidighet
PXE oppstartsmeny med System Center Configuration Manager


Det ser slik ut

Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

Og alt var bra, nye bilder ble lagt til for lasting, winPE-bildet ble overgrodd med nye funksjoner og alt fungerte.

Men langt fra alle enheter støtter BIOS / Legacy-oppstartsmodus, eller hvis de gjør det, kan inkluderingen være på et veldig ikke-åpenbart sted.

Ja, og å installere vinduer i eldre modus, når det er mulig å installere i UEFI, er ikke kult.

Som et resultat bestemte jeg meg for å legge til muligheten til å starte opp i UEFI, og gikk til Google.

Men jeg fant ikke strukturert informasjon om hvordan jeg får en fungerende WDS + UEFI.
Det er faktisk derfor jeg bestemte meg for å skrive denne artikkelen.

Før jeg starter skal jeg beskrive problemet som tok mest tid.

Når du legger til UEFI til WDS, er følgende, ganske uopplagte situasjon mulig:

Hvis du legger til en oppstartsfil til WDS og når du prøver å starte opp på enheten
i UEFI ser du følgende tekst:
The selected boot device failed. Press <Enter> to Continue.
eller Boot Device Not Found
Men lasting i arv fungerer for deg.
Da er et av de mulige alternativene fraværet av en fil wdsmgfw.efi,
langs følgende sti: %WDSpath%Bootx64wdsmgfw.efi

Du kan ta det her: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Eller, hvis denne filen av en eller annen grunn mangler for deg, la jeg den ut på google.
For denne løsningen, takk folkens fra reddit.

Med dette problemet drepte jeg mest tid, fordi. Jeg trodde problemet var et sted i WDS- eller DHCP-konfigurasjonen.

Konfigurerte policyer ved å legge til leverandørklasser for ulike arkitekturer, og konfigurere DHCP-alternativer 060, 066, 067. Instruksjon for å konfigurere DHCP-policyer.

Arkitekturer i ASCII for å konfigurere DHCP

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

Jeg prøvde også forskjellige alternativer for oppstartsfiler. .efi

  • syslinux
  • grub 2

Jeg prøvde også å finne problemet i hendelsesloggen.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Men, som jeg sa ovenfor, lå problemet i filen wdsmgfw.efi.
Enten slettet jeg det ved et uhell selv, eller så ble det ikke kopiert under installasjonen
og konfigurere WDS.

Vel, la oss komme i gang!

Instruksjon

Trinn 1 - Bekreft at WDS fungerer

Ta en hvilken som helst enhet eller virtuell maskin med støtte for oppstart i UEFI-modus over nettverket og prøv å starte opp.

Du bør ha følgende bilde:

Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

I så fall, flott, du kan fortsette.
Hvis ikke, så se hva jeg skrev i forordet.

Trinn 2 - Bygging av iPXE Boot File

Vi lanserer forhåndsforberedt Ubuntu, åpner en terminal og limer inn denne linjen:

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

Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

Her vil jeg komme med en liten bemerkning om at du kanskje må legge til pakker til Ubuntu som er nødvendige for å kompilere C og C++.
Jeg har bare installert dem.

Lastet ned? - Flott!
Nå må du lage en konfigurasjonsfil for sammenstillingen.
I terminalen skriver vi:

cd ipxe/src
gedit chain.ipxe

Og lim inn følgende kode i denne filen, og lagre deretter:

#!ipxe

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

Vi går tilbake til terminalen og starter kompileringen:

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

Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

Hvis alt er i orden, bør du få følgende utgang i terminalen:

Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

Og fil ipxe.efi, langs veien: ipxe/src/bin-x86_64-efi/ipxe.efi
Hvis du av en eller annen grunn ikke kan kompilere på egen hånd,
Jeg har lagt ved min файл.
Den er kompilert for å starte opp fra http://192.168.0.100/install.ipxe

Det er alt for Ubuntu.

Trinn 3 - Legge til ipxe.efi til WDS

Vi tar filen som vi mottok i andre trinn og kopierer den underveis:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Etter at vi omdøpte den til BOOTX64.EFI.
Det er ikke nødvendig, det er bare mer praktisk.

Så lanserer vi cmd på vegne av administratoren, og skriv følgende kommandoer:

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

Dette vil angi at den resulterende filen skal lastes ned via WDS.

La oss sjekke konfigurasjonen:

wdsutil /get-server /Show:Config

Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

Jeg kopierte også ipxe.efi-filen, ga den nytt navn til BOOTIA32.EFI og konfigurerte oppstart for den, for sikkerhets skyld. architecture:x86uefi
Men i det store og hele gir dette ingen mening, fordi. Bootmgfw.efi-filen støtter ikke x86

La oss sjekke hva som skjedde.
Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne
Flott, WDS sender filen vår for nedlasting, og den ser på sin side etter konfigurasjonen langs stien: http://192.168.0.100/install.ipxe

Trinn 4 - Menykonfigurasjon

Gå til rotmappen på nettstedet ditt.
Standard er: C:inetpubwwwroot

Lag en tekstfil install.ipxe.

og konfigurer den i henhold til dokumentasjon og dine behov.
Det er også et russisk språk описание kommandoer.
Jeg likte dette instruksjoner når du konfigurerer WDS.

install.ipxe-konfigurasjonseksempel

#!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 lese om konfigurasjonen for lasting av winPE her.

Trinn 5 - MIME-typer

Etter å ha opprettet menyen og lagt til alle nødvendige filer til IIS-rotmappen,
du må gi dem tilgang.

Fordi selv om du prøver å laste ned en fil fra nettleseren, vil du få en feilmelding på adressen: HTTP 404.3 - Not Found.
Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

For å gjøre dette, må du legge til MIME-typer i IIS-kontrollpanelet, i samsvar
med filutvidelser som du vil laste ned via http.

Jeg så ikke etter hvilken MIME-type som er best for dette formålet, og spurte application/octet-stream, hvoretter alt fungerte.

For filer som ikke har en filtype, bruk en prikk.

Her så:

Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

Konklusjon

Til syvende og sist får vi muligheten til å starte opp over et lokalt nettverk gjennom UEFI.

Hvis vi gjorde alt riktig, vil det være noe sånt som denne oppstartsvalgmenyen:

Utvide WDS-funksjonalitet: Legger til UEFI-oppstartsevne

Hvis du har forberedt de grunnleggende verktøyene og du ikke vil bry deg med konfigurasjonen, tar det omtrent 10-20 minutter å implementere denne funksjonen.
Det tok meg 2 arbeidsdager, pga. Jeg måtte google mye.

Vellykket implementering!

Takk for oppmerksomheten og tusen takk til de menneskene hvis artikler hjalp meg!
På Habré er det: Ingtar и Deeptown.

Kilde: www.habr.com

Legg til en kommentar