Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

Hallo allemaal!

In dit artikel worden de stappen beschreven die u moet volgen om de opstartfunctie in UEFI-modus aan uw WDS toe te voegen.

Dat wil zeggen, de instructie in dit artikel gaat ervan uit dat u al een soortgelijke configuratie heeft:

1. Windows Server 2012R2 (of nieuwer)
2. Volledig geconfigureerde DHCP voor gebruik met WDS
3. De WDS zelf
4. IIS
5. Virtuele machine of pc met Ubuntu

Daarnaast worden hier acties beschreven die me niet het gewenste resultaat hebben opgeleverd.
Ik heb ze beschreven om het zoeken te vergemakkelijken en uw tijd te besparen.

Voorwoord

Op een gegeven moment heb ik bij mijn werk WDS opgezet met veel functies, omdat ik moe was van het constant rondlopen met een stapel USB-sticks en ze opnieuw te moeten schrijven.

Deze artikelen hebben me toen geholpen:
WDS aan universaliteit toevoegen
Opstartmenu PXE met System Center Configuration Manager


Het ziet er zo uit

Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

En alles werkte goed, nieuwe opstartafbeeldingen werden toegevoegd, de winPE-afbeelding kreeg nieuwe functies en alles werkte.

Maar niet alle apparaten ondersteunen al de BIOS/Legacy opstartmodus, of als ze dat doen, kan het inschakelen ervan op een zeer onopvallende plaats liggen.

En het installeren van Windows in legacy-modus, terwijl er de mogelijkheid is om in UEFI te installeren, is niet ideaal.

Uiteindelijk besloot ik de mogelijkheid tot opstarten in UEFI toe te voegen en ging ik googelen.

Maar ik vond geen gestructureerde informatie over hoe ik een werkende WDS + UEFI kon krijgen.
Eigenlijk was dat de reden waarom ik besloot dit artikel te schrijven.

Voordat ik begin, zal ik het probleem beschrijven dat de meeste tijd in beslag nam.

Bij het toevoegen van UEFI aan WDS kan de volgende, vrij onopvallende situatie optreden:

Als u een opstartbestand aan WDS toevoegt en bij het proberen op te starten op het apparaat
in UEFI ziet u de volgende tekst:
Het geselecteerde opstartapparaat is mislukt. Druk op om door te gaan.
Of Opstartapparaat niet gevonden
Maar opstarten in legacy werkt wel.
Een van de mogelijke oorzaken zou dan het ontbreken van het bestand kunnen zijn wdsmgfw.efi,
op het volgende pad: %WDSpath%Bootx64wdsmgfw.efi

U kunt het hier krijgen: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Of, als dit bestand om een of andere reden ontbreekt, heb ik het geüpload naar google.
Bedankt voor deze oplossing, jongens van Reddit.

Ik heb het meeste tijd aan dit probleem besteed, omdat ik dacht dat het probleem ergens in de configuratie van WDS of DHCP lag.

Ik configureerde de beleid door Vendor Classes toe te voegen voor verschillende architecturen en door de DHCP-opties 060, 066, 067 in te stellen. Instructie voor het instellen van DHCP-beleid.

Architecturen in ASCII voor het instellen van DHCP

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

Ik heb ook verschillende opties voor opstartbestanden geprobeerd .efi

  • syslinux
  • grub 2

Ik heb ook geprobeerd het probleem in het Logboek van gebeurtenissen te vinden.
win + r -> eventvwr -> Toepassing en service-logboeken -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Maar zoals ik hierboven al zei, zat het probleem in het bestand wdsmgfw.efi.
Of ik heb het per ongeluk zelf verwijderd, of het is niet gekopieerd tijdens de installatie
en configuratie van WDS.

Nou, laten we beginnen!

Instructie

Stap 1 — Controleer de werking van WDS

Neem een willekeurig apparaat of virtuele machine die ondersteuning biedt voor netwerkinstallatie in UEFI-modus en probeer op te starten.

Je zou het volgende beeld moeten krijgen:

Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

Als dat het geval is, prima, we kunnen doorgaan.
Als dat niet zo is, kijk dan wat ik in de inleiding heb geschreven.

Stap 2 — Bouw het opstartbestand iPXE

Start de voorbereide Ubuntu, open de terminal en plak deze regel:

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

Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

Hier wil ik een kleine opmerking maken, dat je mogelijk in Ubuntu pakketten moet toevoegen die nodig zijn voor het compileren van C en C++.
Ik had ze namelijk al geïnstalleerd.

Is het gedownload? — Geweldig!
Nu moeten we een configuratiebestand voor de bouw maken.
In de terminal typen we:

cd ipxe/src
gedit chain.ipxe

En plak in dit bestand de volgende code, waarna je het opslaat:

#!ipxe

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

Laten we teruggaan naar de terminal en de compilatie starten:

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

Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

Als alles in orde is, zou je de volgende uitvoer in de terminal moeten krijgen:

Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

En bestand ipxe.efi, op het pad: ipxe/src/bin-x86_64-efi/ipxe.efi
Als het je om de een of andere reden niet is gelukt om het zelf te compileren,
heb ik mijn bijgevoegd bestand.
Het is gecompileerd voor opstarten met http://192.168.0.100/install.ipxe

Dat was het met Ubuntu.

Stap 3 — Voeg ipxe.efi toe aan WDS

Neem het bestand dat we in de tweede stap hebben gekregen en kopieer het naar het pad:
%WDSpath%Bootx64%your-boot-folderIBOOT
Hernoem het daarna naar BOOTX64.EFI.
Dit is niet verplicht, gewoon makkelijker.

Start vervolgens cmd als administrator uit, en typ de volgende commando's:

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

Met dit stellen we het verkregen bestand in voor opstarten via WDS.

Laten we de configuratie controleren:

wdsutil /get-server /Show:Config

Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

Ik heb ook het bestand ipxe.efi gekopieerd, het hernoemd naar BOOTIA32.EFI en de opstartconfiguratie voor het ingesteld, voor de zekerheid. architecture:x86uefi
Maar in feite heeft dit geen zin, aangezien het bestand Bootmgfw.efi geen x86 ondersteunt.

Laten we kijken wat we hebben gekregen.
Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen
Geweldig, WDS verzendt ons bestand voor de opstart en het zoekt op zijn beurt de configuratie op het pad: http://192.168.0.100/install.ipxe

Stap 4 — Menu configuratie

Ga naar de hoofdmap van uw website.
Standaard is dit: C:inetpubwwwroot

Maak een tekstbestand aan install.ipxe.

En configureer het volgens de documentatie en uw behoeften.
Er is ook een Nederlandstalige beschrijving van de commando's.
Ik heb gebruik gemaakt van this de handleiding bij het configureren van mijn WDS.

Voorbeeld van configuratie 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

U kunt meer lezen over de configuratie voor het opstarten van winPE hier.

Stap 5 — MIME-types

Na het aanmaken van het menu en het toevoegen van alle benodigde bestanden in de hoofdmap van IIS,
moet u toegang tot deze bestanden geven.

Want zelfs als u probeert een bestand vanuit de browser te downloaden via het adres, krijgt u de fout: HTTP 404.3 - Not Found.
Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

Hiervoor moet u in het IIS-configuratiescherm MIME-typen toevoegen, overeenkomstig
met de bestandsextensies die u via http wilt uploaden.

Ik heb niet gezocht naar welk MIME-type het beste geschikt is voor deze doeleinden, en heb application/octet-stream, waarna alles werkte.

Voor bestanden zonder extensie, gebruik een punt.

Zo:

Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

Conclusie

Uiteindelijk krijgen we de mogelijkheid om op te starten via het lokale netwerk via UEFI.

Als we alles goed hebben gedaan, dan zou het ongeveer zo'n opstartmenu eruit zien:

Functionaliteit van WDS uitbreiden: mogelijkheid om op te starten in UEFI toevoegen

Als u de belangrijkste tools heeft voorbereid en niet te veel moeite doet met de configuratie, dan duurt het ongeveer 10-20 minuten om deze mogelijkheid te implementeren.
Het heeft mij 2 werkdagen gekost, omdat ik veel moest googelen.

Succes met de uitvoering!

Bedankt voor uw aandacht en een groot dank aan de mensen wiens artikelen mij geholpen hebben!
Op Habr is het: Ingtar en Deeptown.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster