Hallo zusammen!
In diesem Artikel werden die Schritte beschrieben, die erforderlich sind, um Ihrem WDS die Möglichkeit zu geben, im UEFI-Modus zu booten.
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 zur Verwendung mit WDS
3. Den WDS selbst
4. IIS
5. Virtuelle Maschine oder PC mit UbuntuHier werden auch Schritte 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 in der Arbeit einen WDS mit vielen Funktionen eingerichtet, da ich es leid war, ständig mit einer Menge USB-Sticks herumzulaufen und sie immer wieder neu zu beschreiben.
Diese Artikel haben mir damals übrigens geholfen:
So sieht das aus

Und alles lief gut, neue Boot-Images wurden hinzugefügt, das WinPE-Image wurde mit neuen Funktionen erweitert und alles funktionierte.
Aber längst unterstützen nicht mehr alle Geräte den BIOS-/Legacy-Bootmodus, oder wenn sie es tun, kann die Aktivierung an einem sehr unauffälligen Ort liegen.
Und die Installation von Windows im Legacy-Modus, wenn die Möglichkeit besteht, im UEFI-Modus zu installieren – das ist nicht optimal.
Letztendlich entschied ich mich, die Möglichkeit der Bootunterstützung in UEFI hinzuzufügen, und begann, bei Google zu suchen.
Allerdings konnte ich keine strukturierte Information finden, wie man ein funktionierendes WDS + UEFI erhält.
Genau aus diesem Grund habe ich beschlossen, diesen Artikel zu schreiben.
Bevor ich beginne, möchte ich das Problem beschreiben, das mir am meisten Zeit gekostet hat.
Beim Hinzufügen von UEFI zu WDS könnte eine folgende, eher offensichtliche Situation auftreten:
Wenn Sie eine Startdatei zu WDS hinzufügen und beim Versuch, auf dem Gerät zu booten
unter UEFI den folgenden Text sehen:
Das ausgewählte Bootgerät ist fehlgeschlagen. Drücken Sie <Enter>, um fortzufahren.
Oder Bootgerät nicht gefunden
Aber das Booten im Legacy-Modus funktioniert.
Einer der möglichen Gründe könnte das Fehlen der Datei wdsmgfw.efi,
unter folgendem Pfad sein: %WDSpath%Bootx64wdsmgfw.efi
Sie können sie hier finden: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Oder, falls diese Datei aus irgendeinem Grund fehlt, habe ich sie hochgeladen auf .
Für diese Lösung danke ich den Jungs von .
Mit diesem Problem habe ich die meiste Zeit verloren, da ich dachte, dass das Problem in der Konfiguration von WDS oder DHCP lag.
Ich habe Richtlinien konfiguriert, indem ich Vendor Classes (Anbieterkategorien) für verschiedene Architekturen hinzugefügt und die DHCP-Optionen 060, 066, 067 eingestellt habe. für die Konfiguration von DHCP-Richtlinien.
Architekturen im ASCII für die Konfiguration von DHCP
PXEClient:Arch:00000 — BIOS/Legacy
PXEClient:Arch:00006 — UEFI x86
PXEClient:Arch:00007 — UEFI x64
Ich habe auch verschiedene Varianten von Bootdateien 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ähnt habe, lag das Problem in der Datei. wdsmgfw.efi.
Entweder habe ich sie versehentlich gelöscht oder sie wurde bei der Installation nicht kopiert.
und der Konfiguration von WDS.
Nun, machen wir weiter!
Anleitung
Schritt 1 — Überprüfung der Funktionsfähigkeit von WDS
Nehmen Sie ein beliebiges Gerät oder eine virtuelle Maschine, die das Booten im UEFI-Modus über das Netzwerk unterstützt, und versuchen Sie, zu booten.
Folgendes sollten Sie sehen:

