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 UbuntuDaarnaast 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:
Het ziet er zo uit

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 .
Bedankt voor deze oplossing, jongens van .
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. 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:

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
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.ipxeEn plak in dit bestand de volgende code, waarna je het opslaat:
#!ipxe
dhcp
chain http://%IP-address-your-IIS-server%/install.ipxeLaten we teruggaan naar de terminal en de compilatie starten:
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
Als alles in orde is, zou je de volgende uitvoer in de terminal moeten krijgen:

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 .
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:x64uefiMet dit stellen we het verkregen bestand in voor opstarten via WDS.
Laten we de configuratie controleren:
wdsutil /get-server /Show:Config
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.

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 en uw behoeften.
Er is ook een Nederlandstalige van de commando's.
Ik heb gebruik gemaakt van 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 failedU kunt meer lezen over de configuratie voor het opstarten van winPE .
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.

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:

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:

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: en .
Bron: habr.com
