iPXE 1.21.1 – Windows 11 ADK 22H2 WinPEs erstellen

Anmerkung:
Dies ist eine weiterführende Anleitung zu meinem Grundgerüst, basierend auf dem nachfolgenden Artikel:

PXE&TFTP&DHCP Server einrichten

In diesem Artikel geht es um das Erstellen von Windows 11 WinPE-Images, die über UEFI gestartet werden können. In meinem direkten Beispiel wird dies im UEFI-Modus über iPXE mit Verweis auf den Windows-Boot-Manager geregelt oder optional durch das Tool Wimboot.

Aktualisiert – 26.08.2023:

  • ADK-Paket wurde aktualisiert.
  • Intel Treiber Paket auf Version 28.2 aktualisiert

Download: W11 ADK-Paket (Erstellt von Stefan Saft)

 

Bevor wir anfangen, möchte ich anmerken, dass dies eine sehr lange Anleitung wird. Es wäre vielleicht nicht verkehrt, sich noch einen Kaffee zu machen und nochmal kurz durchzuatmen.

Voraussetzungen des Rechners, der über das erstellte WinPE Windows 11 installieren will:

  • Festplatten müssen im GPT Partitionsformat formatiert sein. Kann man nachholen: MBR zu GPT Anleitung
  • Ein Rechner mit UEFI Firmware – Das CSM muss deaktiviert sein.
  • TPM 2.0 ist vorhanden: Entweder als TPM Modul (Steckkarte auf dem Mainboard) oder inkludiert im Prozessor/SOC/Mainboard
  • Secure Boot ist aktiviert. Es muss nicht auf Windows UEFI stehen, auch Other OS wird akzeptiert!
  • 64-Bit Prozessor
  • DirectX 12 Grafikkarte

Voraussetzungen des Rechners, der die ADK WinPE Images erstellen soll:

Was brauchen Sie alles, damit Sie auch ein WinPE in aktuellster Version erstellen können?

Wie oben, aber zusätzlich noch ein paar weitere Punkte…

Ein aktuelles Windows 11:

Ihr System, worüber Sie die WinPEs erstellen wollen, muss ein aktuelles Windows 11 Build 22H2 sein. Welche Version Sie haben, können Sie prüfen, wenn Sie unter Windows die Eingabeaufforderung öffnen und:

winver

eingeben.

Windows 11 Version 22H2 Informationsbildschirm

Es gäbe natürlich die Möglichkeit, dass auch mit älteren Windows Versionen machen zu können, allerdings wollen Sie doch, dass Sie mit der aktuellsten Version auch alle Windows Versionen installieren lassen könnten, oder? Sollten Sie nicht das Build 22H2 haben, wird der nächste Schritt in dieser Anleitung fehlschlagen. Daher updaten Sie zuerst über die Windows Update Funktion Ihr Windows 11 auf den aktuellsten Stand der Dinge.

Windows 11 ADK Build 22H2 Download und Installation:
Des Weiteren laden Sie sich auf der Microsoftseite die aktuellste Windows 11 ADK Build 22H2 Version für Ihr Betriebssystem herunter.

Klicken Sie unten auf

Windows ADK herunterladen

Kopieren Sie diese Datei an einen beliebigen Ort und starten Sie dann die adksetup.exe. Wundern Sie sich nicht, das die Datei nur knappe 2 MB groß ist, denn das ist ein Onlineinstaller. Es werden etliche GB aus dem Internet heruntergeladen werden müssen. Während dem Setup ist es ratsam, alle Dateien für einen anderen Rechner herunterzuladen als Installationsmethode zu wählen, denn dann haben Sie diese Dateien alle und müssten diese nicht erneut herunterladen, wenn Sie das auf einem anderen Rechner ebenfalls einrichten wollten.

Die heruntergeladenen Pakete speichert die adksetup.exe in den selbst angelegten “Installers” Ordner.
Die “UserExperienceManifest.xml” Datei gehört ebenfalls dazu!

Rufen Sie im Anschluss die adksetup.exe auf und wählen Sie den Punkt Bereitstellungstools aus. Klicken Sie auf Installieren. Dieser Prozess kann nun je nach Ihrer Internetanbindung eine ganze Ecke dauern.

Windows 11 ADK Build 22H2 WinPE Download und Installation:
Des Weiteren laden Sie sich auf der Microsoftseite die aktuellste Windows 11 ADK Build 22H2 WinPE Version für Ihr Betriebssystem herunter.

Klicken Sie unten auf

WinPE-Add-On für das Windows ADK herunterladen

