Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

Hej alle!

Denne artikel beskriver de trin, du skal følge for at tilføje UEFI-opstartskapacitet til din WDS.

De der. Instruktionerne i denne artikel forudsætter, at du allerede har følgende konfiguration:

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

Her er også beskrevet handlinger, der ikke gav mig det rigtige resultat.
Jeg beskrev dem for at lette søgningen og spare tid.

Forord

Jeg lavede en WDS på arbejdet med en masse lækkerier, tk. træt af konstant at rende rundt med en masse flashdrev og overskrive dem.

Disse artikler hjalp mig i øvrigt:
Tilføjelse af WDS alsidighed
PXE-startmenu med System Center Configuration Manager


Det ser sådan ud

Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

Og alt var fint, nye billeder blev tilføjet til indlæsning, winPE-billedet var overgroet med nye funktioner, og alt fungerede.

Men langt fra alle enheder understøtter BIOS / Legacy-starttilstanden, eller hvis de gør det, kan dens inklusion være et meget ikke-oplagt sted.

Ja, og at installere windows i ældre tilstand, når det er muligt at installere i UEFI, er ikke fedt.

Som et resultat besluttede jeg at tilføje muligheden for at starte op i UEFI og gik til Google.

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

Inden jeg starter, vil jeg beskrive det problem, der tog mest tid.

Når du tilføjer UEFI til WDS, er følgende, ret ikke-indlysende situation mulig:

Hvis du tilføjer en boot-fil til WDS, og når du prøver at starte på enheden
i UEFI ser du følgende tekst:
The selected boot device failed. Press <Enter> to Continue.
eller Boot Device Not Found
Men indlæsning i arv fungerer for dig.
Så er en af ​​de mulige muligheder fraværet af en fil wdsmgfw.efi,
ad følgende vej: %WDSpath%Bootx64wdsmgfw.efi

Du kan tage den her: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Eller hvis denne fil af en eller anden grund mangler for dig, har jeg lagt den op Google.
For denne løsning, tak fyre fra reddit.

Med dette problem dræbte jeg mest tid, fordi. Jeg troede, at problemet var et sted i WDS- eller DHCP-konfigurationen.

Konfigurerede politikker ved at tilføje leverandørklasser til forskellige arkitekturer og indstille DHCP-indstillinger 060, 066, 067. Instruktion til konfiguration af DHCP-politikker.

Arkitekturer i ASCII til konfiguration af DHCP

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

Jeg prøvede også forskellige muligheder for boot-filer. .efi

  • syslinux
  • grub 2

Jeg forsøgte også at finde problemet i hændelsesloggen.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Men, som jeg sagde ovenfor, lå problemet i filen wdsmgfw.efi.
Enten slettede jeg det selv ved et uheld, eller også blev det ikke kopieret under installationen
og konfiguration af WDS.

Nå, lad os komme i gang!

Instruktion

Trin 1 - Bekræft, at WDS virker

Tag en hvilken som helst enhed eller virtuel maskine med understøttelse af opstart i UEFI-tilstand over netværket, og prøv at starte.

Du skal have følgende billede:

Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

Hvis ja, godt, du kan fortsætte.
Hvis ikke, så se hvad jeg skrev i forordet.

Trin 2 - Opbygning af iPXE-startfilen

Vi lancerer forudforberedt Ubuntu, åbner en terminal og indsætter denne linje:

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

Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

Her vil jeg gerne komme med en lille bemærkning om, at du muligvis skal tilføje pakker til Ubuntu, som er nødvendige for at kompilere C og C++.
Jeg har dem lige installeret.

Downloadet? - Store!
Nu skal du lave en konfigurationsfil til samlingen.
I terminalen skriver vi:

cd ipxe/src
gedit chain.ipxe

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

#!ipxe

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

Vi går tilbage til terminalen og starter kompileringen:

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

Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

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

Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

Og fil ipxe.efi, langs vejen: ipxe/src/bin-x86_64-efi/ipxe.efi
Hvis du af en eller anden grund ikke kan kompilere på egen hånd,
Jeg har vedhæftet min файл.
Den er kompileret til at starte fra http://192.168.0.100/install.ipxe

Det er alt for Ubuntu.

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

Vi tager filen, som vi modtog i anden fase, og kopierer den undervejs:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Efter at vi har omdøbt det til BOOTX64.EFI.
Det er ikke nødvendigt, det er bare mere bekvemt.

Så starter vi cmd på vegne af 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 indstille den resulterende fil til at blive downloadet via WDS.

Lad os tjekke konfigurationen:

wdsutil /get-server /Show:Config

Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

Jeg kopierede også filen ipxe.efi, omdøbte den til BOOTIA32.EFI og konfigurerede boot til den, for en sikkerheds skyld. architecture:x86uefi
Men i det store og hele giver det ingen mening, pga. Bootmgfw.efi-filen understøtter ikke x86

Lad os tjekke, hvad der skete.
Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet
Fantastisk, WDS sender vores fil til download, og den leder til gengæld efter konfigurationen langs stien: http://192.168.0.100/install.ipxe

Trin 4 - Menukonfiguration

Gå til rodmappen på dit websted.
Standard er: C:inetpubwwwroot

Opret en tekstfil install.ipxe.

og konfigurer det iht dokumentation og dine behov.
Der er også et russisk sprog описание kommandoer.
Jeg nød dette instruktioner, når du konfigurerer dit WDS.

install.ipxe-konfigurationseksempel

#!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 for indlæsning af winPE her.

Trin 5 - MIME-typer

Efter at have oprettet menuen og tilføjet alle de nødvendige filer til IIS-rodmappen,
du skal give dem adgang.

Fordi selvom du prøver at downloade en fil fra browseren, får du en fejlmeddelelse på dens adresse: HTTP 404.3 - Not Found.
Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

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

Jeg kiggede ikke efter, hvilken MIME-type der er bedst til dette formål, og spurgte application/octet-stream, hvorefter alt virkede.

For filer, der ikke har en filtypenavn, skal du bruge en prik.

Her så:

Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

Konklusion

I sidste ende får vi muligheden for at starte op over et lokalt netværk gennem UEFI.

Hvis vi gjorde alt korrekt, så vil der være noget som denne bootvalgsmenu:

Udvidelse af WDS-funktionalitet: Tilføjelse af UEFI Boot-kapacitet

Hvis du har forberedt de grundlæggende værktøjer, og du ikke vil genere konfigurationen, tager det omkring 10-20 minutter at implementere denne funktion.
Det tog mig 2 arbejdsdage, pga. Jeg skulle google meget.

Succesfuld implementering!

Tak for din opmærksomhed og mange tak til de mennesker, hvis artikler hjalp mig!
På Habré er det: Ingtar и Deeptown.

Kilde: www.habr.com

Tilføj en kommentar