Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

Pozdrav svima!

U ovom članku opisani su koraci koje je potrebno poduzeti kako biste svom WDS-u dodali mogućnost pokretanja u UEFI načinu.

Odnosno, upute u ovom članku pretpostavljaju da već imate otprilike sljedeću konfiguraciju:

1. Windows Server 2012R2 (ili noviji) 2. Potpuno podešeni DHCP za rad s WDS-om 3. Sam WDS 4. IIS 5. Virtualna mašina ili PC s Ubuntu

Također, ovdje su opisani postupci koji mi nisu donijeli očekivani rezultat.
Opisao sam ih kako bih olakšao pretraživanje i uštedio vaše vrijeme.

Predgovor

Na poslu sam nekako postavio WDS s brojnim funkcionalnostima, budući da sam bio umoran od stalnog trčanja s hrpom USB flash diskova i ponovnog zapisa.

Pomoćne članke pronašao sam ovdje:
Dodajemo WDS univerzalnosti
Izbornik za pokretanje PXE s System Center Configuration Managerom


Izgleda ovako

Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

I sve je bilo dobro, dodavali su se novi slike za pokretanje, WinPE slika je obogaćena novim mogućnostima i sve je radilo.

Međutim, većina uređaja više ne podržava BIOS/Legacy način pokretanja, a ako ga podržava, njegovo uključivanje može biti na vrlo neprimjetnom mjestu.

Osim toga, instalacija Windows-a u legacy načinu, kada postoji mogućnost instalacije u UEFI — nije cool.

Na kraju sam odlučio dodati mogućnost pokretanja u UEFI, i krenuo sam u Google.

Ali nisam pronašao strukturirane informacije kako dobiti radni WDS + UEFI.
Zato sam odlučio napisati ovaj članak.

Prije nego započnem, opisat ću problem koji mi je oduzeo najviše vremena.

Pri dodavanju UEFI u WDS može se dogoditi sljedeća, prilično nejasna situacija:

Ako dodate boot datoteku u WDS i prilikom pokušaja pokretanja na uređaju
u UEFI vidite sljedeći tekst:
Odabrani uređaj za pokretanje nije uspio. Pritisnite za nastavak.
Ili Uređaj za pokretanje nije pronađen
Ali boot u legacy načinu radi.
Tada je jedan od mogućih uzroka - nedostatak datoteke wdsmgfw.efi,
na sljedećem putu: %WDSpath%Bootx64wdsmgfw.efi

Možete ga preuzeti ovdje: C:\Windows\System32\RemInst\bootx64wdsmgfw.efi
Ili, ako vam iz nekog razloga nedostaje ova datoteka, ja sam je stavio na google.
Za ovo rješenje zahvaljujem dečkima s reddita.

Ovaj problem mi je oduzeo najviše vremena, jer sam mislio da problem leži negdje u konfiguraciji WDS-a ili DHCP-a.

Podešavao sam politike putem dodavanja klase dobavljača za različite arhitekture i konfiguriranjem DHCP opcija 060, 066, 067. Upute o postavkama DHCP politika.

ASCII arhitekture za postavku DHCP

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

Također, isprobao sam razne verzije pokretačkih datoteka .efi

  • syslinux
  • grub 2

Također sam pokušavao pronaći problem u zapisniku događaja.
win + r -> eventvwr -> Zapisnici aplikacija i usluga -> Microsoft -> Windows -> Deployment-Services-Diagnostics

No, kao što sam već spomenuo, problem je bio u datoteci wdsmgfw.efi.
Ili sam je slučajno obrisao, ili se nije kopirala tijekom instalacije
i postavke WDS-a.

Pa, krenimo!

Upute

Korak 1 — Provjera funkcionalnosti WDS-a

Uzmite bilo koji uređaj ili virtualnu mašinu koja podržava mrežno pokretanje u UEFI modu i pokušajte se pokrenuti.

Trebali biste vidjeti sljedeći prikaz:

Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

Ako je tako, izvrsno, možemo nastaviti.
Ako nije, pogledajte što sam napisao u uvodu.

Korak 2 — Izgradnja pokretačke datoteke iPXE