Wenn ja, ist alles in Ordnung, wir können fortfahren.
Wenn nicht, schauen Sie, was ich im Vorwort geschrieben habe.
Schritt 2 — Erstellung der Bootdatei iPXE
Starten Sie das vorbereitete Ubuntu, öffnen Sie das Terminal und fügen Sie diese Zeile ein:
git clone https://git.ipxe.org/ipxe.git ipxe
Hier möchte ich einen kleinen Hinweis geben, dass es in Ubuntu nötig sein könnte, die Pakete zu installieren, die für die Kompilierung von C und C++ erforderlich sind.
Ich hatte sie bereits installiert.
Heruntergeladen? — Großartig!
Jetzt müssen wir die Konfigurationsdatei für den Build erstellen.
Im Terminal geben wir ein:
cd ipxe/src
gedit chain.ipxeFügen Sie in diese Datei den folgenden Code ein und speichern Sie anschließend:
#!ipxe
dhcp
chain http://%IP-address-your-IIS-server%/install.ipxeGehen Sie erneut ins Terminal und starten Sie die Kompilierung:
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe im Terminal erhalten:

Und die Datei ipxe.efi, unter dem Pfad: ipxe/src/bin-x86_64-efi/ipxe.efi
Falls es Ihnen aus irgendeinem Grund nicht gelungen ist, selbst zu kompilieren,
habe ich meine beigefügt. .
Er ist für das Booten von http://192.168.0.100/install.ipxe
Damit wären wir mit Ubuntu fertig.
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 dem Pfad:
%WDSpath%Bootx64%your-boot-folderIBOOT
Benennen Sie sie dann in BOOTX64.EFI um.
Das ist nicht zwingend notwendig, ist aber einfacher.
Starten Sie dann 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:x64uefiDamit legen wir die erhaltene Datei zum Booten über WDS fest.
Überprüfen wir die Konfiguration:
wdsutil /get-server /Show:Config
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 Grunde genommen macht das keinen Sinn, da die Datei Bootmgfw.efi x86 nicht unterstützt.
Lassen Sie uns sehen, was wir erreicht haben.

Perfekt, WDS lädt unsere Datei hoch und sucht dafür nach der Konfiguration unter folgendem Pfad: http://192.168.0.100/install.ipxe
Schritt 4 — Menükonfiguration
Navigieren Sie zum Stammverzeichnis Ihrer Website.
Standardmäßig ist dies: C:inetpubwwwroot
Erstellen Sie eine Textdatei install.ipxe.
und konfigurieren Sie sie gemäß und Ihren Bedürfnissen.
Es gibt auch ein russischsprachiges Befehls.
Ich habe die Anleitung zur 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 Laden von winPE können Sie lesen .
Schritt 5 — MIME-Typen
Nachdem Sie das Menü erstellt und alle erforderlichen Dateien in das Stammverzeichnis IIS hinzugefügt haben,
müssen Sie den Zugriff darauf gewähren.
Denn selbst wenn Sie versuchen, die Datei über den Browser herunterzuladen, erhalten Sie einen Fehler: HTTP 404.3 - Nicht gefunden.

Dazu müssen Sie in der IIS-Verwaltungsschnittstelle MIME-Typen hinzufügen, entsprechend
den Datei-Erweiterungen, die Sie über HTTP hochladen möchten.
Ich habe nicht nach dem besten MIME-Typ für diese Zwecke gesucht und habe application/octet-streamfestgelegt, wonach alles funktionierte.
Für Dateien ohne Erweiterung verwenden Sie einen Punkt.
So:

Fazit
Am Ende haben wir die Möglichkeit, über das lokale Netzwerk über UEFI zu booten.
Wenn wir alles richtig gemacht haben, sollte das Auswahlmenü für den Bootvorgang ungefähr so aussehen:

Wenn Sie die erforderlichen Tools bereit haben und sich nicht mit der Konfiguration aufhalten, dauert es ungefähr 10-20 Minuten, um diese Funktion zu realisieren.
Bei mir hat es 2 Arbeitstage gedauert, da ich viel googeln musste.
Viel Erfolg bei der Umsetzung!
Vielen Dank für Ihre Aufmerksamkeit und ein großes Dankeschön an die Personen, deren Artikel mir geholfen haben!
Auf Habr heißt es: und .
Quelle: habr.com
