Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Bună ziua tuturor!

Acest articol descrie pașii pe care trebuie să îi urmați pentru a adăuga capacitatea de pornire UEFI la WDS.

Acestea. Instrucțiunile din acest articol presupun că aveți deja următoarea configurație:

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

De asemenea, aici sunt descrise acțiuni care nu mi-au adus rezultatul potrivit.
Le-am descris pentru a facilita căutarea și pentru a vă economisi timp.

Prefață

Am făcut un WDS la serviciu cu o mulțime de bunătăți, nu. obosit să alerg în mod constant cu o grămadă de unități flash și să le suprascrie.

Aceste articole m-au ajutat de altfel:
Adăugarea de versatilitate WDS
Meniul de pornire PXE cu System Center Configuration Manager


Arata cam asa

Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Și totul a fost în regulă, au fost adăugate imagini noi pentru încărcare, imaginea winPE a fost acoperită de noi funcții și totul a funcționat.

Dar, departe de toate dispozitivele acceptă modul de pornire BIOS / Legacy, sau dacă o fac, atunci includerea acestuia poate fi într-un loc foarte neevident.

Da, și instalarea Windows în modul vechi, când este posibil să se instaleze în UEFI, nu este mișto.

Drept urmare, am decis să adaug capacitatea de a porni în UEFI și am mers la Google.

Dar nu am găsit informații structurate despre cum să obțineți un WDS + UEFI funcțional.
De fapt, de aceea am decis să scriu acest articol.

Înainte de a începe, voi descrie problema care a luat cel mai mult timp.

Când adăugați UEFI la WDS, este posibilă următoarea situație, destul de neevidentă:

Dacă adăugați un fișier de boot la WDS și când încercați să porniți pe dispozitiv
în UEFI vedeți următorul text:
The selected boot device failed. Press <Enter> to Continue.
sau Boot Device Not Found
Dar încărcarea în moștenire funcționează pentru tine.
Atunci una dintre opțiunile posibile este absența unui fișier wdsmgfw.efi,
pe urmatoarea cale: %WDSpath%Bootx64wdsmgfw.efi

Il poti lua aici: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Sau, dacă din anumite motive acest fișier lipsește pentru tine, l-am postat pe google.
Pentru această soluție, mulțumesc băieți de la reddit.

Cu această problemă, am ucis cel mai mult timp, pentru că. Am crezut că problema este undeva în configurația WDS sau DHCP.

Politicile configurate prin adăugarea de clase de furnizor pentru diferite arhitecturi și setarea opțiunilor DHCP 060, 066, 067. Instrucție pentru configurarea politicilor DHCP.

Arhitecturi în ASCII pentru configurarea DHCP

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

De asemenea, am încercat diverse opțiuni pentru fișierele de boot. .efi

  • syslinux
  • larve 2

De asemenea, am încercat să găsesc problema în jurnalul de evenimente.
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Dar, așa cum am spus mai sus, problema stă în dosar wdsmgfw.efi.
Fie l-am șters din greșeală, fie nu a fost copiat în timpul instalării
și configurarea WDS.

Ei bine, să începem!

Instrucție

Etapa 1 - Verificați dacă WDS funcționează

Luați orice dispozitiv sau mașină virtuală cu suport pentru pornirea în modul UEFI prin rețea și încercați să porniți.

Ar trebui să aveți următoarea imagine:

Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Dacă da, grozav, poți continua.
Dacă nu, atunci vezi ce am scris în prefață.

Etapa 2 - Construirea fișierului de pornire iPXE

Lansăm Ubuntu pre-pregătit, deschidem un terminal și lipim această linie:

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

Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Aici aș dori să fac o mică remarcă că poate fi necesar să adăugați pachete la Ubuntu care sunt necesare pentru compilarea C și C ++.
Tocmai le am instalat.

Descărcat? - Grozav!
Acum trebuie să facem un fișier de configurare pentru build.
În terminal scriem:

cd ipxe/src
gedit chain.ipxe

Și inserați următorul cod în acest fișier, apoi salvați:

#!ipxe

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

Ne întoarcem la terminal și începem compilarea:

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

Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Dacă totul este în ordine, atunci ar trebui să obțineți următoarea ieșire în terminal:

Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Și dosar ipxe.efi, pe parcurs: ipxe/src/bin-x86_64-efi/ipxe.efi
Dacă dintr-un motiv oarecare nu puteți compila singur,
L-am atasat pe al meu fișier.
Este compilat pentru a porni de la http://192.168.0.100/install.ipxe

Asta e tot pentru Ubuntu.

Pasul 3 - Adăugarea ipxe.efi la WDS

Luăm fișierul pe care l-am primit în a doua etapă și îl copiam pe parcurs:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
După ce îl redenumim în BOOTX64.EFI.
Nu este necesar, este doar mai convenabil.

Apoi lansăm cmd în numele administratorului și scrieți următoarele comenzi:

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

Acest lucru va seta fișierul rezultat să fie descărcat prin WDS.

Să verificăm configurația:

wdsutil /get-server /Show:Config

Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Am copiat și fișierul ipxe.efi, l-am redenumit BOOTIA32.EFI și am configurat boot pentru el, pentru orice eventualitate. architecture:x86uefi
Dar, în general, acest lucru nu are sens, pentru că. Fișierul Bootmgfw.efi nu acceptă x86

Să verificăm ce s-a întâmplat.
Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI
Grozav, WDS trimite fișierul nostru pentru descărcare și, la rândul său, caută configurația de-a lungul căii: http://192.168.0.100/install.ipxe

Pasul 4 - Configurarea meniului

Accesați folderul rădăcină al site-ului dvs.
Valoarea implicită este: C:inetpubwwwroot

Creați un fișier text install.ipxe.

și configurați-l conform documentație și nevoile tale.
Există și o limbă rusă описание comenzi.
mi-a placut acest instrucțiuni atunci când vă configurați WDS.

exemplu de configurare 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

Puteți citi despre configurația pentru încărcarea winPE aici.

Etapa 5 - tipuri MIME

După crearea meniului și adăugarea tuturor fișierelor necesare în folderul rădăcină IIS,
trebuie să le dai acces.

Deoarece chiar dacă încercați să descărcați un fișier din browser, veți primi o eroare la adresa acestuia: HTTP 404.3 - Not Found.
Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Pentru a face acest lucru, trebuie să adăugați tipuri MIME în panoul de control IIS, în conformitate
cu extensii de fișiere pe care le veți descărca prin http.

Nu am căutat care tip MIME este cel mai bun pentru acest scop și am întrebat application/octet-stream, după care totul a funcționat.

Pentru fișierele care nu au extensie, utilizați un punct.

Aici:

Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Concluzie

În cele din urmă, obținem capacitatea de a porni printr-o rețea locală prin UEFI.

Dacă am făcut totul corect, atunci va exista ceva ca acest meniu de selecție de pornire:

Extinderea funcționalității WDS: adăugarea capacității de pornire UEFI

Dacă ați pregătit instrumentele de bază și nu vă veți deranja cu configurarea, atunci este nevoie de aproximativ 10-20 de minute pentru a implementa această caracteristică.
Mi-a luat 2 zile lucrătoare, pentru că. A trebuit să caut mult pe google.

Implementare cu succes!

Vă mulțumesc pentru atenție și multe mulțumiri acelor oameni ale căror articole m-au ajutat!
Pe Habré este: Ingtar и Deeptown.

Sursa: www.habr.com

Adauga un comentariu