Pokrećemo prethodno pripremljeni Ubuntu, otvaramo terminal i umetnemo ovu liniju:

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

Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

Ovdje bih želio napomenuti da ćete možda morati dodati pakete potrebne za kompajliranje C i C++ u Ubuntu.
Jednostavno, već su bili instalirani kod mene.

Je li preuzeto? — Odlično!
Sada treba napraviti konfiguracijsku datoteku za izgradnju.
U terminalu pišemo:

cd ipxe/src
gedit chain.ipxe

I umetnite sljedeći kod u ovu datoteku, a zatim spremite:

#!ipxe

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

Ponovno idemo u terminal i pokrećemo kompajliranje:

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

Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

Ako je sve u redu, trebali biste dobiti sljedeći izlaz u terminalu:

Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

A datoteka ipxe.efi, na putu: ipxe/src/bin-x86_64-efi/ipxe.efi
Ako iz bilo kojeg razloga niste mogli samostalno kompilirati,
priložio sam svoj datoteka.
On je kompajliran za pokretanje s http://192.168.0.100/install.ipxe

To bi bilo sve za Ubuntu.

Korak 3 — Dodavanje ipxe.efi u WDS

Uzmi datoteku koju smo dobili u drugom koraku i kopiraj je na put:
%WDSpath%Bootx64%your-boot-folderIBOOT
Nakon toga je preimenuj u BOOTX64.EFI.
To nije obavezno, samo je lakše.

Zatim pokrećemo cmd s administrator pravima i upišemo sljedeće naredbe:

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

Time postavljamo dobivenu datoteku za pokretanje preko WDS-a.

Provjerimo konfiguraciju:

wdsutil /get-server /Show:Config

Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

Također sam kopirao datoteku ipxe.efi, preimenovao je u BOOTIA32.EFI i konfigurisao pokretanje za nju, za svaki slučaj. architecture:x86uefi
U osnovi nema smisla jer datoteka Bootmgfw.efi ne podržava x86.

Provjerimo što smo postigli.
Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI
Odlično, WDS prenosi našu datoteku za pokretanje i ona zauzvrat traži konfiguraciju na putu: http://192.168.0.100/install.ipxe

Korak 4 — Konfiguracija izbornika

Idemo u glavnu mapu vaše stranice.
Po zadanim postavkama, to je: C:inetpubwwwroot

Stvaramo tekstualnu datoteku install.ipxe.

I konfiguriramo je prema dokumentacijom i vašim potrebama.
Također imamo verziju na ruskom opis naloga.
Koristio sam ove upute za konfiguraciju svog WDS-a.

Primjer 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

O konfiguraciji za pokretanje winPE-a možete pročitati ovdje.

Korak 5 — MIME tipovi

Nakon stvaranja izbornika i dodavanja svih potrebnih datoteka u glavnu mapu IIS-a,
trebali bismo im omogućiti pristup.

Jer čak i ako pokušate preuzeti datoteku iz preglednika preko njene adrese, dobit ćete pogrešku: HTTP 404.3 - Nije pronađeno.
Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

Za to je potrebno u upravljačkoj ploči IIS-a dodati MIME tipove, prema
ekstenzijama datoteka koje će se učitavati putem http-a.

Nisam tražio koji MIME tip je bolji za ove svrhe, pa sam postavio application/oсtet-stream, nakon čega je sve počelo raditi.

Za datoteke bez ekstenzije, koristite točku.

Ovako:

Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

Zaključak

Na kraju, imamo mogućnost pokretanja putem lokalne mreže s UEFI-jem.

Ako smo sve napravili ispravno, bit će otprilike ovakav izbornik za odabir pokretanja:

Proširujemo funkcionalnost WDS: dodavanje mogućnosti pokretanja u UEFI

Ako ste pripremili osnovne alate i nećete se previše zamarati konfiguracijom, trebate otprilike 10-20 minuta za implementaciju ove mogućnosti.
Meni je trebalo 2 radna dana jer sam morao puno tražiti.

Sretno s implementacijom!

Hvala na pažnji i ogroman hvala ljudima čiji su mi članci pomogli!
Na Habré to je: Ingtar i Deeptown.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster