Ahojte všetci!
V tomto článku sú popísané kroky, ktoré je potrebné vykonať na pridanie možnosti spúšťania v režime UEFI do vášho WDS.
To znamená, že pokyny v tomto článku predpokladajú, že už máte približne nasledujúcu konfiguráciu:
1. Windows Server 2012R2 (alebo novšie)
2. Kompletné nastavenie DHCP na prácu s WDS
3. Samotný WDS
4. IIS
5. Virtuálny stroj alebo PC s UbuntuTu sú tiež opísané kroky, ktoré mi nepriniesli požadovaný výsledok.
Opísal som ich, aby som uľahčil hľadanie a ušetril váš čas.
Úvod
Raz som na práci nastavil WDS s množstvom funkcií, pretože ma unavovalo neustále behanie s kopou flash diskov a ich prepisovaním.
Pomohli mi vtedy tieto články:
Vyzerá to takto

A všetko bolo v poriadku, pridávali sa nové obrazy na spúšťanie, obraz winPE sa obohacoval novými funkciami a všetko fungovalo.
Ale už nie všetky zariadenia podporujú režim spúšťania BIOS/Legacy, alebo ak ho podporujú, jeho zapnutie sa môže nachádzať na veľmi neprehľadnom mieste.
A inštalácia systému Windows v režime legacy, keď je možnosť inštalácie v UEFI — nie je optimálna.
Nakoniec som sa rozhodol pridať možnosť spúšťania v UEFI a vydal som sa na Google.
Ale štrukturované informácie o tom, ako získať funkčný WDS + UEFI, som nenašiel.
Presne preto som sa rozhodol napísať tento článok.
Predtým ako začnem, opíšem problém, ktorý mi vzal najviac času.
Pri pridávaní UEFI k WDS môže nastať nasledujúca, dosť nejasná situácia:
Ak pridávate spúšťací súbor k WDS a pri pokuse o spustenie zariadenia
v UEFI vidíte nasledujúci text:
The selected boot device failed. Press to Continue.
Alebo Boot Device Not Found
Ale spúšťanie v legacy režime funguje.
Potom jednou z možných variant je absencia súboru wdsmgfw.efi,
na nasledujúcej ceste: %WDSpath%Bootx64wdsmgfw.efi
Môžete ho získať tu: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Alebo, ak vám tento súbor z nejakého dôvodu chýba, zverejnil som ho na .
Za toto riešenie ďakujem chalanom z .
S týmto problémom som strácal najviac času, pretože som si myslel, že problém je niekde v konfigurácii WDS alebo DHCP.
Nastavoval som politiky pridaním Vendor Classes (Klasifikácia dodávateľov) pre rôzne architektúry a nastavením možností DHCP 060, 066, 067. o nastavení politík DHCP.
Architektúry v ASCII pre nastavenie DHCP
PXEClient:Arch:00000 — BIOS/Legacy
PXEClient:Arch:00006 — UEFI x86
PXEClient:Arch:00007 — UEFI x64
Tiež som skúšal rôzne varianty zavádzacích súborov .efi
- syslinux
- grub 2
Tiež som sa snažil nájsť problém v Zázname udalostí.
win + r -> eventvwr -> Záznamy aplikácií a služieb -> Microsoft -> Windows -> Deployment-Services-Diagnostics
Ale, ako som už povedal vyššie, problém bol v súbore wdsmgfw.efi.
Buď som ho náhodou sám vymazal, alebo sa pri inštalácii nekopíroval
a nastavení WDS.
Tak poďme na to!
Návod
Fáza 1 — Kontrola funkčnosti WDS
Vezmite akékoľvek zariadenie alebo virtuálny stroj, ktorý podporuje zavádzanie v režime UEFI cez sieť a pokúste sa načítať.
Mali by ste vidieť nasledujúci obraz:

Ak áno, skvele, môžeme pokračovať.
Ak nie, pozrite sa, čo som napísal v predslove.
Fáza 2 — Zostavenie zavádzacieho súboru iPXE
Spustíme vopred pripravenú Ubuntu, otvoríme terminál a vložíme tento riadok:
git clone https://git.ipxe.org/ipxe.git ipxe
Chcel by som pridať malú poznámku, že možno budete musieť v Ubuntu pridať balíky potrebné na kompiláciu C a C++.
Ja som ich už mal nainštalované.
Stiahlo sa? — Skvele!
Teraz je potrebné vytvoriť konfiguračný súbor pre zostavenie.
V termináli napíšeme:
cd ipxe/src
gedit chain.ipxeA vložíme do tohto súboru nasledujúci kód, po ktorom ho uložíme:
#!ipxe
dhcp
chain http://%IP-address-your-IIS-server%/install.ipxeIdeme opäť do terminálu a spúšťame kompiláciu:
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
Ak je všetko v poriadku, mali by ste vidieť nasledujúci výstup v termináli:

A súbor ipxe.efi, na ceste: ipxe/src/bin-x86_64-efi/ipxe.efi
Ak sa vám z nejakého dôvodu nepodarilo skompilovať ho sami,
priložil som svoj .
Je skompilovaný na zavádzanie z http://192.168.0.100/install.ipxe
Na tomto s Ubuntu končíme.
Fáza 3 — Pridanie ipxe.efi do WDS
Zoberieme súbor, ktorý sme získali v druhej fáze a skopírujeme ho na cestu:
%WDSpath%Bootx64%your-boot-folderIBOOT
Potom ho premeníme na BOOTX64.EFI.
Nie je to povinné, ale je to pohodlnejšie.
Potom spustíme cmd ako administrátor a napíšeme nasledujúce príkazy:
wdsutil /set-server /bootprogram:Bootx64%your-boot-folderIBOOTBOOTX
64.EFI /architecture:x64uefi
а
wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folderIBOOTBOOTX
64.EFI /architecture:x64uefiTýmto nastavíme získaný súbor na zavádzanie cez WDS.
Skontrolujeme konfiguráciu:
wdsutil /get-server /Show:Config
Takisto som skopíroval súbor ipxe.efi, premenujem ho na BOOTIA32.EFI a nakonfiguroval načítanie pre neho, pre prípad. architecture:x86uefi
Ale vo veľkej miere to nemá zmysel, pretože súbor Bootmgfw.efi nepodporuje x86
Skontrolujeme, čo sme dosiahli.

Výborne, WDS prenáša náš súbor na načítanie a ten následne hľadá konfiguráciu na ceste: http://192.168.0.100/install.ipxe
Krok 4 — Konfigurácia menu
Prejdite do koreňového priečinka vášho webu.
Predvolene je to: C:inetpubwwwroot
Vytvorte textový súbor install.ipxe.
A nastavte ho v súlade s a vašimi potrebami.
Taktiež je k dispozícii aj slovenská verzia príkazov.
Používal som návod pri konfigurácii svojho WDS.
Príklad konfigurácie 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 failedO konfigurácii pre načítanie winPE sa môžete dočítať .
Krok 5 — MIME typy
Po vytvorení menu a pridaní všetkých potrebných súborov do koreňového priečinka IIS,
je potrebné im udeliť prístup.
Keďže aj keby ste sa pokúsili stiahnuť súbor z prehliadača, dostanete chybu: HTTP 404.3 - Not Found.

Na to je potrebné v ovládacom paneli IIS pridať MIME typy, podľa
prípon súborov, ktoré sa budú načítavať cez http.
Nehľadal som, ktorý MIME typ je pre tieto účely najlepší, a nastavil som application/octet-stream, po čom všetko fungovalo.
Pre súbory, ktoré nemajú príponu, použite bodku.
Takto:

Záver
Nakoniec máme možnosť načítania cez lokálnu sieť pomocou UEFI.
Ak sme všetko urobili správne, malo by byť približne takéto zvolenie načítania:

Ak máte pripravené základné nástroje a nebudete sa zaoberať konfiguráciou, realizácia tejto možnosti trvá približne 10-20 minút.
Mne to trvalo 2 pracovné dni, pretože som musel veľa googliť.
Úspešnú realizáciu!
Ďakujem za pozornosť a veľké poďakovanie tým ľuďom, ktorých články mi pomohli!
Na Habré to je: a .
Zdroj: habr.com
