Hallo allerseits!
Dieser Artikel beschreibt die Schritte, die Sie ausführen müssen, um Ihrem WDS UEFI-Startoptionen hinzuzufügen.
Das heißt, In der Anleitung in diesem Artikel wird davon ausgegangen, dass Sie bereits über die folgende Konfiguration verfügen:
1. Windows Server 2012R2 ( ) 2. DHCP WDS 3. WDS 4. IIS 5. Ubuntu
Außerdem werden hier die Aktionen beschrieben, die mir nicht das richtige Ergebnis gebracht haben.
Ich habe sie beschrieben, um die Suche zu erleichtern und Zeit zu sparen.
Vorwort
Irgendwie bei der Arbeit WDS mit vielen Leckereien gemacht, weil Ich bin es leid, ständig mit ein paar Flash-Laufwerken herumzulaufen und sie zu überschreiben.
Diese Artikel haben mir übrigens geholfen:
Fügen Sie WDS-Vielseitigkeit hinzu
PXE-Startmenü mit System Center Configuration Manager
Und alles war in Ordnung, neue Bilder wurden zum Laden hinzugefügt, das winPE-Bild wurde mit neuen Funktionen überwachsen und alles funktionierte.
Auf keinen Fall unterstützen alle Geräte den BIOS / Legacy-Startmodus, oder wenn sie diesen unterstützen, kann sich die Aufnahme an einem sehr nicht offensichtlichen Ort befinden.
Die Installation von Windows im Legacy-Modus, wenn eine Installation in UEFI möglich ist, ist nicht cool.
Am Ende entschied ich mich, die Möglichkeit zum Hochladen auf UEFI hinzuzufügen, und ging zu Google.
Aber ich fand immer noch keine strukturierten Informationen darüber, wie man ein funktionierendes WDS + UEFI bekommt.
Deshalb habe ich mich entschlossen, diesen Artikel zu schreiben.
Bevor ich anfange, werde ich das Problem beschreiben, das am meisten Zeit in Anspruch genommen hat.
Beim Hinzufügen von UEFI zu WDS ist die folgende, eher nicht offensichtliche Situation möglich:Wenn Sie WDS eine Startdatei hinzufügen und versuchen, das Gerät zu starten
In UEFI sehen Sie den folgenden Text:
The selected boot device failed. Press <Enter> to Continue.
Oder Boot Device Not Found
Das Laden von Legacy funktioniert jedoch für Sie.
Dann ist eine der möglichen Optionen das Fehlen der Datei wdsmgfw.efi .
folgenden Pfad: %WDSpath%\Boot\x64\wdsmgfw.efi
Sie können es hier aufnehmen: C:\Windows\System32\RemInst\boot\x64\wdsmgfw.efi
Oder wenn Sie diese Datei aus irgendeinem Grund nicht haben, habe ich sie auf Google gepostet.
Für diese Entscheidung danke an die Jungs vom reddit .
Mit diesem Problem habe ich die meiste Zeit seitdem getötet Ich dachte, das Problem liege irgendwo in der WDS- oder DHCP-Konfiguration.
Konfigurierte Richtlinien durch Hinzufügen von Herstellerklassen für verschiedene Architekturen und durch Konfigurieren der DHCP-Optionen 060, 066, 067. Anweisungen zum Konfigurieren von DHCP-Richtlinien.
ASCII-Architekturen zur Konfiguration von DHCPPXEClient: Arch: 00000 - BIOS / Legacy
PXEClient: Arch: 00006 - UEFI x86
PXEClient: Arch: 00007 - UEFI x64
Außerdem habe ich verschiedene Optionen für .efi
Bootdateien .efi
Ich habe auch versucht, das Problem im Ereignisprotokoll zu finden.
win + r -> eventvwr -> -> Microsoft -> Windows -> Deployment-Services-Diagnostics
Aber wie ich oben sagte, lag das Problem in der Datei wdsmgfw.efi .
Entweder habe ich es versehentlich selbst gelöscht oder es wurde während der Installation nicht kopiert
und konfigurieren Sie WDS.
Nun, fangen wir an!
Bedienungsanleitung
Stufe 1 - WDS-Gesundheitscheck
Nehmen Sie ein Gerät oder eine virtuelle Maschine, die UEFI-Boot über das Netzwerk unterstützt, und versuchen Sie zu booten.
Sie sollten das folgende Bild haben:

Wenn ja, dann gut, können Sie fortfahren.
Wenn nicht, dann sehen Sie, was ich in der Einleitung geschrieben habe.
Schritt 2 - Erstellen Sie die iPXE-Startdatei
Führen Sie das vorbereitete Ubuntu aus, öffnen Sie das Terminal und fügen Sie diese Zeile ein:
git clone https://git.ipxe.org/ipxe.git ipxe

Hier möchte ich eine kleine Bemerkung dazu machen, dass Sie möglicherweise Pakete in Ubuntu hinzufügen müssen, die zum Kompilieren von C und C ++ erforderlich sind.
Ich hatte sie gerade schon installiert.
Heruntergeladen? - Großartig!
Jetzt müssen Sie eine Konfigurationsdatei für die Assembly erstellen.
Schreiben Sie im Terminal:
cd ipxe/src gedit chain.ipxe
Fügen Sie den folgenden Code in diese Datei ein und speichern Sie ihn:
#!ipxe dhcp chain http://%IP-address-your-IIS-server%/install.ipxe
Wir gehen wieder zum Terminal und beginnen mit der 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 entlang des Pfads: ipxe/src/bin-x86_64-efi/ipxe.efi
Wenn Sie sich aus irgendeinem Grund nicht selbst kompilieren konnten,
Ich habe meine Datei angehängt.
Es wird zum Download von http://192.168.0.100/install.ipxe
kompiliert
Das ist alles mit Ubuntu.
Stufe 3 - Hinzufügen von ipxe.efi zu WDS
Wir nehmen die Datei, die wir in der zweiten Phase erhalten haben, und kopieren sie entlang des Pfades:
%WDSpath%\Boot\x64\%your-boot-folder%\EFI\BOOT\
Nach dem Umbenennen in BOOTX64.EFI.
Es ist nicht notwendig, es ist nur bequemer.
Führen Sie dann cmd als Administrator aus und schreiben Sie die folgenden Befehle:
wdsutil /set-server /bootprogram:Boot\x64\%your-boot-folder%\EFI\BOOT\BOOTX 64.EFI /architecture:x64uefi wdsutil /set-server /N12bootprogram:Boot\x64\%your-boot-folder%\EFI\BOOT\BOOTX 64.EFI /architecture:x64uefi
Dadurch wird die resultierende Datei zum Herunterladen über WDS installiert.
Überprüfen Sie die Konfiguration:
wdsutil /get-server /Show:Config

Ich habe auch die Datei ipxe.efi kopiert, in BOOTIA32.EFI umbenannt und den Download für alle Fälle konfiguriert. architecture:x86uefi
Aber im Großen und Ganzen macht das keinen Sinn, weil Die Datei Bootmgfw.efi unterstützt x86 nicht
Überprüfen Sie, was passiert ist.

Nun, WDS sendet unsere Datei zum Download und sucht wiederum nach der Konfiguration entlang des Pfads: http://192.168.0.100/install.ipxe
Stufe 4 - Menükonfiguration
Wir gehen zum Stammordner Ihrer Site.
Standardmäßig ist dies: C:\inetpub\wwwroot
Erstellen Sie eine Textdatei install.ipxe .
Und konfigurieren Sie es gemäß der Dokumentation und Ihren Anforderungen.
Es gibt auch eine russischsprachige Beschreibung der Teams.
Ich habe diese Anweisung bei der Konfiguration meines WDS verwendet.
Konfigurationsbeispiel 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
Informationen zur Konfiguration zum Laden von winPE finden Sie hier .
Stufe 5 - MIME-Typen
Nachdem Sie das Menü erstellt und alle erforderlichen Dateien zum IIS-Stammordner hinzugefügt haben,
Sie müssen ihnen Zugriff gewähren.
Weil Selbst wenn Sie versuchen, eine Datei aus dem Browser herunterzuladen, wird unter der folgenden Adresse eine Fehlermeldung HTTP 404.3 - Not Found
: HTTP 404.3 - Not Found
.

Fügen Sie dazu die MIME-Typen in der IIS-Systemsteuerung entsprechend hinzu
mit Dateierweiterungen, die Sie über http herunterladen.
Ich habe nicht gesucht, welche Art von MIME für diese Zwecke besser ist, und habe application/octet-stream
, wonach alles funktioniert hat.
Verwenden Sie für Dateien ohne Erweiterung einen Punkt.
So:

Fazit
Letztendlich erhalten wir die Möglichkeit, über UEFI über das lokale Netzwerk zu booten.
Wenn wir alles richtig gemacht haben, gibt es so etwas wie das Boot-Auswahlmenü:

Wenn Sie die grundlegenden Tools vorbereitet haben und sich nicht um die Konfiguration kümmern, dauert die Implementierung dieser Funktion etwa 10 bis 20 Minuten.
Ich habe 2 Arbeitstage gebraucht, weil musste viel googeln.
Erfolgreiche Implementierung!
Vielen Dank für Ihre Aufmerksamkeit und vielen Dank an die Menschen, deren Artikel mir geholfen haben!
Auf Habr es: Ingtar und Deeptown .