Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

Pozdravljeni vsi!

V tem članku so opisani koraki, ki jih morate izvesti, če želite svojemu WDS dodati možnost zagona UEFI.

Tisti. Navodila v tem članku predvidevajo, da že imate to konfiguracijo:

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

Tukaj so tudi opisana dejanja, ki mi niso prinesla pravega rezultata.
Opisal sem jih, da vam olajšam iskanje in prihranim čas.

Predgovor

V službi sem naredil WDS z veliko dobrotami, tk. utrujen od nenehnega tekanja s kupom bliskovnih pogonov in prepisovanja le-teh.

Mimogrede so mi pomagali ti članki:
Dodajanje vsestranskosti WDS
Zagonski meni PXE s System Center Configuration Manager


Izgleda takole

Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

In vse je bilo v redu, dodane so bile nove slike za nalaganje, slika winPE je bila preraščena z novimi funkcijami in vse je delovalo.

Vendar še zdaleč ne podpirajo vse naprave zagonskega načina BIOS/Legacy, ali če ga podpirajo, potem je njegova vključitev morda na zelo neočitnem mestu.

Da, in namestitev oken v starem načinu, ko je možna namestitev v UEFI, ni kul.

Posledično sem se odločil dodati možnost zagona v UEFI in šel k Googlu.

Vendar nisem našel strukturiranih informacij o tem, kako dobiti delujoč WDS + UEFI.
Pravzaprav sem se zato odločil napisati ta članek.

Preden začnem, bom opisal težavo, ki je vzela največ časa.

Pri dodajanju UEFI v WDS je možna naslednja, precej neočitna situacija:

Če dodate zagonsko datoteko v WDS in ko poskušate zagnati napravo
v UEFI vidite naslednje besedilo:
The selected boot device failed. Press <Enter> to Continue.
Or Boot Device Not Found
Toda nalaganje v legacy deluje za vas.
Potem je ena od možnih možnosti odsotnost datoteke wdsmgfw.efi,
po naslednji poti: %WDSpath%Bootx64wdsmgfw.efi

Prevzamete ga lahko tukaj: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Če pa ta datoteka iz nekega razloga manjka, sem jo objavil na google.
Za to rešitev, hvala fantje iz reddit.

S to težavo sem ubil največ časa, saj. Mislil sem, da je težava nekje v konfiguraciji WDS ali DHCP.

Konfigurirane politike z dodajanjem razredov dobaviteljev za različne arhitekture in nastavitvijo možnosti DHCP 060, 066, 067. Navodila za konfiguriranje pravilnikov DHCP.

Arhitekture v ASCII za konfiguracijo DHCP

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

Preizkusil sem tudi različne možnosti za zagonske datoteke. .efi

  • SYSLINUX
  • žrtev 2

Prav tako sem poskušal najti težavo v dnevniku dogodkov.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Toda, kot sem rekel zgoraj, je bila težava v datoteki wdsmgfw.efi.
Ali sem ga pomotoma izbrisal sam, ali pa ni bil skopiran med namestitvijo
in konfiguracijo WDS.

No, pa začnimo!

Navodila

1. stopnja - Preverite, ali WDS deluje

Vzemite katero koli napravo ali virtualni stroj s podporo za zagon v načinu UEFI prek omrežja in poskusite zagnati.

Morali bi imeti naslednjo sliko:

Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

Če je tako, super, lahko nadaljujete.
Če ne, potem poglejte, kaj sem napisal v predgovoru.

Faza 2 - Gradnja zagonske datoteke iPXE

Zaženemo vnaprej pripravljen Ubuntu, odpremo terminal in prilepimo to vrstico:

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

Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

Tukaj bi rad dal majhno pripombo, da boste morda morali dodati pakete v Ubuntu, ki so potrebni za prevajanje C in C ++.
Pravkar jih imam nameščene.

Preneseno? - Super!
Zdaj morate narediti konfiguracijsko datoteko za sklop.
V terminal zapišemo:

cd ipxe/src
gedit chain.ipxe

In prilepite naslednjo kodo v to datoteko in nato shranite:

#!ipxe

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

Vrnemo se na terminal in začnemo kompilacijo:

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

Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

Če je vse v redu, bi morali v terminalu dobiti naslednji izpis:

Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

In datoteko ipxe.efi, spotoma: ipxe/src/bin-x86_64-efi/ipxe.efi
Če iz nekega razloga ne morete prevesti sami,
Priložil sem svojega datoteko.
Preveden je za zagon http://192.168.0.100/install.ipxe

To je vse za Ubuntu.

3. korak – dodajanje ipxe.efi v WDS

Vzamemo datoteko, ki smo jo prejeli v drugi fazi, in jo med potjo kopiramo:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Ko ga preimenujemo v BOOTX64.EFI.
Ni nujno, samo bolj priročno je.

Nato zaženemo cmd v imenu skrbnika in napišite naslednje ukaze:

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

To bo nastavilo, da se nastala datoteka prenese prek WDS.

Preverimo konfiguracijo:

wdsutil /get-server /Show:Config

Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

Kopiral sem tudi datoteko ipxe.efi, jo preimenoval v BOOTIA32.EFI in konfiguriral zagon zanjo, za vsak slučaj. architecture:x86uefi
Toda na splošno to nima smisla, ker. Datoteka Bootmgfw.efi ne podpira x86

Preverimo, kaj se je zgodilo.
Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI
Odlično, WDS pošlje našo datoteko za prenos, ta pa poišče konfiguracijo na poti: http://192.168.0.100/install.ipxe

4. korak – Konfiguracija menija

Pojdite v korensko mapo svojega spletnega mesta.
Privzeto je: C:inetpubwwwroot

Ustvari besedilno datoteko install.ipxe.

in ga konfigurirajte glede na dokumentacijo in vaše potrebe.
Obstaja tudi ruski jezik описание ukazi.
Užival sem to navodila pri konfiguraciji vašega WDS.

primer konfiguracije 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

Preberete lahko o konfiguraciji za nalaganje winPE tukaj.

Stopnja 5 - vrste MIME

Ko ustvarite meni in dodate vse potrebne datoteke v korensko mapo IIS,
morate jim omogočiti dostop.

Ker tudi če poskusite prenesti datoteko iz brskalnika, boste na njenem naslovu prejeli napako: HTTP 404.3 - Not Found.
Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

Če želite to narediti, morate na nadzorni plošči IIS dodati vrste MIME v skladu
s končnicami datotek, ki jih boste prenesli prek http.

Nisem iskal, katera vrsta MIME je najboljša za ta namen, in sem vprašal application/octet-stream, potem pa je vse delovalo.

Za datoteke, ki nimajo končnice, uporabite piko.

Tukaj tako:

Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

Zaključek

Na koncu dobimo možnost zagona prek lokalnega omrežja prek UEFI.

Če smo vse naredili pravilno, bo nekaj podobnega temu meniju za izbiro zagona:

Razširitev funkcionalnosti WDS: dodajanje zmožnosti zagona UEFI

Če ste pripravili osnovna orodja in se ne boste obremenjevali s konfiguracijo, potem za implementacijo te funkcije potrebujete približno 10-20 minut.
Vzelo mi je 2 delovna dneva, ker. Moral sem veliko googlati.

Uspešna implementacija!

Hvala za vašo pozornost in hvala tistim ljudem, katerih članki so mi pomagali!
Na Habréju je: Ingtar и Deeptown.

Vir: www.habr.com

Dodaj komentar