Hallo an alle!
In diesem Artikel werden die Schritte beschrieben, die Sie ausführen müssen, um Ihrem WDS UEFI-Startfähigkeit hinzuzufügen.
Diese. Bei den Anweisungen 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 Aktionen beschrieben, die bei mir nicht das richtige Ergebnis gebracht haben.
Ich habe sie beschrieben, um die Suche zu erleichtern und Ihnen Zeit zu sparen.
Vorwort
Ich habe bei der Arbeit ein WDS mit vielen Leckereien gemacht, tk. Ich bin es leid, ständig mit einem Haufen Flash-Laufwerken herumzulaufen und sie zu überschreiben.
Diese Artikel haben mir übrigens geholfen:
Und alles war in Ordnung, neue Bilder wurden zum Laden hinzugefügt, das winPE-Image erhielt neue Funktionen und alles funktionierte.
Aber bei weitem nicht alle Geräte unterstützen den BIOS-/Legacy-Startmodus, oder wenn doch, dann kann seine Einbindung an einer sehr nicht offensichtlichen Stelle erfolgen.
Ja, und die Installation von Windows im Legacy-Modus, wenn eine Installation in UEFI möglich ist, ist nicht cool.
Aus diesem Grund beschloss ich, die Möglichkeit zum Booten in UEFI hinzuzufügen, und ging zu Google.
Ich habe jedoch keine strukturierten Informationen dazu gefunden, wie ich ein funktionierendes WDS + UEFI bekomme.
Eigentlich habe ich mich deshalb entschieden, diesen Artikel zu schreiben.
Bevor ich anfange, werde ich das Problem beschreiben, das die meiste 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, auf dem 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
Aber das Laden in Legacy funktioniert für Sie.
Dann ist eine der möglichen Optionen das Fehlen einer Datei wdsmgfw.efi,
Weitere Beiträge: %WDSpath%Bootx64wdsmgfw.efi
Du kannst es hier mitnehmen: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
Oder wenn Ihnen diese Datei aus irgendeinem Grund fehlt, habe ich sie auf gepostet
Für diese Lösung, vielen Dank Jungs von
Mit diesem Problem habe ich die meiste Zeit totgeschlagen, weil. Ich dachte, das Problem liege irgendwo in der WDS- oder DHCP-Konfiguration.
Konfigurierte Richtlinien durch Hinzufügen von Herstellerklassen für verschiedene Architekturen und Konfigurieren der DHCP-Optionen 060, 066, 067.
Architekturen in ASCII zur Konfiguration von DHCP
PXEClient:Arch:00000 – BIOS/Legacy
PXEClient:Arch:00006 – UEFI x86
PXEClient:Arch:00007 – UEFI x64
Außerdem habe ich verschiedene Optionen für Bootdateien ausprobiert. .efi
- syslinux
- grub 2
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 bei der Installation nicht kopiert
und Konfigurieren von WDS.
Nun, fangen wir an!
Unterricht
Stufe 1 – Überprüfen Sie, ob WDS funktioniert
Nehmen Sie ein beliebiges Gerät oder eine virtuelle Maschine mit Unterstützung für das Booten im UEFI-Modus über das Netzwerk und versuchen Sie zu booten.
Sie sollten das folgende Bild haben:
Wenn ja, großartig, Sie können fortfahren.
Wenn nicht, dann lesen Sie, was ich im Vorwort geschrieben habe.
Stufe 2 – Erstellen der iPXE-Boot-Datei
Wir starten das vorbereitete Ubuntu, öffnen ein Terminal und fügen diese Zeile ein:
git clone https://git.ipxe.org/ipxe.git ipxe
An dieser Stelle möchte ich noch eine kleine Bemerkung machen, dass man möglicherweise Pakete zu Ubuntu hinzufügen muss, die für die Kompilierung von C und C++ notwendig sind.
Ich habe sie gerade installiert.
Heruntergeladen? - Großartig!
Jetzt müssen Sie eine Konfigurationsdatei für die Baugruppe erstellen.
Im Terminal schreiben wir:
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 zurück zum Terminal und starten die Kompilierung:
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
Wenn alles in Ordnung ist, sollten Sie im Terminal folgende Ausgabe erhalten:
Und Datei ipxe.efi, auf dem Weg: ipxe/src/bin-x86_64-efi/ipxe.efi
Wenn Sie aus irgendeinem Grund nicht selbst kompilieren können,
Ich habe meine beigefügt
Es wird zum Booten kompiliert http://192.168.0.100/install.ipxe
Das ist alles für Ubuntu.
Schritt 3 – ipxe.efi zu WDS hinzufügen
Wir nehmen die Datei, die wir im zweiten Schritt erhalten haben, und kopieren sie nebenbei:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
Nachdem wir es in BOOTX64.EFI umbenannt haben.
Es ist nicht notwendig, es ist nur bequemer.
Dann starten wir cmd im Namen des Administrators und schreiben Sie die folgenden Befehle:
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
Dadurch wird die resultierende Datei so eingestellt, dass sie über WDS heruntergeladen wird.
Schauen wir uns die Konfiguration an:
wdsutil /get-server /Show:Config
Ich habe auch die Datei ipxe.efi kopiert, sie in BOOTIA32.EFI umbenannt und für alle Fälle den Start konfiguriert. architecture:x86uefi
Aber im Großen und Ganzen macht das keinen Sinn, weil. Die Datei Bootmgfw.efi unterstützt x86 nicht
Schauen wir uns an, was passiert ist.
Großartig, WDS sendet unsere Datei zum Download und sucht wiederum nach der Konfiguration entlang des Pfads: http://192.168.0.100/install.ipxe
Schritt 4 – Menükonfiguration
Gehen Sie zum Stammordner Ihrer Site.
Der Standardwert ist: C:inetpubwwwroot
Erstellen Sie eine Textdatei install.ipxe.
und konfigurieren Sie es entsprechend
Es gibt auch eine russische Sprache
Ich genoss
install.ipxe-Konfigurationsbeispiel
#!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
Sie können sich über die Konfiguration zum Laden von winPE informieren
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 über den Browser herunterzuladen, wird an der Adresse eine Fehlermeldung angezeigt: HTTP 404.3 - Not Found
.
Dazu müssen Sie entsprechende MIME-Typen in der IIS-Systemsteuerung hinzufügen
mit Dateierweiterungen, die Sie über http herunterladen.
Ich habe nicht gesucht, welcher MIME-Typ für diesen Zweck am besten geeignet ist, sondern nachgefragt application/octet-stream
, danach hat alles funktioniert.
Für Dateien ohne Erweiterung verwenden Sie einen Punkt.
So:
Abschluss
Letztendlich erhalten wir die Möglichkeit, über UEFI über ein lokales Netzwerk zu booten.
Wenn wir alles richtig gemacht haben, wird es so etwas wie dieses Boot-Auswahlmenü geben:
Wenn Sie die grundlegenden Tools vorbereitet haben und sich nicht um die Konfiguration kümmern möchten, dauert die Implementierung dieser Funktion etwa 10 bis 20 Minuten.
Es hat bei mir 2 Arbeitstage gedauert, weil. Ich musste viel googeln.
Erfolgreiche Umsetzung!
Vielen Dank für Ihre Aufmerksamkeit und vielen Dank an die Menschen, deren Artikel mir geholfen haben!
Auf Habré ist es:
Source: habr.com