Seite 1 von 1

Windows 11 Installation - Bootreihenfolge ändert sich nicht mit MSI B550-A PRO

Verfasst: 21 Jun 2025, 16:54
von SBusse
Moin zusammen,

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
Wenn man nach dem Reboot (wo der Rechner wieder in Windows PE startet) ein bcdedit /enum firmware eingibt, erscheint der gelöschte Windows-PE Boot-Eintrag erneut.

Auch ein Ändern der Bootreihenfolge mittels

Code: Alles auswählen

bcdedit /set {fwbootmgr} displayorder {bootmgr} ...
bzw. Entfernen des Windows-PE Boot-Eintrags aus der Displayorder führte zu keiner Änderung.

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")
Ideen:
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?

Re: Windows 11 Installation - Bootreihenfolge ändert sich nicht mit MSI B550-A PRO

Verfasst: 25 Jun 2025, 15:03
von n.vidziunas
Hi SBusse,

vielen Dank für die Anregung!

Wir sind mit dem Workaround einverstanden und werden ihn mit ein paar kleinen Anpassungen übernehmen. Wir werden die Löschung der Datei "bootx64.efi" in die bestehende "force_del_winpe_boot_entry"-Eigenschaftslogik integrieren.

Die Einführung einer separaten Eigenschaft scheint zu diesem Zeitpunkt nicht notwendig zu sein. Allerdings halten wir das Löschen der gesamten WinPE-Partition für potenziell problematisch und würden dies vorerst lieber vermeiden.

Mit freundlichen Grüßen
Naglis Vidziunas