ich versuche das netboot-Produkt win11-x64 auf unseren Rechnern zu installieren.
Hierbei bin ich auf einen Fehler im MSI B550-A Pro mit Firmware E7C56AMS.AJ0 (aktuellste Firmware) gestoßen. Ich schreibe es hier ins Bug-Board, da es ggf. eine Änderung an OPSI erfordert, um OPSI mit kaputten Mainboards kompatibel zu machen.
Version:
4.3.31.27 [python-opsi-common=4.3.28.3]
win11-x64: 4.3.0.2-10
Fehlerbild:
Nach Ausführung der setup.exe des Windows 11 Installers innerhalb des Windows PE, wird der Rechner rebootet. Der Rechner startet im Anschluss allerdings erneut ins Windows PE, anstatt das Windows 11 zu booten. Es ist eine manuelle Nutzerinteraktion erforderlich, um die Bootreihenfolge im UEFI zu ändern.
Analyse:
Laut Log wird im Windows PE vor dem Starten von setup.exe mittels bcdedit der Windows PE Boot-Eintrag entfernt:
Code: Alles auswählen
(10186) [6] [2025-06-21 15:53:44.827] [] ShellCall Executing: "X:\windows\system32\\cmd.exe" /C "bcdedit /enum firmware"
(10187) [7] [2025-06-21 15:53:44.930] [] ExitCode 0
(10188) [7] [2025-06-21 15:53:44.930] [] The value of the variable "$resultlist$" is now:
(10189) [7] [2025-06-21 15:53:44.932] [] (string 0)
(10190) [7] [2025-06-21 15:53:44.932] [] (string 1)Firmware Boot Manager
(10191) [7] [2025-06-21 15:53:44.932] [] (string 2)---------------------
(10192) [7] [2025-06-21 15:53:44.932] [] (string 3)identifier {fwbootmgr}
(10193) [7] [2025-06-21 15:53:44.932] [] (string 4)displayorder {e5a7e196-4efa-11f0-9f01-c56e24401e29}
(10194) [7] [2025-06-21 15:53:44.932] [] (string 5) {e5a7e194-4efa-11f0-9f01-c56e24401e29}
(10195) [7] [2025-06-21 15:53:44.932] [] (string 6) {e5a7e195-4efa-11f0-9f01-c56e24401e29}
(10196) [7] [2025-06-21 15:53:44.932] [] (string 7)timeout 2
(10197) [7] [2025-06-21 15:53:44.932] [] (string 8)
(10198) [7] [2025-06-21 15:53:44.932] [] (string 9)Firmware Application (101fffff)
(10199) [7] [2025-06-21 15:53:44.932] [] (string 10)-------------------------------
(10200) [7] [2025-06-21 15:53:44.932] [] (string 11)identifier {e5a7e194-4efa-11f0-9f01-c56e24401e29}
(10201) [7] [2025-06-21 15:53:44.932] [] (string 12)description UEFI: PXE IPV4 Realtek PCIe GBE Family Controller
(10202) [7] [2025-06-21 15:53:44.932] [] (string 13)
(10203) [7] [2025-06-21 15:53:44.932] [] (string 14)Firmware Application (101fffff)
(10204) [7] [2025-06-21 15:53:44.932] [] (string 15)-------------------------------
(10205) [7] [2025-06-21 15:53:44.932] [] (string 16)identifier {e5a7e195-4efa-11f0-9f01-c56e24401e29}
(10206) [7] [2025-06-21 15:53:44.932] [] (string 17)description UEFI: PXE IPV6 Realtek PCIe GBE Family Controller
(10207) [7] [2025-06-21 15:53:44.932] [] (string 18)
(10208) [7] [2025-06-21 15:53:44.932] [] (string 19)Firmware Application (101fffff)
(10209) [7] [2025-06-21 15:53:44.932] [] (string 20)-------------------------------
(10210) [7] [2025-06-21 15:53:44.932] [] (string 21)identifier {e5a7e196-4efa-11f0-9f01-c56e24401e29}
(10211) [7] [2025-06-21 15:53:44.932] [] (string 22)device partition=W:
(10212) [7] [2025-06-21 15:53:44.932] [] (string 23)path \EFI\BOOT\BOOTX64.EFI
(10213) [7] [2025-06-21 15:53:44.932] [] (string 24)description opsitempwinpe
(10214) [6] [2025-06-21 15:53:44.932] [] The value of the variable "$indexoffset$" is now: "3"
(10215) [6] [2025-06-21 15:53:44.933] [] The value of the variable "$result$" is now: ""
(10216) [6] [2025-06-21 15:53:44.933] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10217) [6] [2025-06-21 15:53:44.933] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10218) [6] [2025-06-21 15:53:44.935] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10219) [6] [2025-06-21 15:53:44.935] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10220) [6] [2025-06-21 15:53:44.935] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10221) [6] [2025-06-21 15:53:44.935] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10222) [6] [2025-06-21 15:53:44.935] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10223) [6] [2025-06-21 15:53:44.937] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10224) [6] [2025-06-21 15:53:44.937] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10225) [6] [2025-06-21 15:53:44.937] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10226) [6] [2025-06-21 15:53:44.937] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10227) [6] [2025-06-21 15:53:44.937] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10228) [6] [2025-06-21 15:53:44.938] [] The value of the variable "$tmpstring$" is now: "opsitempwinpe"
(10229) [6] [2025-06-21 15:53:44.938] [] The value of the variable "$result$" is now: "opsitempwinpe"
(10230) [6] [2025-06-21 15:53:44.938] [] The value of the variable "$regexStr$" is now: "opsitempwinpe"
(10231) [6] [2025-06-21 15:53:44.938] [] The value of the variable "$regexStr$" is now: "^description\s+opsitempwinpe$"
(10232) [7] [2025-06-21 15:53:44.938] [] The value of the variable "$resultlist$" is now:
(10233) [7] [2025-06-21 15:53:44.938] [] (string 0)
(10234) [7] [2025-06-21 15:53:44.938] [] (string 1)Firmware Boot Manager
(10235) [7] [2025-06-21 15:53:44.938] [] (string 2)---------------------
(10236) [7] [2025-06-21 15:53:44.938] [] (string 3)identifier {fwbootmgr}
(10237) [7] [2025-06-21 15:53:44.938] [] (string 4)displayorder {e5a7e196-4efa-11f0-9f01-c56e24401e29}
(10238) [7] [2025-06-21 15:53:44.938] [] (string 5) {e5a7e194-4efa-11f0-9f01-c56e24401e29}
(10239) [7] [2025-06-21 15:53:44.938] [] (string 6) {e5a7e195-4efa-11f0-9f01-c56e24401e29}
(10240) [7] [2025-06-21 15:53:44.938] [] (string 7)timeout 2
(10241) [7] [2025-06-21 15:53:44.938] [] (string 8)
(10242) [7] [2025-06-21 15:53:44.938] [] (string 9)Firmware Application (101fffff)
(10243) [7] [2025-06-21 15:53:44.938] [] (string 10)-------------------------------
(10244) [7] [2025-06-21 15:53:44.940] [] (string 11)identifier {e5a7e194-4efa-11f0-9f01-c56e24401e29}
(10245) [7] [2025-06-21 15:53:44.940] [] (string 12)description UEFI: PXE IPV4 Realtek PCIe GBE Family Controller
(10246) [7] [2025-06-21 15:53:44.940] [] (string 13)
(10247) [7] [2025-06-21 15:53:44.940] [] (string 14)Firmware Application (101fffff)
(10248) [7] [2025-06-21 15:53:44.940] [] (string 15)-------------------------------
(10249) [7] [2025-06-21 15:53:44.940] [] (string 16)identifier {e5a7e195-4efa-11f0-9f01-c56e24401e29}
(10250) [7] [2025-06-21 15:53:44.940] [] (string 17)description UEFI: PXE IPV6 Realtek PCIe GBE Family Controller
(10251) [7] [2025-06-21 15:53:44.940] [] (string 18)
(10252) [7] [2025-06-21 15:53:44.940] [] (string 19)Firmware Application (101fffff)
(10253) [7] [2025-06-21 15:53:44.940] [] (string 20)-------------------------------
(10254) [7] [2025-06-21 15:53:44.940] [] (string 21)identifier {e5a7e196-4efa-11f0-9f01-c56e24401e29}
(10255) [7] [2025-06-21 15:53:44.940] [] (string 22)device partition=W:
(10256) [7] [2025-06-21 15:53:44.940] [] (string 23)path \EFI\BOOT\BOOTX64.EFI
(10257) [7] [2025-06-21 15:53:44.940] [] (string 24)WE_FOUND_THE_BOOT_LABEL
(10258) [6] [2025-06-21 15:53:44.940] [] The value of the variable "$labelindex$" is now: "24"
(10259) [6] [2025-06-21 15:53:44.940] [] expression: [$labelindex$ = ""] <<< is false
(10260) [6] [2025-06-21 15:53:44.940] [] The value of the variable "$bootGUID$" is now: ""
(10261) [6] [2025-06-21 15:53:44.940] []
(10262) [6] [2025-06-21 15:53:44.940] [] ~~~~~~ Looping through: '1', '2', '3'
(10263) [6] [2025-06-21 15:53:44.942] []
(10264) [6] [2025-06-21 15:53:44.942] [] ~~~~~~~ Start Sub ~~~~~~~ sub_fetch_guid
(10265) [6] [2025-06-21 15:53:44.942] [] expression: [$bootGUID$ = ""] <<< is true
(10266) [6] [2025-06-21 15:53:44.942] [] The value of the variable "$guidindex$" is now: "23"
(10267) [6] [2025-06-21 15:53:44.942] [] The value of the variable "$priorline$" is now: "device partition=W:"
(10268) [6] [2025-06-21 15:53:44.942] [] expression: [contains($priorline$ ,"-----------")] <<< is false
(10269) [6] [2025-06-21 15:53:44.944] []
(10270) [6] [2025-06-21 15:53:44.944] [] ~~~~~~~ End Sub ~~~~~~~ sub_fetch_guid
(10271) [6] [2025-06-21 15:53:44.944] []
(10272) [6] [2025-06-21 15:53:44.944] []
(10273) [6] [2025-06-21 15:53:44.944] [] ~~~~~~~ Start Sub ~~~~~~~ sub_fetch_guid
(10274) [6] [2025-06-21 15:53:44.944] [] expression: [$bootGUID$ = ""] <<< is true
(10275) [6] [2025-06-21 15:53:44.944] [] The value of the variable "$guidindex$" is now: "22"
(10276) [6] [2025-06-21 15:53:44.944] [] The value of the variable "$priorline$" is now: "identifier {e5a7e196-4efa-11f0-9f01-c56e24401e29}"
(10277) [6] [2025-06-21 15:53:44.944] [] expression: [contains($priorline$ ,"-----------")] <<< is false
(10278) [6] [2025-06-21 15:53:44.945] []
(10279) [6] [2025-06-21 15:53:44.945] [] ~~~~~~~ End Sub ~~~~~~~ sub_fetch_guid
(10280) [6] [2025-06-21 15:53:44.945] []
(10281) [6] [2025-06-21 15:53:44.945] []
(10282) [6] [2025-06-21 15:53:44.945] [] ~~~~~~~ Start Sub ~~~~~~~ sub_fetch_guid
(10283) [6] [2025-06-21 15:53:44.945] [] expression: [$bootGUID$ = ""] <<< is true
(10284) [6] [2025-06-21 15:53:44.945] [] The value of the variable "$guidindex$" is now: "21"
(10285) [6] [2025-06-21 15:53:44.945] [] The value of the variable "$priorline$" is now: "-------------------------------"
(10286) [6] [2025-06-21 15:53:44.945] [] expression: [contains($priorline$ ,"-----------")] <<< is true
(10287) [6] [2025-06-21 15:53:44.947] [] The value of the variable "$bootGUIDLine$" is now: "identifier {e5a7e196-4efa-11f0-9f01-c56e24401e29}"
(10288) [7] [2025-06-21 15:53:44.947] [] expression: [$bootGUIDLine$ = ""] <<< is false
(10289) [6] [2025-06-21 15:53:44.947] [] expression: [not ($bootGUIDLine$ = "")] <<< is true
(10290) [6] [2025-06-21 15:53:44.947] [] The value of the variable "$bootGUIDLine$" is now: "{e5a7e196-4efa-11f0-9f01-c56e24401e29}"
(10291) [6] [2025-06-21 15:53:44.947] [] expression: [strLength($bootGUIDLine$) = "38"] <<< is true
(10292) [6] [2025-06-21 15:53:44.947] [] expression: ["1" = strPos($bootGUIDLine$,"{")] <<< is true
(10293) [6] [2025-06-21 15:53:44.947] [] expression: [strLength($bootGUIDLine$) = strPos($bootGUIDLine$,"}")] <<< is true
(10294) [6] [2025-06-21 15:53:44.947] [] The value of the variable "$bootGUID$" is now: "{e5a7e196-4efa-11f0-9f01-c56e24401e29}"
(10295) [6] [2025-06-21 15:53:44.947] []
(10296) [6] [2025-06-21 15:53:44.947] [] ~~~~~~~ End Sub ~~~~~~~ sub_fetch_guid
(10297) [6] [2025-06-21 15:53:44.947] []
(10298) [6] [2025-06-21 15:53:44.947] []
(10299) [6] [2025-06-21 15:53:44.947] [] ~~~~~~ End Loop
(10300) [6] [2025-06-21 15:53:44.947] [] expression: [$bootGUID$ = ""] <<< is false
(10301) [6] [2025-06-21 15:53:44.947] [] The value of the variable "$result$" is now: "{e5a7e196-4efa-11f0-9f01-c56e24401e29}"
(10302) [6] [2025-06-21 15:53:44.947] [] Section ending since next line is starting with "["
(10303) [6] [2025-06-21 15:53:44.947] [] The value of the variable "$peuefiguid$" is now: "{e5a7e196-4efa-11f0-9f01-c56e24401e29}"
(10304) [6] [2025-06-21 15:53:44.947] [] The value of the variable "$exitcode$" is now: "0"
(10305) [6] [2025-06-21 15:53:44.947] [] expression: [$exitcode$ = "0"] <<< is true
(10306) [7] [2025-06-21 15:53:44.947] [] expression: [$peuefiguid$ = ""] <<< is false
(10307) [6] [2025-06-21 15:53:44.947] [] expression: [not ($peuefiguid$ = "")] <<< is true
(10308) [5] [2025-06-21 15:53:44.947] [] ShellCall Executing: "X:\windows\system32\\cmd.exe" /C "bcdedit /delete {e5a7e196-4efa-11f0-9f01-c56e24401e29}"
(10309) [6] [2025-06-21 15:53:45.055] [] ExitCode 0
(10310) [7] [2025-06-21 15:53:45.055] [] output:
(10311) [7] [2025-06-21 15:53:45.055] [] --------------
(10312) [7] [2025-06-21 15:53:45.055] [] The operation completed successfully.
(10313) [7] [2025-06-21 15:53:45.055] []
(10314) [6] [2025-06-21 15:53:45.055] [] The value of the variable "$exitcode$" is now: "0"
(10315) [7] [2025-06-21 15:53:45.055] [] expression: [$exitcode$ = "0"] <<< is true
(10316) [6] [2025-06-21 15:53:45.055] [] expression: [not($exitcode$ = "0")] <<< is false
(10317) [5] [2025-06-21 15:53:45.055] [] ShellCall Executing: "X:\windows\system32\\cmd.exe" /C "bcdedit /enum firmware"
(10318) [6] [2025-06-21 15:53:45.176] [] ExitCode 0
(10319) [7] [2025-06-21 15:53:45.176] [] output:
(10320) [7] [2025-06-21 15:53:45.176] [] --------------
(10321) [7] [2025-06-21 15:53:45.176] []
(10322) [7] [2025-06-21 15:53:45.176] [] Firmware Boot Manager
(10323) [7] [2025-06-21 15:53:45.176] [] ---------------------
(10324) [7] [2025-06-21 15:53:45.176] [] identifier {fwbootmgr}
(10325) [7] [2025-06-21 15:53:45.176] [] displayorder {e5a7e194-4efa-11f0-9f01-c56e24401e29}
(10326) [7] [2025-06-21 15:53:45.176] [] {e5a7e195-4efa-11f0-9f01-c56e24401e29}
(10327) [7] [2025-06-21 15:53:45.176] [] timeout 2
(10328) [7] [2025-06-21 15:53:45.176] []
(10329) [7] [2025-06-21 15:53:45.176] [] Firmware Application (101fffff)
(10330) [7] [2025-06-21 15:53:45.176] [] -------------------------------
(10331) [7] [2025-06-21 15:53:45.176] [] identifier {e5a7e194-4efa-11f0-9f01-c56e24401e29}
(10332) [7] [2025-06-21 15:53:45.176] [] description UEFI: PXE IPV4 Realtek PCIe GBE Family Controller
(10333) [7] [2025-06-21 15:53:45.176] []
(10334) [7] [2025-06-21 15:53:45.176] [] Firmware Application (101fffff)
(10335) [7] [2025-06-21 15:53:45.176] [] -------------------------------
(10336) [7] [2025-06-21 15:53:45.176] [] identifier {e5a7e195-4efa-11f0-9f01-c56e24401e29}
(10337) [7] [2025-06-21 15:53:45.176] [] description UEFI: PXE IPV6 Realtek PCIe GBE Family Controller
(10338) [7] [2025-06-21 15:53:45.176] []
(10339) [5] [2025-06-21 15:53:45.176] [] ShellCall Executing: "X:\windows\system32\\cmd.exe" /C "copy x:\opsiscript.log w:\"
(10340) [6] [2025-06-21 15:53:45.281] [] ExitCode 0
(10341) [7] [2025-06-21 15:53:45.281] [] output:
(10342) [7] [2025-06-21 15:53:45.281] [] --------------
(10343) [7] [2025-06-21 15:53:45.281] [] 1 file(s) copied.
(10344) [7] [2025-06-21 15:53:45.281] []
(10345) [6] [2025-06-21 15:53:45.281] [] expression: [$authenticated$ = "true"] <<< is true
Auch ein Ändern der Bootreihenfolge mittels
Code: Alles auswählen
bcdedit /set {fwbootmgr} displayorder {bootmgr} ...
Ein Test die Bootreihenfolge mittels efibootmgr unter einem Live-Debian zu ändern bzw. den Eintrag zu löschen brachte auch keine Änderung.
Es wirkt als würde das Mainboard beim Starten sämtliche Einstellungen wieder resetten.
Workaround:
Wenn man die Datei W:\EFI\Boot\bootx64.efi innerhalb vom Windows PE löscht, verschwindet der Boot-Eintrag und das Windows 11 wird regulär gestartet.
Folgendes habe ich Testweise in die setup.opsiscript in Zeile 450 vom Windows 11 Netboot Produkt eingefügt. Dann funktioniert die Installation wie gewohnt.
Code: Alles auswählen
if runningonUefi
comment "Remove WinPE Boot EFI to workaround broken mainboards"
shellCall("del W:\EFI\Boot\bootx64.efi")
Eventuell könnte man das löschen des gesamten EFI-Verzeichnisses mit der Property "force_del_winpe_boot_entry" kombinieren oder man führt eine neue Property ein, die das Löschen des gesamten EFI-Verzeichnisses bzw. der gesamten Windows PE Partition noch vor dem Reboot für kaputte Mainboards ermöglicht?