Kopieren Sie diese Datei an einen beliebigen Ort und starten Sie dann die adkwinpesetup.exe. Wundern Sie sich nicht, das die Datei nur knappe 2 MB groß ist, denn das ist ein Onlineinstaller. Es werden etliche GB aus dem Internet heruntergeladen werden müssen. Während dem Setup ist es ratsam, alle Dateien für einen anderen Rechner herunterzuladen als Installationsmethode zu wählen, denn dann haben Sie diese Dateien alle und müssten diese nicht erneut herunterladen, wenn sie das auf einem anderen Rechner ebenfalls einrichten wollten.

Die heruntergeladenen Pakete speichert die adkwinpesetup.exe in den selbst angelegten “Installers” Ordner.
Die “UserExperienceManifest.xml” Datei gehört ebenfalls dazu!

Rufen Sie im Anschluss die adkwinpesetup.exe auf und wählen Sie den Punkt Windows-Vorinstallationsumgebung (Windows PE) aus. Klicken Sie auf Installieren. Dieser Prozess kann nun je nach Ihrer Internetanbindung eine ganze Ecke dauern.

Wenn das alles installiert wurde haben Sie den Grundstock zur Erstellung Ihres eigenen WinPEs gelegt. Der schwierige Teil jedoch, kommt erst noch. 😛

Bereitstellungstools Icon anlegen

Drücken Sie die Windows Taste + S, um die Windows Suche zu starten. Tippen Sie dort “image” ein und Sie werden dort “Umgebung für Bereitstellungs- und Imageerstellungstools” finden. Diesen heften Sie bitte über die Rechte Maustaste an den Start an. Dadurch müssen Sie dieses Tool nicht immer wieder suchen.

Synology – Neuen gemeinsamen/freigegebenen Ordner anlegen: Windows Images Ordnerstruktur

Melden Sie sich bei Ihrer Synology an und erstellen Sie einen neuen gemeinsamen/freigegebenen Ordner für Ihre Windows Images und geben Sie einem Benutzerkonto Rechte diesen lesen zu dürfen. Sie können auch wahlweise einfach ein neues Benutzerkonto anlegen, extra für Windowsinstallationen über Netzwerk. Den Ordner könnten Sie z.b. “WSources” nennen.

Achten Sie bitte auch auf Groß- und Kleinschreibung.

Für ein flexibles Windowsinstallationsmedium bittet sich eine Ordnerstruktur an, an dessen Sie kinderleicht erkennen können, wo, welche Windows Versionen hineinkommen. Ich empfehle Ihnen auch wirklich diese Ordner so zu benennen, denn das wird Ihnen die weitere Einrichtung durch meine Anleitung erleichtern.

WSources-Root-Ordner:

WSources-Root

Win10 Ordner:

W10 Ordner

Win11 Ordner:

W11 Ordner

Windows Server Ordner:

Windows Server Ordner

Damit Ihnen nicht langweilig wird, laden Sie sich alle Windows Versionen, die Sie über Netzwerk installieren lassen möchten von Microsoft herunter und entpacken Sie diese ISOs in die jeweiligen, dafür vorgesehenen Ordner. Es ist nicht ratsam die DVD von Ihrer Windows Version zur Hand zu nehmen, da Sie dann das Problem haben, ein sehr altes Windows Build vor sich zu haben, wo aktuelle Updates und Features fehlten. Es ist in solchen Fällen immer die bessere Entscheidung die aktuellste Version von Microsoft zu beziehen, da diese ISOs immer auf dem aktuellsten Patchstand sind. Denn je nachdem wie alt Ihre Windows DVD ist, wird das einen anschließenden Updatemarathon nach sich ziehen.

Hier finden Sie die Übersichtsseite von Microsoft.

Um Windows 10 ISO’s für die Home, Pro und Education Versionen herunterzuladen, verwenden Sie das Media Creation Tool 10 von Microsoft.

Um Windows 11 ISO’s für die Home, Pro und Education Versionen herunterzuladen, verwenden Sie das Media Creation Tool 11 von Microsoft.

Wie Ihnen vielleicht aufgefallen ist, habe ich in meiner Struktur keine Trennung nach verschiedenen Sprachen, denn ich persönlich brauche nur die deutschen Versionen.

WinPE Ordner und Dateien kopieren und Treiber falls notwendig einbinden

Ich habe Ihnen ein kleines Paket geschnürt, das Sie sich erst einmal herunterladen werden:

Aktualisiert – 26.08.2023:

  • ADK-Paket wurde aktualisiert.
  • Intel Treiber Paket auf Version 28.2 aktualisiert

Download: W11 ADK-Paket (Erstellt von Stefan Saft)

 

Sie werden dort ein Verzeichnis mit dem Namen: “PXEServerTools” finden, das Sie bitte direkt auf “C:\” kopieren. Die Batch-Dateien speichern Sie bitte irgendwo, wo Sie diese auch jederzeit wiederfinden 😉 Kommen Sie nicht auf die dumme Idee diese jetzt schon zu starten. Wir müssen erst noch einige Dinge ändern.

Nun zu der Erklärung, was es damit auf sich hat. Schritt für Schritt natürlich.

Der PXEServerTools-Ordner ist äußerst nützlich bei der WinPE Erstellung, da dort gefundene Treiberdateien mit eingebunden werden. Schauen Sie sich den “C:\PXEServerTools\Drivers” Ordner einfach mal an. Grundlegend müssen bei allen Treibern zwischen 32-Bit und 64-Bit unterschieden werden. Wenn Sie eigene Treiber einbinden wollen, dann erstellen Sie einfach einen weiteren Ordner im x86 und x64 Ordner für Ihre Komponente. Bei RAID Treibern z.b. einen Storage Ordner.

Ich war mal so frei und habe die gängigsten Netzwerktreiber bereits in die Verzeichnisse kopiert. Weitere Treiber sind grundsätzlich auch nicht nötig, denn für unser Vorhaben: “Windows Netzwerkinstallation” ist es äußerst wichtig, das die Netzwerkkarte immer erkannt wird. Daher ist es zwingend erforderlich, auch möglichst alle Netzwerktreiber einzubinden. Für besondere Storage Konstellationen wie RAID Verbunde oder ähnliches müssten Sie diese Treiber ebenfalls einbinden, damit Windows Ihre Festplatten auch erkennt und somit die Installation überhaupt möglich wäre.

Warum habe ich das mit vordefinierten Ordnern gelöst?

Weil die Befehle die abgearbeitet werden müssten wenn man das alles manuell in die Bereitstellungskonsole tippt, eine Ewigkeit dauert. Das Ziel ist der Automatismus dieser Abläufe oder haben Sie Lust 50 Befehle in der Bereitstellungskonsole manuell eingeben zu müssen ? Ich nicht und ich denke Sie auch nicht. 😉

Die Startnet.cmd lädt unser späteres Menü, das auch die Verbindung zu der Netzwerkfreigabe herstellen wird.

Kopieren der winpe_menu.cmd

Kopieren Sie zuallererst die winpe_menu.cmd in das WSources-Root-Verzeichnis.

In dieser Datei ist die Menüstruktur mit dem netten Frage- und Antwortspiel hinterlegt, welches Windows installiert werden soll.

Der Vorteil der Trennung und die der Abspaltung aus der Startnet liegt schlicht darin, dass Sie bei Änderungen an der Menüstruktur nicht jedes Mal ein neues WinPE erstellen müssten. Ändern Sie dann einfach die Datei ab und sparen Sie sich die Generierung des WinPEs bei simplen Menüänderungen. Das spart Zeit und sie können schneller Testen und Experimentieren, ob Ihre Änderungen auch funktionieren.

Startnet.cmd editieren

Sie werden außerdem einen Ordner mit dem Namen “Startnet” finden. In diesem befindet sich die “startnet.cmd” und zu dieser kommen wir als erstes, bevor wir überhaupt in der Lage sind, das WinPE zu erstellen.

Vorwort: Was macht die Startnet.cmd
Die Startnet.cmd ist eine Datei die beim Starten eines WinPEs immer ausgeführt wird. Diesen Umstand können wir uns zu Nutze machen um die Netzwerkinstallation zu vereinfachen.

Öffnen Sie zunächst diese Datei bitte in einem Editor Ihrer Wahl, denn wir müssen dort einiges ändern!

startnet.cmd:

Suchen Sie als erstes bitte einmal diesen Teil:

set NTIP=192.168.1.5

Diese IP ändern Sie bitte auf Ihre DS IP!

Des Weiteren suchen Sie:

set WindowsShare=WSources

Falls Sie den erstellten gemeinsamen Ordner nichtWSources” genannt haben, müssen Sie diesen Teil ändern.

Und nun zu dem mitunter wichtigstem Teil:

set User=installer
set Pass=loadwindows

Benutzer: Installer
Passwort: loadwindows

Diese Angaben müssen Sie natürlich ändern. Geben Sie dort den Benutzer mit Passwort an, der das Recht hat auf den gemeinsamen Ordner zugreifen zu dürfen.
Eine Gastfreigabe wäre auch möglich und könnte zum Beispiel so umgesetzt werden:

set User=guest
set Pass=none

Ich empfehle Ihnen das trotzdem nicht mit Gastrechten zu machen 😉

Mit dieser Datei sind wir nun auch fertig. Also bitte einmal speichern. Den Rest der Datei können Sie sich natürlich auch mal angucken. Dann erkennen Sie auch wie das ganze Menü aufgebaut ist.

Denn so sieht das nachher einmal aus:

WinPE Bootscreen mit Auswahlmenü
Nützliche Programme im WinPE
CPU-Z für den schnellen Hardwareüberblick

Dort sehen Sie die startnet.cmd und winpe_menu.cmd in Aktion.

CreateWinPE11_x64.cmd Optionen

Dies ist unsere Batch-Datei, die die WinPE-Images erstellen wird. Es gibt offiziell nur noch eine 64-Bit Version von Windows 11. Deswegen werden auch keine x86 Images mehr erstellt in meinem Skript. Wer alte Betriebssysteme installieren lassen will, nutzt besser die Windows 10 ADK Anleitung von mir um dies zu verwirklichen.

Öffnen Sie diese bitte mit einem Editor.

Grundlegend ist zu sagen, dass alle Bereiche und dessen Tätigkeiten mit Kommentaren versehen sind. Das sind die REM und :: Einträge  = Kommentare.

WinPE Sprache setzen

Was für Sie vielleicht noch interessant wäre, ist dieser Teil:

set WinPE_LCODE=de-DE
set WinPE_LDIR=de-de

Dort setzen Sie die Sprache für das gesamte WinPE und dessen Pakete!

Wenn Sie das beispielsweise in Englisch ändern wollen, dann wäre dies die Lösung:

set WinPE_LCODE=en-US
set WinPE_LDIR=en-us

Beachtet hierbei unbedingt, das hier keine Unterstriche verwendet. Es sind normale Bindestriche!

Wem dieses Mal­heur dennoch passiert ist, muss den fehlgeschlagenen Versuch mit:

dism.exe /Unmount-Wim /MountDir:"C:\WinPE_x64\mount" /Discard

wieder entladen.

BitLocker & TPM Unterstützung aktivieren (Pflicht bei Windows 11 Installationen!)

Für die Unterstützung von BitLocker & TPM, editieren Sie die Datei wie folgt:

Suchen Sie:

set WinPE_BITLOCKER=0

und ändern Sie die 0 in eine 1.

iSCSI-Unterstützung aktivieren (Optional)

Für die Unterstützung von iSCSI Verbindungen editieren Sie die Datei wie folgt:

Suchen Sie:

set WinPE_iSCSI=0

und ändern Sie die 0 in eine 1.

Benutzerdefinierten WinPE Hintergrund aktivieren (Optional)

Um den Standard WinPE Hintergrund zu überschreiben, aktivieren Sie diesen Eintrag:

Suchen Sie:

set WinPE_Background=0

und ändern Sie die 0 in eine 1.

Nützliche Programme ins WinPE einbinden (Optional)

Um nützliche Hardwaretools&Programme einzubinden, aktivieren Sie diesen Eintrag:

Suchen Sie:

set WinPE_Additional_Apps=0

und ändern Sie die 0 in eine 1.

CreateCustomBCD_WinPE_UEFI_x64.cmd Erklärung

Viel gibt es hier nicht zu sagen. Das wird unsere Boot Configuration Data Datei. Diese Datei können Sie sich auch mal in Ruhe angucken. Diese ist ebenfalls mit Kommentaren versehen und sollten Sie vorhaben weitere Einträge hinzuzufügen, sollte dies ein leichtes sein, denn die Vorgabe haben Sie bereits.

Damit Sie im UEFI Modus und eingeschaltetem Secure Boot das Menü angezeigt bekommen ist noch folgende Änderung in dieser Datei notwendig, die Sie ganz unten einfügen:

REM UEFI Secure Boot Signatur ANFANG
bcdedit -store C:\BCD -set {bootmgr} path \Boot\bootmgr.efi
REM UEFI Secure Boot Signatur ENDE

Im Hyper-V-Manager zum Beispiel klicken Sie dafür auf eine VM und dann auf Einstellungen und stellen es wie auf dem Bild zu sehen ist ein:

Hyper-V PXE UEFI: Secure Boot & TPM

WinPEs erstellen

Nun sind wir endlich an dem Punkt angekommen die WinPEs in Auftrag zu geben.

Starten Sie nun das Tool “Umgebung für Bereitstellungs- und Imageerstellungstool” mit Administratorrechten, das Sie anfangs an den Start angeheftet hatten.

Navigieren Sie nun über den “cd Ordnername” Befehl zu dem Ort, wo Sie die Datei “CreateWinPE11_x64.cmd” gespeichert haben.
Starten Sie diese Datei. Dieser Vorgang kann etwas dauern. Also heißt es nochmal…. Kaffee machen 🙂

Wenn der Vorgang abgeschlossen ist, werden Sie feststellen, dass Sie unter C:\ einen weiteren Ordner finden werden => C:\PXEServer

Hier liegen nun die WinPE-ISO’s, als auch die WinPE-Wim-Dateien und die Bootmanager Dateien wie boot.sdi, pxeboot.n12, bootmgr.exe und die MUI Sprachpakete.

WinPE Dateien auf den TFTP Server transferieren

Das Gröbste haben wir nun hinter uns. Jetzt geht es darum die Dateien auch startbar aus unserer Syslinux Umgebung zu machen.

Erstellen Sie zunächst einen Ordner “Winpe” im “images” Ordner Ihres TFTP Servers.
Innerhalb des “Winpe” Ordners einen weiteren der “WinPE11.0” heißt.

Kopieren Sie nun folgende Dateien alle in den”WinPE11.0” Ordner auf Ihren TFTP Server (images\Winpe\WinPE11.0):

C:\PXEServer\BootSources\ISO\WinPE_x64.iso
C:\PXEServer\BootSources\WinPE_x64.wim

Kopieren Sie als nächstes folgende Dateien direkt in das TFTP ROOT Verzeichnis:

C:\PXEServer\Boot64\bootmgr.exe
C:\PXEServer\Boot64\pxeboot.n12(Nach dem kopieren bitte in pxeboot.0 umbenennen!)

Erstellen Sie im TFTP Root Verzeichnis noch folgende Ordnerstruktur:

\Boot\
\Boot\de-DE\
\Boot\Fonts\
\Boot\resources\
\EFI\
\EFI\Microsoft\
\EFI\Microsoft\Boot\
\EFI\Microsoft\Boot\de-DE\
\EFI\Microsoft\Boot\Fonts\
\EFI\Microsoft\Boot\resources\

Kopieren Sie nun folgende Dateien in das \Boot\de-DE\ Verzeichnis auf Ihren TFTP Server:

C:\PXEServer\Boot64\de-DE\bootmgr.efi.mui (Bitte in bootmgr.efi.MUI umbenennen!)
C:\PXEServer\Boot64\de-DE\bootmgr.exe.mui (Bitte in bootmgr.EXE.MUI umbenennen!)

Kopieren Sie nun folgende Datei in das \Boot\ Verzeichnis auf Ihren TFTP Server:

C:\PXEServer\Boot64\boot.sdi

Kopieren Sie nun von dem Rechner auf dem das ADK installiert ist, folgende Dateien in den \Boot\Fonts\ und \EFI\Microsoft\Boot\Fonts\ Ordner auf den TFTP Server:

Die Font-Dateien sind für den BIOS- als auch den UEFI-Modus identisch.

C:\Windows\Boot\Fonts\ ALLE DATEIEN!

Kopieren Sie folgende Dateien in den TFTP Root Ordner:

C:\Windows\Boot\EFI\bootmgfw.efi (Bitte in bootx64.efi umbenennen!)

Kopieren Sie außerdem noch folgende Dateien in den TFTPROOT\Boot\ Ordner:

C:\Windows\Boot\EFI\bootmgr.efi

Kopieren Sie aus dem ISO folgende Dateien in den TFTPROOT\Boot\ Ordner:

DVDROM\Boot\BCD (Bitte in BCD_Wimboot um­be­nen­nen!)

iPXE Konfigurationseinträge erstellen

Fügen Sie folgende Zeilen in der pxeEFI64.ipxe.cfg Datei ganz unten an:

# OPTIONAL: Windows 11 Build Nummer
set win11-build 21H2

iPXE Booteinträge erstellen

Suchen Sie nun in der pxeEFI64.ipxe.menu:

menu Installationsumgebungen - Client: ${ip} ${platform}-${buildarch}

Fügen Sie darunter folgendes ein:

item --gap -- ----- >= Windows 11 Installationen ----------------------------------------------------------------
item --key n winpe11_x64_TPM WinPE 11.0 Build ${win11-build} 64-Bit Bitlocker & TPM Support - Wimboot

Suchen Sie weiter:

:menu-install-timed
choose --timeout ${submenu-timeout} --default ${submenu-default} selected && goto ${selected} || goto start

Fügen Sie darunter folgendes ein:

