Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Hello everyone!

Այս հոդվածը նկարագրում է այն քայլերը, որոնք դուք պետք է հետևեք՝ ձեր WDS-ին UEFI բեռնման հնարավորությունը ավելացնելու համար:

Նրանք. Այս հոդվածի հրահանգները ենթադրում են, որ դուք արդեն ունեք հետևյալ կոնֆիգուրացիան.

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

Նաև այստեղ նկարագրված են գործողություններ, որոնք ինձ պատշաճ արդյունքի չեն բերել:
Ես նկարագրեցի դրանք որոնումը հեշտացնելու և ձեր ժամանակը խնայելու համար:

Նախաբան

Ես աշխատավայրում պատրաստեցի WDS-ը շատ բարիքներով, tk. հոգնել եմ մի փունջ ֆլեշ կրիչներով անընդհատ վազելուց և դրանք վերագրանցելուց:

Ի դեպ, այս հոդվածներն ինձ օգնեցին.
WDS բազմակողմանիության ավելացում
PXE բեռնման ընտրացանկ System Center-ի կազմաձևման մենեջերի հետ


Կարծես սա է

Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Եվ ամեն ինչ լավ էր, բեռնելու համար ավելացվեցին նոր պատկերներ, winPE պատկերը ձեռք բերեց նոր հնարավորություններ և ամեն ինչ աշխատեց:

Բայց բոլոր սարքերը չեն աջակցում BIOS / Legacy boot ռեժիմին, կամ եթե դա անում են, ապա դրա ընդգրկումը կարող է լինել շատ ոչ ակնհայտ տեղում:

Այո, և Windows-ի հին ռեժիմում տեղադրելը, երբ հնարավոր է տեղադրել UEFI-ում, այնքան էլ լավ չէ:

Արդյունքում ես որոշեցի ավելացնել UEFI-ում բեռնման հնարավորությունը և գնացի Google:

Բայց ես չգտա կառուցվածքային տեղեկատվություն, թե ինչպես ստանալ աշխատանքային WDS + UEFI:
Իրականում, դրա համար էլ որոշեցի գրել այս հոդվածը։

Նախքան սկսելը, ես նկարագրելու եմ այն ​​խնդիրը, որն ամենաշատ ժամանակն է խլել:

WDS-ին UEFI ավելացնելիս հնարավոր է հետևյալ, բավականին ոչ ակնհայտ իրավիճակը.

Եթե ​​դուք ավելացնում եք բեռնման ֆայլ WDS-ում և երբ փորձում եք բեռնել սարքը
UEFI-ում տեսնում եք հետևյալ տեքստը.
The selected boot device failed. Press <Enter> to Continue.
Կամ Boot Device Not Found
Սակայն ժառանգության մեջ բեռնումն աշխատում է ձեզ համար:
Հետո հնարավոր տարբերակներից մեկը ֆայլի բացակայությունն է wdsmgfw.efi,
հետևյալ ճանապարհով. %WDSpath%Bootx64wdsmgfw.efi

Դուք կարող եք վերցնել այն այստեղ. C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Կամ, եթե ինչ-ինչ պատճառներով այս ֆայլը բացակայում է ձեզ համար, ես տեղադրել եմ այն Google.
Այս լուծման համար, շնորհակալություն տղաներին reddit.

Այս խնդրի հետ ես ամենաշատը սպանեցի, քանի որ. Ես կարծում էի, որ խնդիրն ինչ-որ տեղ WDS կամ DHCP կոնֆիգուրացիայի մեջ է:

Կազմաձևեց քաղաքականությունը՝ ավելացնելով Վաճառողի դասեր տարբեր ճարտարապետությունների համար և սահմանելով DHCP ընտրանքներ 060, 066, 067: Հրահանգավորում DHCP քաղաքականությունը կարգավորելու համար:

Ճարտարապետություններ ASCII-ում DHCP-ի կազմաձևման համար

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

Բացի այդ, ես փորձեցի բեռնման ֆայլերի տարբեր տարբերակներ: .efi

  • syslinux
  • կոճղ 2

Ես նաև փորձեցի խնդիրը գտնել Իրադարձությունների մատյանում:
win + r -> eventvwr -> Журналы приложений и служб -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Բայց, ինչպես ասացի վերևում, խնդիրը ֆայլի մեջ էր wdsmgfw.efi.
Կամ ինքս պատահաբար ջնջել եմ, կամ տեղադրման ժամանակ չի պատճենվել
և WDS-ի կարգավորում:

Դե, եկեք սկսենք:

Հրահանգավորում

Փուլ 1 - Ստուգեք, որ WDS-ն աշխատում է

Վերցրեք ցանկացած սարք կամ վիրտուալ մեքենա, որն աջակցում է UEFI ռեժիմով բեռնման համար ցանցի միջոցով և փորձեք բեռնել:

Դուք պետք է ունենաք հետևյալ պատկերը.

Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Եթե ​​այո, հիանալի, կարող եք շարունակել:
Եթե ​​ոչ, ապա տես, թե ինչ եմ գրել նախաբանում։

Փուլ 2 - iPXE Boot File-ի ստեղծում

Մենք գործարկում ենք նախապես պատրաստված Ubuntu-ն, բացում ենք տերմինալ և տեղադրում այս տողը.

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

Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Այստեղ ես կցանկանայի մի փոքր դիտողություն անել, որ դուք կարող եք Ubuntu-ին ավելացնել փաթեթներ, որոնք անհրաժեշտ են C և C ++-ը կազմելու համար:
Ես պարզապես տեղադրել եմ դրանք:

Ներբեռնե՞լ եք: - Հիանալի!
Այժմ դուք պետք է կազմաձևման ֆայլ կազմեք ժողովի համար:
Տերմինալում մենք գրում ենք.

cd ipxe/src
gedit chain.ipxe

Եվ այս ֆայլում տեղադրեք հետևյալ կոդը, այնուհետև պահպանեք.

#!ipxe

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

Մենք վերադառնում ենք տերմինալ և սկսում ենք հավաքումը.

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

Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Եթե ​​ամեն ինչ կարգին է, ապա դուք պետք է ստանաք հետևյալ ելքը տերմինալում.

Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Եվ ֆայլ ipxe.efi, ճանապարհին. ipxe/src/bin-x86_64-efi/ipxe.efi
Եթե ​​ինչ-ինչ պատճառներով չեք կարող ինքնուրույն կազմել,
Ես կցել եմ իմը ֆայլը.
Այն կազմված է բեռնման համար http://192.168.0.100/install.ipxe

Այսքանը Ubuntu-ի համար է:

Քայլ 3 - ipxe.efi-ի ավելացում WDS-ում

Վերցնում ենք երկրորդ փուլում ստացած ֆայլը և ճանապարհին պատճենում.
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Այն բանից հետո, երբ այն վերանվանենք BOOTX64.EFI:
Դա պարտադիր չէ, պարզապես ավելի հարմար է։

Այնուհետև մենք մեկնարկում ենք CMD ադմինիստրատորի անունից և գրեք հետևյալ հրամանները.

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

Սա կսահմանի, որ ստացված ֆայլը ներբեռնվի WDS-ի միջոցով:

Եկեք ստուգենք կազմաձևը.

wdsutil /get-server /Show:Config

Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Ես նաև պատճենեցի ipxe.efi ֆայլը, վերանվանեցի այն BOOTIA32.EFI և կազմաձևեցի boot-ը դրա համար, ամեն դեպքում: architecture:x86uefi
Բայց, մեծ հաշվով, սա անիմաստ է, քանի որ. Bootmgfw.efi ֆայլը չի ​​աջակցում x86

Եկեք ստուգենք, թե ինչ է տեղի ունեցել:
Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում
Հիանալի է, WDS-ն ուղարկում է մեր ֆայլը ներբեռնման համար, և այն, իր հերթին, փնտրում է կոնֆիգուրացիան ճանապարհի երկայնքով. http://192.168.0.100/install.ipxe

Քայլ 4 - մենյուի կազմաձևում

Գնացեք ձեր կայքի արմատային թղթապանակ:
Լռելյայն է. C:inetpubwwwroot

Ստեղծեք տեքստային ֆայլ install.ipxe.

և կարգավորեք այն ըստ փաստաթղթեր և ձեր կարիքները:
Կա նաև ռուսաց լեզու описание հրամաններ.
Ես վայելեցի սա է հրահանգներ ձեր WDS-ը կարգավորելիս:

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

Դուք կարող եք կարդալ WinPE-ի բեռնման կոնֆիգուրացիայի մասին այստեղ.

Փուլ 5 - MIME տեսակներ

Մենյու ստեղծելուց և բոլոր անհրաժեշտ ֆայլերը IIS արմատային թղթապանակում ավելացնելուց հետո,
դուք պետք է նրանց մուտք գործեք:

Որովհետեւ նույնիսկ եթե փորձեք ֆայլ ներբեռնել բրաուզերից, դրա հասցեում սխալ կստանաք. HTTP 404.3 - Not Found.
Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Դա անելու համար անհրաժեշտ է IIS կառավարման վահանակում ավելացնել MIME տիպերը՝ համապատասխան
ֆայլերի ընդլայնումներով, որոնք դուք կներբեռնեք http-ի միջոցով:

Ես չփնտրեցի, թե որ MIME տեսակն է լավագույնն այս նպատակով, և հարցրի application/octet-stream, որից հետո ամեն ինչ ստացվեց։

Ֆայլերի համար, որոնք չունեն ընդլայնում, օգտագործեք կետ:

Ահա այսպես.

Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Ամփոփում

Ի վերջո, մենք հնարավորություն ենք ստանում բեռնել տեղական ցանցի միջոցով UEFI-ի միջոցով:

Եթե ​​մենք ամեն ինչ ճիշտ արեցինք, ապա նման բան կլինի բեռնախցիկի ընտրության ընտրացանկից.

Ընդլայնելով WDS ֆունկցիոնալությունը. UEFI Boot-ի հնարավորությունների ավելացում

Եթե ​​դուք պատրաստել եք հիմնական գործիքները և չեք անհանգստացնի կոնֆիգուրացիան, ապա այս ֆունկցիան իրականացնելու համար պահանջվում է մոտ 10-20 րոպե:
Ինձնից 2 աշխատանքային օր պահանջվեց, քանի որ. Ստիպված էի շատ գուգլել։

Հաջող իրականացում:

Շնորհակալություն ուշադրության համար և շատ շնորհակալություն այն մարդկանց, ում հոդվածներն օգնեցին ինձ:
Habré-ում հետևյալն է. Ինգթար и Դիփթաուն.

Source: www.habr.com

Добавить комментарий