Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

Ahoj všichni!

Tento článek popisuje kroky, které musíte provést, abyste do svého WDS přidali možnost spouštění UEFI.

Tito. Pokyny v tomto článku předpokládají, že již máte následující konfiguraci:

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

Také jsou zde popsány akce, které mi nepřinesly patřičný výsledek.
Popsal jsem je pro usnadnění hledání a ušetření vašeho času.

předmluva

Udělal jsem WDS v práci se spoustou dobrot, tk. unavený z neustálého běhání s hromadou flash disků a jejich přepisování.

Pomohly mi tyto články:
Přidání všestrannosti WDS
Spouštěcí nabídka PXE s System Center Configuration Manager


Vypadá to takhle

Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

A vše bylo v pořádku, byly přidány nové obrázky pro načtení, obrázek winPE byl zarostlý novými funkcemi a vše fungovalo.

Zdaleka ne všechna zařízení však podporují spouštěcí režim BIOS / Legacy, nebo pokud ano, pak může být jeho zahrnutí na velmi nejasném místě.

Jo a instalace windows v legacy módu, kdy je možné instalovat v UEFI, není cool.

V důsledku toho jsem se rozhodl přidat možnost spouštění do UEFI a šel jsem na Google.

Nenašel jsem ale strukturované informace, jak získat funkční WDS + UEFI.
Vlastně proto jsem se rozhodl napsat tento článek.

Než začnu, popíšu problém, který zabral nejvíce času.

Při přidávání UEFI do WDS je možná následující, spíše nezřejmá situace:

Pokud přidáte spouštěcí soubor do WDS a když se pokusíte spustit na zařízení
v UEFI vidíte následující text:
The selected boot device failed. Press <Enter> to Continue.
Nebo Boot Device Not Found
Ale načítání v legacy vám funguje.
Pak je jednou z možných možností absence souboru wdsmgfw.efi,
následujícím způsobem: %WDSpath%Bootx64wdsmgfw.efi

Můžete si to vzít zde: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Nebo pokud vám z nějakého důvodu tento soubor chybí, zveřejnil jsem jej na Google.
Za toto řešení díky kluci z reddit.

Tímto problémem jsem zabil nejvíce času, protože. Myslel jsem, že problém je někde v konfiguraci WDS nebo DHCP.

Konfigurované zásady přidáním tříd dodavatelů pro různé architektury a konfigurací možností DHCP 060, 066, 067. Návod pro konfiguraci zásad DHCP.

Architektury v ASCII pro konfiguraci DHCP

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

Také jsem vyzkoušel různé možnosti pro spouštěcí soubory. .efi

  • SYSLINUX
  • grub 2

Také jsem se pokusil najít problém v protokolu událostí.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Ale jak jsem řekl výše, problém byl v souboru wdsmgfw.efi.
Buď jsem to omylem smazal sám, nebo se to při instalaci nezkopírovalo
a konfiguraci WDS.

No, pojďme začít!

Návod

Fáze 1 – Ověřte, že WDS funguje

Vezměte jakékoli zařízení nebo virtuální stroj s podporou spouštění v režimu UEFI přes síť a zkuste nabootovat.

Měli byste mít následující obrázek:

Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

Pokud ano, skvělé, můžete pokračovat.
Pokud ne, podívejte se, co jsem napsal v předmluvě.

Fáze 2 – Vytvoření spouštěcího souboru iPXE

Spustíme předpřipravené Ubuntu, otevřeme terminál a vložíme tento řádek:

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

Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

Zde bych si dovolil malou poznámku, že možná budete muset do Ubuntu přidat balíčky, které jsou nezbytné pro kompilaci C a C++.
Mám je jen nainstalované.

Staženo? - Skvělý!
Nyní musíte vytvořit konfigurační soubor pro sestavu.
V terminálu napíšeme:

cd ipxe/src
gedit chain.ipxe

A vložte následující kód do tohoto souboru a poté uložte:

#!ipxe

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

Vrátíme se k terminálu a spustíme kompilaci:

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

Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

Pokud je vše v pořádku, měli byste v terminálu získat následující výstup:

Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

A soubor ipxe.efi, při cestě: ipxe/src/bin-x86_64-efi/ipxe.efi
Pokud z nějakého důvodu nemůžete kompilovat sami,
Připojil jsem svůj файл.
Je zkompilován tak, aby se z něj bootovalo http://192.168.0.100/install.ipxe

To je pro Ubuntu vše.

Krok 3 – Přidání ipxe.efi do WDS

Vezmeme soubor, který jsme obdrželi ve druhé fázi, a zkopírujeme jej po cestě:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Poté, co jej přejmenujeme na BOOTX64.EFI.
Není to nutné, je to jen pohodlnější.

Poté spustíme cmd jménem správce a napište následující příkazy:

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

Tím nastavíte výsledný soubor ke stažení přes WDS.

Zkontrolujeme konfiguraci:

wdsutil /get-server /Show:Config

Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

Také jsem zkopíroval soubor ipxe.efi, přejmenoval ho na BOOTIA32.EFI a pro jistotu pro něj nakonfiguroval boot. architecture:x86uefi
Ale celkově to nedává smysl, protože. Soubor Bootmgfw.efi nepodporuje x86

Pojďme zkontrolovat, co se stalo.
Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI
Výborně, WDS odešle náš soubor ke stažení a on na oplátku hledá konfiguraci podél cesty: http://192.168.0.100/install.ipxe

Krok 4 – Konfigurace nabídky

Přejdeme do kořenové složky vašeho webu.
Výchozí hodnota je: C:inetpubwwwroot

Vytvořte textový soubor install.ipxe.

a nakonfigurujte jej podle dokumentace a vaše potřeby.
Existuje také ruský jazyk описание příkazy.
užil jsem si tohle pokyny při konfiguraci vašeho WDS.

Příklad konfigurace 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

Můžete si přečíst o konfiguraci pro načítání winPE zde.

Fáze 5 - MIME typy

Po vytvoření nabídky a přidání všech potřebných souborů do kořenové složky IIS,
musíte jim umožnit přístup.

Protože i když se pokusíte stáhnout soubor z prohlížeče, zobrazí se chyba na jeho adrese: HTTP 404.3 - Not Found.
Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

Chcete-li to provést, musíte do ovládacího panelu služby IIS přidat typy MIME
s příponami souborů, které si stáhnete přes http.

Nehledal jsem, který typ MIME je pro tento účel nejlepší, a zeptal jsem se application/octet-stream, po kterém vše fungovalo.

U souborů, které nemají příponu, použijte tečku.

Zde:

Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

Závěr

Nakonec získáme možnost bootování přes místní síť přes UEFI.

Pokud jsme vše udělali správně, bude zde něco jako tato nabídka výběru spouštění:

Rozšíření funkčnosti WDS: Přidání spouštěcí schopnosti UEFI

Pokud máte připraveny základní nástroje a nebudete se obtěžovat s konfigurací, pak implementace této funkce trvá asi 10-20 minut.
Trvalo mi to 2 pracovní dny, protože. Musel jsem hodně googlit.

Úspěšná realizace!

Děkuji za pozornost a moc děkuji lidem, jejichž články mi pomohly!
Na Habré je to: Ingtar и Deeptown.

Zdroj: www.habr.com

Přidat komentář