Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Hallo zusammen!

In diesem Artikel werden die Schritte beschrieben, die erforderlich sind, um Ihrem WDS die Möglichkeit des Bootens im UEFI-Modus hinzuzufĂŒgen.

Das heißt, die Anleitung in diesem Artikel setzt voraus, dass Sie bereits eine ungefĂ€hr folgende Konfiguration haben:

1. Windows Server 2012R2 (oder neuer)
2. VollstĂ€ndig konfiguriertes DHCP fĂŒr die Arbeit mit WDS
3. Das WDS selbst
4. IIS
5. Virtuelle Maschine oder PC mit Ubuntu

Außerdem werden hier Aktionen beschrieben, die mir nicht den gewĂŒnschten Erfolg gebracht haben.
Ich habe sie beschrieben, um die Suche zu erleichtern und Ihre Zeit zu sparen.

Vorwort

Ich habe einmal bei der Arbeit ein WDS mit vielen Extras eingerichtet, da ich es leid war, stÀndig mit einer Menge USB-Sticks herumzulaufen und sie neu zu bespielen.

Diese Artikel haben mir damals ĂŒbrigens geholfen:
WDS universell machen
PXE-BootmenĂŒ mit System Center Configuration Manager


So sieht das aus

Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Und alles war gut, neue Boot-Images wurden hinzugefĂŒgt, das Image winPE erhielt neue Funktionen und alles funktionierte.

Aber lĂ€ngst unterstĂŒtzen nicht alle GerĂ€te den BIOS-/Legacy-Bootmodus, oder falls sie es tun, kann das Aktivieren an einem sehr unauffĂ€lligen Ort sein.

Außerdem ist die Installation von Windows im Legacy-Modus, wenn es die Möglichkeit zur Installation in UEFI gibt — nicht optimal.

Also habe ich beschlossen, die Möglichkeit des Bootens in UEFI hinzuzufĂŒgen und habe Google konsultiert.

Aber ich fand keine strukturierten Informationen darĂŒber, wie man ein funktionierendes WDS + UEFI erhĂ€lt.
Deshalb habe ich beschlossen, diesen Artikel zu schreiben.

Bevor ich beginne, beschreibe ich das Problem, das mir am meisten Zeit geraubt hat.

Beim HinzufĂŒgen von UEFI zu WDS kann folgende, recht unauffĂ€llige Situation auftreten:

Wenn Sie eine Bootdatei zu WDS hinzufĂŒgen und beim Booten auf dem GerĂ€t
im UEFI sehen Sie folgenden Text:
Das ausgewĂ€hlte BootgerĂ€t ist fehlgeschlagen. DrĂŒcken Sie , um fortzufahren.
Oder BootgerÀt nicht gefunden
Aber das Booten im Legacy funktioniert bei Ihnen.
Dann ist einer der möglichen GrĂŒnde — die Abwesenheit der Datei wdsmgfw.efi,
an folgendem Ort: %WDSpath%Bootx64wdsmgfw.efi

Sie können sie hier bekommen: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Oder, falls Ihnen diese Datei aus irgendeinem Grund fehlt, habe ich sie auf google.
FĂŒr diese Lösung danke ich den Jungs von Reddit.

Mit diesem Problem habe ich am meisten Zeit verloren, da ich dachte, das Problem liege irgendwo in der WDS- oder DHCP-Konfiguration.

Ich habe Richtlinien konfiguriert, indem ich Vendor Classes (Anbieterklassen) fĂŒr verschiedene Architekturen hinzugefĂŒgt und die DHCP-Optionen 060, 066, 067 eingerichtet habe. Anleitung zu den DHCP-Richtlinieneinstellungen.

ASCII-Architekturen zur Konfiguration von DHCP

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

Ich habe auch verschiedene Varianten von Boot-Dateien ausprobiert .efi

  • syslinux
  • grub 2

Ich habe auch versucht, das Problem im Ereignisprotokoll zu finden.
win + r -> eventvwr -> Anwendungs- und Dienstprotokolle -> Microsoft -> Windows -> Deployment-Services-Diagnostics

Wie ich bereits oben erwÀhnte, lag das Problem in der Datei wdsmgfw.efi.
Entweder habe ich sie versehentlich gelöscht oder sie wurde bei der Installation nicht kopiert.
und Konfiguration von WDS.

Nun, lassen Sie uns anfangen!

Anleitung

Schritt 1 — ÜberprĂŒfung der FunktionsfĂ€higkeit von WDS

Nehmen Sie ein beliebiges GerĂ€t oder eine virtuelle Maschine mit UEFI-NetzwerkbootunterstĂŒtzung und versuchen Sie, zu booten.

Sie sollten folgendes Bild haben:

Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Wenn ja, ist alles gut, Sie können fortfahren.
Wenn nicht, schauen Sie sich an, was ich im Vorwort geschrieben habe.

Schritt 2 — Erstellung der Boot-Datei iPXE

Starten Sie die vorab vorbereitete Ubuntu-Version, öffnen Sie das Terminal und fĂŒgen Sie diese Zeile ein:

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

Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Hier möchte ich einen kleinen Hinweis geben, dass Sie möglicherweise in Ubuntu Pakete hinzufĂŒgen mĂŒssen, die fĂŒr die C- und C++-Kompilierung erforderlich sind.
Ich hatte sie bereits installiert.

Heruntergeladen? — Hervorragend!
Jetzt mĂŒssen Sie eine Konfigurationsdatei fĂŒr den Build erstellen.
Im Terminal geben Sie ein:

cd ipxe/src
gedit chain.ipxe

Und fĂŒgen Sie in diese Datei den folgenden Code ein, speichern Sie dann:

#!ipxe

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

Gehen Sie wieder ins Terminal und starten Sie die Kompilierung:

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

Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe im Terminal erhalten:

Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Und die Datei ipxe.efi, unter folgendem Pfad: ipxe/src/bin-x86_64-efi/ipxe.efi
Wenn Sie aus irgendeinem Grund nicht selbst kompilieren konnten,
habe ich meine Datei.
Sie ist fĂŒr das Booten von http://192.168.0.100/install.ipxe

Damit ist unser Teil mit Ubuntu abgeschlossen.

Schritt 3 — HinzufĂŒgen von ipxe.efi zu WDS

Nehmen Sie die Datei, die wir im zweiten Schritt erhalten haben, und kopieren Sie sie unter folgendem Pfad:
%WDSpath%Bootx64%your-boot-folderIBOOT
Benennen Sie sie anschließend in BOOTX64.EFI um.
Das ist nicht zwingend erforderlich, es ist nur praktischer.

Dann starten Sie cmd als Administrator und geben Sie die folgenden Befehle ein:

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

Damit legen wir die erstellte Datei fĂŒr den WDS-Boot fest.

ÜberprĂŒfen wir die Konfiguration:

wdsutil /get-server /Show:Config

Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Ich habe auch die Datei ipxe.efi kopiert, sie in BOOTIA32.EFI umbenannt und das Booten fĂŒr sie konfiguriert, nur fĂŒr den Fall. architecture:x86uefi
Aber im Großen und Ganzen macht das keinen Sinn, da die Datei Bootmgfw.efi x86 nicht unterstĂŒtzt.

Lass uns ĂŒberprĂŒfen, was herausgekommen ist.
Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI
Ausgezeichnet, WDS ĂŒbertrĂ€gt unsere Datei zum Booten und sucht ihrerseits die Konfiguration unter folgendem Pfad: http://192.168.0.100/install.ipxe

Schritt 4 – MenĂŒkonfiguration

Gehe in das Stammverzeichnis deiner Website.
StandardmĂ€ĂŸig ist das: C:inetpubwwwroot

Erstelle eine Textdatei install.ipxe.

Und konfiguriere sie entsprechend Dokumentation und deinen BedĂŒrfnissen.
Es gibt auch eine russische Beschreibung von Befehlen.
Ich habe die dieser Anleitung bei der Konfiguration meines WDS verwendet.

Beispielkonfiguration fĂŒr 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

Über die Konfiguration zum Booten von winPE kannst du lesen hier.

Schritt 5 – MIME-Typen

Nach der Erstellung des MenĂŒs und der HinzufĂŒgung aller notwendigen Dateien in das Stammverzeichnis von IIS,
muss darauf zugegriffen werden.

Denn selbst wenn du versuchst, eine Datei ĂŒber ihren URI herunterzuladen, erhĂ€ltst du einen Fehler: HTTP 404.3 - Nicht gefunden.
Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

DafĂŒr musst du in der IIS-Systemsteuerung MIME-Typen hinzufĂŒgen, gemĂ€ĂŸ
den Dateiendungen, die ĂŒber http hochgeladen werden sollen.

Ich habe nicht nach dem besten MIME-Typ fĂŒr diesen Zweck gesucht und habe application/octet-streameingestellt, danach hat alles funktioniert.

FĂŒr Dateien ohne Endung verwende einen Punkt.

So:

Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Fazit

Insgesamt haben wir die Möglichkeit, ĂŒber UEFI im lokalen Netzwerk zu booten.

Wenn wir alles richtig gemacht haben, sieht das BootauswahlmenĂŒ ungefĂ€hr so aus:

Erweiterung der WDS-FunktionalitĂ€t: HinzufĂŒgen der Möglichkeit zum Booten in UEFI

Wenn du die grundlegenden Werkzeuge vorbereitet hast und dich nicht mit der Konfiguration aufhÀltst, dauert die Umsetzung dieser Möglichkeit etwa 10-20 Minuten.
Ich selbst habe dafĂŒr 2 Arbeitstage gebraucht, da ich viel googeln musste.

Viel Erfolg bei der Umsetzung!

Danke fĂŒr deine Aufmerksamkeit und ein großes Dankeschön an die Leute, deren Artikel mir geholfen haben!
Auf HabrĂ© heißt das: Ingtar und Deeptown.

Quelle: habr.com

60GB SSD 8Gb DDR4