Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

Hej alla!

I denna artikel beskrivs stegen som behövs för att lÀgga till möjlighet till UEFI-bootning till din WDS.

D.v.s. instruktionen i denna artikel förutsÀtter att du har en ungefÀrlig konfiguration enligt följande:

1. Windows Server 2012R2 (eller nyare)
2. Helt konfigurerad DHCP för att arbeta med WDS
3. SjÀlva WDS
4. IIS
5. En virtuell maskin eller PC med Ubuntu

Detta inkluderar ocksÄ ÄtgÀrder som inte gav mig det önskade resultatet.
Jag har beskrivit dem för att underlÀtta sökningen och spara din tid.

Förord

Jag satte upp WDS med flera funktioner pÄ jobbet, eftersom jag var trött pÄ att stÀndigt springa runt med en massa stickor och ÄterbrÀnna dem.

Dessa artiklar hjÀlpte mig för övrigt dÄ:
LĂ€gga till WDS-universalitet
PXE-installationsmeny med System Center Configuration Manager


SÄ hÀr ser det ut

Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

Och allt gick bra, nya bootbilder lades till, winPE-bilden fick fler funktioner och allt fungerade.

Men lÄngt ifrÄn alla enheter stöder BIOS/Legacy bootlÀge, och Àven om de gör det kan aktiveringen befinna sig pÄ en mycket otydlig plats.

Och att installera Windows i legacylĂ€ge nĂ€r det finns möjlighet att installera i UEFI – Ă€r inte optimalt.

SÄ jag bestÀmde mig för att lÀgga till möjligheten för UEFI-bootning och sökte pÄ Google.

Men jag fann ingen strukturerad information om hur man fÄr en fungerande WDS + UEFI.
SĂ„ anledningen till att jag skrev denna artikel.

Innan jag börjar kommer jag att beskriva problemet som tog mest tid.

Vid tillÀgg av UEFI till WDS kan en ganska otydlig situation uppstÄ:

Om du lÀgger till en bootfil till WDS och försöker boota pÄ en enhet
i UEFI ser du följande text:
The selected boot device failed. Press to Continue.
Eller Boot Device Not Found
Men bootning i legacy fungerar.
DÄ kan en av de möjliga orsakerna vara avsaknaden av filen wdsmgfw.efi,
i följande sökvÀg: %WDSpath%Bootx64wdsmgfw.efi

Du kan hÀmta den hÀr: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Eller om du av nÄgon anledning saknar denna fil har jag laddat upp den pÄ google.
Tack för denna lösning till grabbarna frÄn reddit.

Jag la ner mest tid pÄ detta problem, eftersom jag trodde att det var nÄgot fel pÄ konfigurationen av WDS eller DHCP.

Jag justerade policyer genom att lÀgga till Vendor Classes för olika arkitekturer och konfigurerade DHCP-alternativ 060, 066, 067. Instruktion om att justera DHCP-policyer.

Arkitekturer i ASCII för DHCP-konfiguration

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

Jag testade ocksÄ olika alternativ för bootfiler .efi

  • syslinux
  • grub 2

Jag försökte ocksÄ hitta problemet i loggen.
win + r -> eventvwr -> Applikations- och tjÀnstloggar -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Men som jag nÀmnde tidigare lÄg problemet i filen wdsmgfw.efi.
Antingen rÄkade jag ta bort den, eller sÄ kopierades den inte vid installationen
och konfigurationen av WDS.

NÄvÀl, lÄt oss börja!

Instruktion

Steg 1 — Kontrollera WDS-funktionalitet

Ta enheten eller virtuella maskin som stöder nÀtverksstart i UEFI-lÀge och försök att starta.

Du ska se följande bild:

Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

Om sÄ Àr fallet Àr det utmÀrkt, du kan fortsÀtta.
Om inte, se vad jag har skrivit i förordet.

Steg 2 — Bygga bootfilen iPXE

Starta den förberedda Ubuntu, öppna terminalen och klistra in denna rad:

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

Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

HÀr vill jag gÀrna göra en liten kommentar om att du kan behöva lÀgga till de paket som krÀvs för att kompilera C och C++ i Ubuntu.
Jag hade dem redan installerade.

Laddades ner? — UtmĂ€rkt!
Nu mÄste vi skapa en konfigurationsfil för byggandet.
I terminalen skriver vi:

cd ipxe/src
gedit chain.ipxe

Och klistra in följande kod i denna fil och spara det:

#!ipxe

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

GĂ„ tillbaka till terminalen och starta kompileringen:

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

Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

Om allt stÄr rÀtt till, kommer du att fÄ följande utdata i terminalen:

Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

Och filen ipxe.efi, pÄ vÀgen: ipxe/src/bin-x86_64-efi/ipxe.efi
Om du av nÄgon anledning inte lyckades kompilera det sjÀlv,
har jag bifogat min filen.
Den Àr kompilerad för att starta frÄn http://192.168.0.100/install.ipxe

SĂ„, det var allt om Ubuntu.

Steg 3 — LĂ€gga till ipxe.efi till WDS

Ta filen som vi fick i steg tvÄ och kopiera den pÄ vÀgen:
%WDSpath%Bootx64%your-boot-folderIBOOT
DÀrefter döper vi om den till BOOTX64.EFI.
Detta Àr inte nödvÀndigt, men det Àr enklare sÄ.

DÀrefter kör vi cmd som administratör, och skriver följande kommandon:

wdsutil /set-server /bootprogram:Bootx64%your-boot-folderIBOOTBOOTX64.EFI /architecture:x64uefi och wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folderIBOOTBOOTX64.EFI /architecture:x64uefi

Detta kommer att stÀlla in den erhÄllna filen för att starta via WDS.

Kontrollera konfigurationen:

wdsutil /get-server /Show:Config

Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

Jag kopierade ocksÄ filen ipxe.efi, döpte den till BOOTIA32.EFI och konfigurerade start för den, för sÀkerhets skull. architecture:x86uefi
Men i stort sett Àr det meningslöst, eftersom filen Bootmgfw.efi inte stöder x86.

LÄt oss kontrollera hur det blev.
Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI
UtmÀrkt, WDS skickar vÄr fil för uppladdning och den söker konfigurationen lÀngs vÀgen: http://192.168.0.100/install.ipxe

Steg 4 - Menykonfiguration

GÄ till rotmappen för din webbplats.
Som standard Àr detta: C:inetpubwwwroot

Skapa en textfil install.ipxe.

Och konfigurera den enligt dokumentationen och dina behov.
Det finns Àven en rysktalande beskrivning kommandon.
Jag anvÀnde denna instruktionen nÀr jag konfigurerade min WDS.

Exempel pÄ konfiguration av 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

Om konfigurationen för att ladda winPE kan du lÀsa hÀr.

Steg 5 - MIME-typer

Efter att ha skapat menyn och lagt till alla nödvÀndiga filer i rotmappen för IIS,
mÄste du ge dem Ätkomst.

Eftersom Àven om du försöker ladda ner filen frÄn webblÀsaren, fÄr du ett felmeddelande: HTTP 404.3 - Not Found.
Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

För detta mÄste du i IIS-kontrollpanelen lÀgga till MIME-typer i enlighet
med filtyperna som kommer att laddas via http.

Jag letade inte efter vilken MIME-typ som passar bÀst för detta syfte, och angav application/octet-stream, efter vilket allt fungerade.

För filer utan tillÀgg, anvÀnd en punkt.

SÄ hÀr:

Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

Slutsats

I slutÀndan fÄr vi möjlighet att ladda ner via lokalt nÀtverk med UEFI.

Om vi har gjort allt rÀtt, kommer det att se ut som följande valmeny:

Utöka funktionaliteten i WDS: lÀgga till möjlighet att starta i UEFI

Om du har förberett de grundlÀggande verktygen och inte kommer att krÄngla med konfigurationen, tar det ungefÀr 10-20 minuter att genomföra denna möjlighet.
Jag tog dock 2 arbetsdagar, eftersom jag var tvungen att googla mycket.

Lycka till med implementeringen!

Tack för din uppmÀrksamhet och ett stort tack till de personer vars artiklar hjÀlpte mig!
PÄ Habré Àr det: Ingtar och Deeptown.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster