Startvolume per config.plist festlegen

  • Ich habe mich nun endlich an OpenCore ran gewagt und Big Sur installiert.

    Dank des hervorragenden Installation Guides hat nach ca. zwei Tagen alles wunderbar funktioniert.


    In meinem alten, auf Clover basierendem, Setup hat ein Raspberry einen USB Stick simuliert und konnte so die EFI Partition austauschen. Durch die "DefaultBootVolume" Funktion von Clover konnte ich so bereits vor dem Start des Systems festlegen, welches Betriebssystem ich booten möchte. (z.B. Windows10 oder Mojave oder HighSierra)


    Bietet OpenCore eine ähnliche Funktion?


    Sowohl stgr+enter im OpenCore GUI als auch die "Startvolume" Einstellung von Big Sur funktionieren auf meinem z390.


    Da ich jedoch das Startvolumen aus der config.plist (oder wo anders in der EFI) festlegen möchte habe ich bereits versucht per NVRAM add sowohl "Boot0080" und "BootOrder" unter "8BE4DF61-93CA-11D2-AA0D-00E098032B8C" als auch "efi-boot-device" und "efi-boot-device-data" unter "7C436110-AB2A-4BBB-A880-FE41995C9F82" zu setzten. Bis jetzt jedoch erfolglos.

    Gibt es eine Möglichkeit, wie ich je nach eingelegtem USB Stick eine entsprechende Festplatte als Standard festlegen kann?


    Danke

  • Das Start-Volume wird im NVRAM gespeichert. So auf die Schnelle fällt mir nur NVRAM-Emulation ein. Dabei wird der Inhalt des NVRAM auf dem Datenträger gespeichert, von dem der Rechner gestartet wurde. In deinem Fall auf dem USB-Stick. Ein anderer Ansatz wäre Ventoy mit verschiedenen selbstgestickten EFI-ISO.

  • "efi-boot-device" und "efi-boot-device-data"

    Wenn sich die Pfade nicht ändern, sollte das klappen. Woanders schreibt es macOS auch nicht hin, und OpenCore liest es aus. Gern aber beide Einträge (nur Namen der Variablen, nicht die Werte) auch entsprechend in "NVRAM\Delete" (zusätzlich zu "NVRAM\Add") eintragen. Denn OpenCore wird KEINE Einträge ERSETZEN, also Variablen die schon gesetzt sind. Nur durch "löschen" und "anschließend erneut setzen" (so ist die Reihenfolge) können auch vorhandene Einträge "überschrieben" werden.

    ASUS PRIME X299-DELUXE i9-9940X • DDR4 64GB • SSD 960 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon RX Vega 64 • BMD Intensity Pro 4K

    ASUS WS X299 SAGE/10G i9-10980XE • DDR4 64GB • SSD 970 PRO 1TB • Thunderbolt3 Titan Ridge • 2x AMD Radeon VII • BMD DeckLink 4K Extreme 12G


    Ordnung ist die primitivste Form von Chaos. (Hans-Jürgen Quadbeck-Seeger)

  • So auf die Schnelle fällt mir nur NVRAM-Emulation ein.

    Ich denke das werde ich dann als nächstes versuchen. Danke!



    Wenn sich die Pfade nicht ändern, sollte das klappen. Woanders schreibt es macOS auch nicht hin, und OpenCore liest es aus. Gern aber beide Einträge (nur Namen der Variablen, nicht die Werte) auch entsprechend in "NVRAM\Delete" (zusätzlich zu "NVRAM\Add") eintragen. Denn OpenCore wird KEINE Einträge ERSETZEN, also Variablen die schon gesetzt sind. Nur durch "löschen" und "anschließend erneut setzen" (so ist die Reihenfolge) können auch vorhandene Einträge "überschrieben" werden.

    Ich habe es noch mal versucht. Nach einem NVRAM reset, hat er wie erwartet beide Werte gesetzt.

    Log

    Später jedoch wurde nicht "efi-boot-device-data" gelogged.

    Log


    In der GUI habe ich dann per stgr+enter mein Catalina Laufwerk ausgewählt. Und direkt neu gestartet.

    Log

    Beim nächsten Start wurden die NVRAM Variablen nicht neu geschrieben, da sie bereits genau so existierten.

    Log

    Später wurde "efi-boot-device-data" erfolgreich gelogt.

    Log

    Im GUI war jedoch immernoch mein Catalina Laufwerk ausgewählt.


    Die NVRAM Variablen habe ich gesetzt, indem ich in den Systemeinstellungen unter "Startvolume" mein Big Sur Laufwerk ausgewählt habe (klick und dann zurück). Und anschliesend über "nvram -xp" mir die Werte exportieren hab lassen.

    Durch die neu starts wurde offenbar "efi-boot-device" von string zu data konvertiert.

    Mach ich irgendetwas fundermental falsch? Oder noch andere Ideen?

    :danke:

  • Custom Einträge anlegen. Das habe ich für Windows so gemacht.


    Den PCIROOT-Pfad in der UEFI-Shell auslesen und mit ">" in eine Textdatei umleiten.


    map > volumes.txt


    PCIROOT Pfade für Custom Entries für OpenCore heraus finden.