:winpe11_x64_TPM
echo ${chotkey}Wimboot${resetbold} - Starte WinPE 11.0 Build ${win11-build} 64-Bit Bitlocker & TPM Support - Wimboot
kernel ${boot-url}wimboot
#initrd ${boot-url}bootx64.efi
initrd --name BCD ${boot-url}Boot/BCD_Wimboot
initrd ${boot-url}Boot/boot.sdi boot.sdi
initrd --name boot.wim ${boot-url}images/Winpe/WinPE11.0/WinPE_x64.wim
boot || goto failed
goto start

Manche werden sich vielleicht wundern, warum ich immer auf die selben Dateien verweisen lasse und lediglich die WIM-Datei das Einzige ist, dass sich wirklich unterscheidet. Ich benutze hier für alle WinPEs die gleichen Dateien: boot.sdi, BCD, bootx64.efi.

Es ist nämlich meistens nicht nötig die originalen der ISOs zu nehmen. Wenn die WinPEs alle mit der gleichen Windows- und ADK Version erstellt wurden, dann funktionieren diese Dateien auch in allen anderen WinPE Versionen. Selbst wenn Ihr WinPEs älterer Generation nutzt, so geht das in 90% der Fälle trotzdem. Spart euch also das unnötige Anlegen dieser Dateien für all eure WinPEs im Sortiment. Außerdem lässt sich das so auch viel einfacher aktuell halten.

Sollte wirklich mal der Fall eintreten, dass irgendein Programm mit den gennanten Standarddateien von oben nicht funktioniert, dann verweist halt auf die originalen des betroffenen WinPEs.

Das wäre dann das Resultat (Nur der erste Eintrag unter Windows 11!):

iPXE Installationsumgebung

CreateCustomBCD_WinPE_UEFI_x64.cmd ausführen

Starten Sie die Eingabeaufforderung mit Administratorrechten und führen Sie dieses Skript bitte einmal aus. Danach finden Sie eine BCD Datei unter C:\ die Sie bitte an folgenden Ort verschieben:

TFTPROOT\Boot\

Der Test

Booten Sie nun einen Rechner über Netzwerk und Sie sollten im UEFI Modus dass iPXE Menü sehen. Testen Sie auch jeden Eintrag, ob auch alles funktioniert. Eine Testinstallation im UEFI Modus in einer VM schadet vielleicht auch nicht.

Vergessen Sie nicht, das um Windows 11 installieren zu können, das TPM Modul in der VM aktiviert sein muss!

Sollten Sie noch Fragen haben, so nutzen Sie einfach die Kommentarfunktion.

Zum Anfang!

16 Antworten auf „iPXE 1.21.1 – Windows 11 ADK 22H2 WinPEs erstellen“

  1. Guten Abend,
    ich habe alles soweit eingerichtet und während ich im Setup bin, taucht ein Problem auf.
    Wenn ich die Festplatte lösche komme ich nicht ins setup da folgender Fehler auftritt.
    Die vorhandene Partition konnte von Setup nicht gestartet werden, da auf dem Systemvolume nicht genügend freier Speicherplatz vorhanden ist.

    Ich bedanke mich voraus für jede Unterstützung.
    Mit vielen freundlichen Grüßen
    Ayata

  2. Hi,

    Vielen Dank für deine ganzen Super Anleitungen.

    Leider wird bei mir in folgendes Verzeichnis gar keine Datei geschrieben:

    C:\PXEServer\Boot32\

    Mache ich hier irgendwas falsch?

    1. Richtig, dem ist auch nicht mehr so bei Windows 11. Da gibt es keine 32-Bit WinPEs mehr. Nimm einfach die Dateien aus dem Boot64 Ordner. Habe die Anleitung auch abgeändert. Danke für die Info.

  3. In der pxeEFI64.ipxe.menu verweist du auf
    initrd –name boot.wim ${boot-url}images/WinPE11.0/WinPE_x64.wim

    laut Anleitung landete die betreffende Datei jedoch in
    initrd –name boot.wim ${boot-url}images/Winpe/WinPE11.0/WinPE_x64.wim

    Der Rest lief super, jedenfalls im UEFI Modus, den BIOS Teil muss ich noch testen!

  4. Hervorragend Anleitung!! Danke Dafür!!

    Ich hab das ganze mal mit einem Fedora Linux Server aufgesetzt – mit einem ISC DHCP, samba4 als AD Server und einem weiteren Fedora Server als NAS System – basierend auf samba, als Domainmember der Samba4 domain. Für alle die das Brauchen können mal hier eine kurze Anleitung für den EFI Boot ohne Secureboot (hoffe das ist OK) – Ich habe ziemlich lange im Netz suchen müssen um hierfür alle Informationen zusammen zu bekommen.

    Ein großes Problem ist, Das man mit obiger Anleitung NUR Windows installationen ans laufen bekommt, oder aber im dhcp eine umstellung machen muss, um dann den grub2 zu laden – für eine Linux Installation. Der folgende Weg zeigt auf, wie das ohne umstellung des DHCP zu bewerkstelligen ist:

    Folgende Packete müssen installiert sein (Fedora 35):
    dhcp-common
    dhcp-server
    tftp-server
    ipxe-bootimgs

    dhcp muss wie üblich configuriert sein.
    Dazu dann die parts für den PXE/UEFI Boot:

            class "pxeclients" {
                      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
                      next-server ;
    
                      if option arch = 00:06 {
                            filename "/efi64/syslinux.efi";
                      } else if exists user-class and option user-class = "iPXE" {
                            #ipxe ist auf dem pxe client aktiv und sucht nun einen config
                            filename "efi64/boot.ipxe";
                      } else if option arch = 00:07 {
                            #Client ist per UEFI Firmware gebootet
                            #wir verwenden ipxe für den weitern boot, da grub leider nicht in der lage ist
                            #windows per tftp nachzuladen - ipxe aber schon
                            #so können wir ein "Vormenu" bauen, das dann die wahl zwischen Windows und Linux
                            #installation ermöglicht
                            filename "/efi64/ipxe-x86_64.efi";
                      } else {
                            #legacy BIOS boot
                            filename "/BIOS/pxelinux.0";
                      }
              }
    

    Der Trick dieser Konfiguration ist, das für den initialen boot ipxe verwendet wird. Dieser wird geladen, macht danach nocheinmal eine konfiguration der Netzwerkschnittstelle per DHCP – hier werden extra optionen für den DHCP gesetzt, die danach dem ipxe sagen wo seine konfiguration auf dem tftp server stehen.
    Damit das Funktioniert muß ipxe natuerlich in den passenden pfad im tftpboot kopiert werden:

    #cp /usr/share/ipxe/ipxe-x86_64.efi /var/lib/tftpboot/efi64

    und eine Konfiguration erstellt werden:

    #cat </var/lib/tftpboot/efi64/boot.ipxe

    #!ipxe
    
    menu PXE Boot Options
    
    item linux EFI Linux Installation
    item windows EFI (no secureboot!) Windows Installation
    item shell iPXE shell
    item exit Exit to BIOS
    choose --default fedora --timeout 10000 option && goto ${option}
    
    :linux
    chain tftp://192.168.73.67/efi64/grubx64.efi
    
    :windows
    chain tftp://192.168.73.67/WinEFI/bootx64.efi
    
    :shell
    shell
    
    :exit
    exit
    EOF
    

    unter /var/lib/tftpboot/WinEFI wird hier der bootx64.efi aus dem obigen tutorial benötigt, unter /var/lib/tftpboot/efi64 liegen bei mir die notwendigen files für einen boot per grub2 mit entsprechenden grup2 konfigurationen für eine Fedora Installation.
    Booted man nun per UEFI, startet erst ein ipxe, der dann (nach nochmaliger DHCP abfrage) ein Menu hochläd in dem man zwischen Linux und Windows Installation auswählen kann.
    Bei aktiviertem Secureboot funktioniert das leider nicht, da ipxe keine passende Signatur hat.
    Daher muss gerade bei Windows 11 auch eine Installation OHNE Secureboot ermöglicht werden.
    Für Virtuelle Instanzen ist der Zwang zu einem vorhandenen TPM auch unschön. daher kann man in das winpe_menu.cmd script noch ein paar Zeilen zum Hinzufügen einiger Registry Einträge einfügen:

    reg add HKLM\SYSTEM\Setup\LabConfig /f /v BypassTPMCheck /t REG_DWORD /d 1
    reg add HKLM\SYSTEM\Setup\LabConfig /f /v BypassSecureBootCheck /t REG_DWORD /d 1
    reg add HKLM\SYSTEM\Setup\LabConfig /f /v BypassRAMCheck /t REG_DWORD /d 1
    reg add HKLM\SYSTEM\Setup\LabConfig /f /v BypassStorageCheck /t REG_DWORD /d 1
    reg add HKLM\SYSTEM\Setup\LabConfig /f /v BypassCPUCheck /t REG_DWORD /d 1
    reg add HKLM\SYSTEM\Setup\LabConfig /f /v BypassDiskCheck /t REG_DWORD /d 1
    cls
    echo.
    echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
    echo º                                                                      º
    echo º Spezifizieren Sie Ihre Windows 11 Auswahl!                           º
    

    ab dem cls command ist das das Orginal Script (zur Hilfe um eine passende Position zu finden).
    Dadurch wird der Resourcencheck vor der Installation von Windows11 auf ein minimum reduziert und win11 lässt sich auf systemen mit deaktiviertem/nicht vorhandenem TPM und ohne Secureboot installieren (EFI muss glaub ich immer noch sein!)

  5. Hallo Stefan.
    Bitte korrigiere noch einen kleinen Fehler im W11_ADK_BatchFiles_BCD.
    Im winpe_menu.cmd, wenn man zur Eingabeaufforderung will, kommt die Meldung “Sprungziel _cu nicht gefunden”. Da fehlt im Label der Unterstrich.
    Sonst alles bestens! Vielen Dank.

  6. Hallo,

    viele Danke für deinen Anleitungen. Habe Windows 11 erfolgreich über iPxe installiert 😉

    Ich möchte gerne fertige WinPE zB Hirens Boot PE oder Sergei Strelec’s Boot PE über PXE starten. Wie würde die cfg hier ausssehen?

    Vielen Dank im Voraus

    sG René

  7. Moin,
    eine ich habe das ganze tatsächlich noch unter PxeLinux(kein EFI) zum laufen gebracht und wollte fragen ob es eine Möglichkeit gibt die das ganze PEwindows mit pxeboot.0 und bootmgr.exe in einem anderen Ordner als den tftp root zu verfrachten?
    Habe da 2 Tage dran Rum gebastelt und dann die Dateien erstmal im tftp root belassen.

    Mit freundlichen Grüßen
    christian

    1. Hallo,

      ich denke, dass du dir das meiste aus der Vorgängeranleitung abgucken können wirst.

      https://www.german-syslinux-blog.de/syslinux-6-04-windows-10-adk-1709-winpes-erstellen/

      Der BIOS Teil wurde in dieser Anleitung auch nur weggelassen, da es offiziell keine 32 Bit Versionen von Windows 11 gibt und Windows 11 auch im EFI Modus installiert werden soll. Man kann das zwar umgehen, dass eben Windows 11 alle Anforderungen “vergisst”, aber ob das wirklich so toll liefe, auf beispielsweise alten Rechnern, ist dann wieder eine andere Frage.

      Microsoft selbst sagt, dass man für die alten Geräte dann das Windows 10 WinPE nehmen soll.

      1. Moin,
        Darauf war meine Frage tatsächlich nicht abgezielt,
        ich suche speziell eine Möglichkeit das TFTP root Verzeichnis möglichst leer zu halten und da hat Windows PE die Angewohnheit ( anders als die Linux Distributionen ) den TFTP prefix(DHCP Option 210) den ich ihm über ein PXE linux Menü mitgebe zu ignorieren und trotzdem alle Dateien im TFTP root zu suchen.

        ich hoffe das war ein wenig verständlicher formuliert, wenn du noch einen genaueren Einblick in die konfig benötigst, kann gerne auch Ausschnitte aus meiner konfig hochladen.

        Mit freundlichen Grüßen
        Christian

  8. Hallo Stefan!
    Supergute Anleitung und vielen Dank dafür!

    Ich bin bis zu dieser Stelle gekommen:
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    iPXE Konfigurationseinträge erstellen

    Fügen Sie folgende Zeilen in der pxeEFI64.ipxe.cfg
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Wo finde ich diese Datei?
    Habe ich ggf. vergessen, die Datei mit einem Deiner Scripts erstellen zu lassen?

    Vielen Dank für eine kurze Info und beste Grüße aus Hagen!

    Peter

  9. Hallo Stefan, Hallo Comunity,

    ich zitiere und stelle danach meine Frage:
    “Damit Sie im UEFI Modus und eingeschaltetem Secure Boot das Menü angezeigt bekommen ist noch folgende Änderung in dieser Datei notwendig, die Sie ganz unten einfügen:

    REM UEFI Secure Boot Signatur ANFANG
    bcdedit -store C:\BCD -set {bootmgr} path \Boot\bootmgr.efi
    REM UEFI Secure Boot Signatur ENDE”

    Hat das jemand hinbekommen, dass bei eingeschaltetem SecureBoot das Menü geladen wird? UEFI only kein Thema. Aber mit SecureBoot steigt er mir aus.

    Ich habe schon viel zu viel gegoogelt und habe nichts dergleichen gefunden.

    Danke vorab und Grüße
    Michael

    1. Das geht auch nur, wenn du nicht das iPXE Menü starten lässt, sondern direkt den Windows Boot Manager über Netzwerk verteilst, wie das quasi auch beim WDS der Fall ist. iPXE ist nicht signiert und daher funktioniert das nicht.

Schreibe einen Kommentar zu Stefan Saft Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert