1-Click-Dualboot Lösung für Mac und Win unter Opencore

  • Liebes Forum,


    ich habe ein stabil laufendes System mit OC 0.64 und Win10 auf jeweils getrennten SSDs. Unter Clover hatte ich schon eine 1-Click-Lösung, um in das andere Betriebssystem zu booten, beschrieben hier.

    Dabei hat ein Skript die config.plist mit einer angepassten überschrieben im jeweiligen OS.


    Mein Ziel ist es, eine 1-Klick-Lösung zu haben, um in das andere Betriebssystem zu booten. Ich weiß, dass ich das bei MacOs über Einstellungen -> Startvolume erreichen kann. Das nervt aber und dauert mir zu lange. Auf rEFInd bin ich vorhin gestoßen, das soll aber wohl noch nicht kompatibel mit Big Sur sein. Außerdem weiß ich nicht, ob es sich mit OC verträgt.

    Auch weiß ich, dass es in Windows das Bootcamp-Trayicon gibt. Das wird mir trotz Eintrag im Autostart aber nicht angezeigt. Wenn ich es "normal" öffne, klappt der Neustart auch. Problem: Es ist keine 1-Klick-Lösung :)


    Meine Fragen wäre nun:
    - Kennt jemand ein funktionierendes Skript um in Windows zu booten? (Ich habe welche gefunden, die aber nicht klappen. Muss System Integrity Protection evtl. deaktiviert sein?)

    - Kennt jemand ein funktionierendes Skript um von Win in MacOS zu booten? Oder weiß, was das Problem mit dem nicht erscheinenden Tray-Icon ist?

    - Gibt es eine Möglichkeit, in der config.plist von OC das nächste Startvolume auszuwählen?

    - Sonst noch einen Tipp...?

    Hackintosh:
    Intel i9 9900K - Gigabyte Z370 HD3P - Asus Radeon RX 560 (MacOS) - Gigabyte 3080 Gaming OC (Win) - Crucial Ballistix Elite 16GB DDR4 2666 - Samsung 860 Evo 500GB - Samsung 860 Evo 1Tb - WD Black SN750 1Tb - OS: Win10 & Big Sur (OC 0.64)

  • Ich nutze reFind mit OC 0.6.5 + Big Sur + Win10 Pro.

    SSD0 -> reFind

    SSD1 -> OC/BigSur

    SSD2 -> Win10 Pro


    SSD0 ist im Bios als Boot Device eingerichtet.

    In der reFind Conf hab ich die GUID der BigSur und Win10 Part eingetragen. Timeout 10sec dann wird BigSur gebootet. Win10 bootet bei Bedarf per Tastendruck im reFind Bootmenü.


    Ich nutzt das so seit ca 7Monaten und seit 2 Monaten mit Big Sur. Aufgefallen ist mir nichts, dass da was nicht funktionieren soll.

  • talkinghead

    Na das ist doch mal eine Antwort, wie man sie sich wünscht. Vielen Dank! Werde es später mal ausprobieren und eine Rückmeldung geben!

    :danke:


    Edit: Aber eine 1-Klick-Lösung gesteuert über das jeweilige OS ist es nicht, oder? Ich muss immer noch beim Bootpicker aktiv sein, richtig?

    Hackintosh:
    Intel i9 9900K - Gigabyte Z370 HD3P - Asus Radeon RX 560 (MacOS) - Gigabyte 3080 Gaming OC (Win) - Crucial Ballistix Elite 16GB DDR4 2666 - Samsung 860 Evo 500GB - Samsung 860 Evo 1Tb - WD Black SN750 1Tb - OS: Win10 & Big Sur (OC 0.64)

  • Spitzfindig ausgedrückt ist reFind "one-click", bzw sogar einfacher, da "no-Click" das default BS startet und bei bedarf mit "one-Click" das andere BS.


    Wenn du es aber aus dem gestarteten OS heraus machen willst, wäre das wg Eingabe von Admin Credentials - zumindest bei mir - kein One-Click.

    Aber dennoch könntest Du dir unter macOS und Win jeweils z.B. ein Script z.B. mit folgender Logik bauen:

    mount (refind) Efi part

    copy win10.conf bzw macOS.congf -> refind.conf

    reboot


    Vorher müsstest du dir ne reFind Conf bauen mit Eintrag #1 macOS und #2 Win10

    z.B über den "Default" Parameter in der refind.Conf bootet reFind dann das OS.


    Wenn ich das per Copy so machen wollte würde ich insgesamt 3 (fast identische) Kopien dere find.confs im reFind Ein Ordner haben:


    refind.conf (live)

    macOS.conf (kopie von refind.conf mit default macOS)

    win10.conf (kopie von refind.conf mit default Win10)


    und dann die macOS bzw win10 conf über die reFind.conf kopieren.

  • Mal ne doofe Frage von mir (doofe Fragen gibt es eigentlich nicht :-) )


    Warum macht Ihr das so mit Refind.


    Wenn man ganz normal über OpenCore bootet kann ich doch auch Windows starten im BootPicker.


    Und wenn ich im Bootpicker bei dem Windows Eintrag Control+Enter drücke und es damit auswähle ist das dann beim nächsten Start automatisch das Laufwerk was als erstes gebootet wird unter OpenCore. Wenn man dann noch einen Timeout hat von 5 Sekunden startet er doch dann ganz von alleine in Windows. Ohne irgendwelche Bootcamp Geschichten zu nutzen.


    Will ich dann wieder in MacOs. Wähle ich das dann ganz normal im BootPicker aus und er startet in MacOs. Will ich MacOs festlegen als immer zu startendes Betriebssystem wähle ich es mit Control + Enter aus.

    Dell Optiplex 3020 SFF / Core I5 4590 / Intel HD4600 / 8GB Ram / 250 GB Samsung SSD 850 EVO / Aukru USB Nano Bluetooth Adapter V4.0/ OpenCore 0.84 / Magic Mouse 2 / Magic Keyboard 2 / Magic Trackpad 2 / Sonoma 14.0 Beta (23A5328b)


    Real Mac / MacBook Pro 13 Zoll Mitte 2012 /2,5 GHz Dual-Core Intel Core i5 / 8GB Ram / 250 GB Samsung SSD 850 EVO/ Intel HD Graphics 4000 / Catalina


    Real Mac / MacBook Air M1 / 8 Core CPU / 7 Core GPU / 8GB RAM / 256GB SSD / Ventura 13.1 (22C65)

  • keine doofe Frage :-)

    ich nutze OC erst seit ca 7Monaten und eines meiner ersten Probleme nach der Installation von macOS neben Win10 im Dualboot über den BootPicker war, dass Win10 eine "geänderte" Hardware vorfand. Das führt dann zu Neuaktivierung von diverser Software. Und das wollte ich vermeiden.

    Meine Wahl fiel auf reFind.

  • Also, wenn man ein Dual-Boot System mit 2 separaten Festplatten hat muss man da im Grunde gar nix machen. Der Windows Bootloader wird auch im OpenCore Bootmenü erkannt. Eventuell könnte man entsprechend Clover Conversion Guide vermeiden, dass SMBIOS Infos für macOS in WIndows injiziert werden:


    To enable macOS-only SMBIOS injection:

    • Kernel -> Quirks -> CustomSMBIOSGuid -> True
    • Platforminfo -> CustomSMBIOSMode -> Custom

    Wenn man aber vermeiden möchte, dass ACPI Patches auf Windows angewendet werden, sollte man entweder Clover verwenden oder Windows aus dem BIOS Bootmenü starten, um OpenCore zu umgehen.

  • Wenn man aber vermeiden möchte, dass ACPI Patches auf Windows angewendet werden, sollte man entweder Clover verwenden oder Windows aus dem BIOS Bootmenü starten, um OpenCore zu umgehen.

    Das sehe ich auch so.

    Allerdings wollte ich OC statt Clover verwenden und Windows über Bios Bootmenü, empfand ich wg des kurzen Zeitfensters für Tastendruck für den rest meiner Family nicht benutzerfreundlich genug. Das sind aber nur meine Erfahrungen dazu.

  • 5T33Z0 meint schon das richtige. Das ist für OpenCore

    Dell Optiplex 3020 SFF / Core I5 4590 / Intel HD4600 / 8GB Ram / 250 GB Samsung SSD 850 EVO / Aukru USB Nano Bluetooth Adapter V4.0/ OpenCore 0.84 / Magic Mouse 2 / Magic Keyboard 2 / Magic Trackpad 2 / Sonoma 14.0 Beta (23A5328b)


    Real Mac / MacBook Pro 13 Zoll Mitte 2012 /2,5 GHz Dual-Core Intel Core i5 / 8GB Ram / 250 GB Samsung SSD 850 EVO/ Intel HD Graphics 4000 / Catalina


    Real Mac / MacBook Air M1 / 8 Core CPU / 7 Core GPU / 8GB RAM / 256GB SSD / Ventura 13.1 (22C65)

  • Wenn man aber vermeiden möchte, dass ACPI Patches auf Windows angewendet werden

    Wenn man richtig bearbeitet SSDTs verwendet, hat man keine Probleme mit ACPI in Windows, weil diese ausschließlich nur für Darwin geladen werden, dann kann man auch OpenCanopy benutzen, mache ich ja jetzt auch, hatte vorher den rEFInd benutzt.

    WSR:

    GR:

    Mac:

  • schabulske

    Die 1-Klick-Lösung möchte ich, weil ich aus dem jeweiligen OS (also MacOS oder Win10) in das andere möglichst komfortabel booten möchte. Und manuell das Startvolumen auswählen, dann Neustart drücken, dann warten bis der Bootpicker erscheint ist mir zu umständlich (ich weiß, das sind ziemliche Erste-Welt-Probleme...).


    talkinghead

    Danke dir noch einmal für deinen Vorschlag mit der config für rEFInd. So werde ich es später mal ausprobieren. Denn genau den Weg habe ich, wie schon im ersten Post beschrieben, bei meinem alten Clover-Hack gehabt.

    Hackintosh:
    Intel i9 9900K - Gigabyte Z370 HD3P - Asus Radeon RX 560 (MacOS) - Gigabyte 3080 Gaming OC (Win) - Crucial Ballistix Elite 16GB DDR4 2666 - Samsung 860 Evo 500GB - Samsung 860 Evo 1Tb - WD Black SN750 1Tb - OS: Win10 & Big Sur (OC 0.64)

  • Bob-Schmu Das ist nur die halbe Wahrheit. Es stimmt zwar, dass man mit _OSI Loops in den SSDTs das injecten in Windows nicht erfolfr kann, aber dennoch werden dennoch alle ACPI Patches wie renames und so weiter angewendet.


    Das kann man auch nicht mit den o.g. OC settings verhindern, da diese sich wie gesagt nur aufs SMBIOS beziehen. Habe da leidlich Erfahrungen mit gemacht, als ich dualboot von einer ssd auf nem laptop ohne gepachte DSDT eingerichtet habe.

    Einmal editiert, zuletzt von 5T33Z0 ()

  • talkinghead

    Habe rEFInd jetzt ausprobiert und damit klappt es super. Habe jetzt im Dock bzw. aufm Desktop unter Windows eine komfortable 1-Klick-Lösung mit passenden Icons :)

    Falls es jemanden interessiert, wie man das genau einrichtet, kann ich das auf Nachfrage hier beschreiben.

    Hackintosh:
    Intel i9 9900K - Gigabyte Z370 HD3P - Asus Radeon RX 560 (MacOS) - Gigabyte 3080 Gaming OC (Win) - Crucial Ballistix Elite 16GB DDR4 2666 - Samsung 860 Evo 500GB - Samsung 860 Evo 1Tb - WD Black SN750 1Tb - OS: Win10 & Big Sur (OC 0.64)

  • Lokus Es würde mich interessieren, wie du das eingerichtet hast. Finde die Website von rEFInd nämlich furchtbar vom Layout her. Finde da nicht mal den Download :D

    • Hilfreich

    Alles klar. Dann hier mal die ausführliche Anleitung. Kopiere manches aus meiner alten Clover-Anleitung und passe es an Opencore an.

    1. Schritt rEFInd installieren

    Auf der furchtbar unübersichtlichen Seite von refind hier die aktuellste Version laden: https://www.rodsbooks.com/refind/getting.html

    (Ich habe binary zip file heruntergeladen). Dann der Installationsanleitung hier folgen: https://www.rodsbooks.com/refind/sip.html

    In kurz: Zip-File herunterladen, Pfad merken, in die Recovery-Partition rebooten, SIP deaktiveren, neustarten und dann per Terminal refind installieren. Ist aber alles auf der Seite beschrieben. Nicht vergessen SIP wieder zu aktivieren.


    2. Booten von MacOS in Windows per AppleSkript:

    Erstellt nun ein Skript mit Appleskript das folgenden Inhalt hat (muss ans System angepasst werden!):

    Code
    1. do shell script "diskutil mount 63C9CEF7-CA88-4CED-B372-91DBEF873452" user name "Benutzernamen einfügen" password "passwort einfügen" with administrator privileges
    2. do shell script "cp Volumes/EFI/EFI/refind/refind_bootwin.conf Volumes/EFI/EFI/refind/refind.conf"
    3. do shell script "diskutil umount 63C9CEF7-CA88-4CED-B372-91DBEF873452" user name "Benutzernamen einfügen" password "Passwort einfügen" with administrator privileges
    4. do shell script "/Users/hendrik/reboot.sh"

    Damit das mounten der EFI-Partition klappt, muss nach mount und umount die Disk UUID angegeben werden. Die findet man im Clover Configurator unter Mount EFI -> Partition Scheme.

    Benutzer und Passwort müssen natürlich auch noch angepasst werden.

    Mit dem nächsten Befehl wird die ursprüngliche refind.conf mit refind_bootwin.conf überschrieben. Dafür muss man im refind-Ordner der EFI die refind.conf zweimal kopieren und umbenennen, sodass man drei verschiedene Dateien hat:


    refind.conf

    refind_bootwin.conf

    refind_bootmac.conf


    In der refind_bootwin.conf habe ich die folgenden Zeilen geändert (Achtung, die Werte entsprechen meinem System. Bei euch kanns anders sein!)



    Code
    1. timeout -1
    2. default_selection 1

    Anmerkung:timeout -1 führt dazu, dass der Bootpicker von rEFInd übersprungen wird und die default_selection gebootet wird.

    default_selection 1 ist bei mir die Windows-Partition.


    Wenn man, so wie ich das Skript nun als App exportieren würde und dann ins Dock zieht, würde es beim nächsten Neustart wieder geöffnet werden und einen direkten Reboot verursachen, wenn man den Reboot-Befehl im Skript hat und auch MacOS so konfiguriert hat, dass Programme beim Neustart wieder geöffnet werden.
    Lösen kann man das Problem, indem der Restart-Befehl per Shell-Skript ausgelagert wird. Das macht die Zeile mit dem reboot.sh-Skript.

    Legt ein neues Textdokument an und fügt den folgenden Code ein:


    Shell-Script
    1. #!/bin/bash
    2. sleep 5
    3. launchctl remove application.com.apple.ScriptEditor.id.In-Windows-booten2.5509087.5509090
    4. sleep 5
    5. osascript -e 'tell application "System Events" to restart

    Abspeichern und die Dateiendung in .sh umbenennen.
    Wichtig: Die Pfade zum Skript und die dritte Zeile müssen an euer System angepasst werden! Die dritte Zeile mit "launchctl remove" schließt das Appleskript, das ja sonst nach einem Neustart geöffnet wird und wieder einen Reboot initiiert. Um herauszufinden, wie bei euch das Skript heißt, kommentiert die Zeile mit dem restart (osascript usw.) aus indem ein # an den Anfang der Zeile gesetzt wird. Damit deaktiviert ihr den Befehl. Ändert die sleep-Zeit auf 50. Dadurch habt ihr genug Zeit um nach dem starten des Appleskriptes folgendes zu machen: Öffnet Terminal und gebt folgendes ein:


    Code
    1. launchctl list

    In der nun erscheinenden Liste such ihr mit Cmd+F nach dem Namen der App des Appleskripts (ich habe bei mir einfach Windows eingegeben).

    Dann kopiert ihr die Zeile (siehe mein Shell-Skript) in euer Skript.


    3. Booten von Windows in Mac OS



    Das war etwas komplizierter und es gab weitere Problemchen, die aber gelöst werden konnten. Es funktioniert nun wie folgt:


    1. Zunächst muss man die EFI-Partition mounten und ihr einen Laufwerksbuchstaben zuweisen. Ich habe es mit einem Programm gemacht, wie hier beschrieben: klick

    2. Folgendes Powershell Skript muss erstellt werden:


    Code
    1. copy Volumes/EFI/EFI/refind/refind_bootmac.conf Volumes/EFI/EFI/refind/refind.conf
    2. Restart-Computer

    Ähnlich wie beim oberen Skript, wird die refind.conf mit einer refind_bootmac.conf überschrieben, die nun wieder so aufgebaut ist, dass automatisch bei jedem Neustart MacOS gebootet wird. Die refind_bootmac.conf hat folgende geänderte Einträge:


    Code
    1. timeout -1
    2. default_selection 2

    Anmerkung: "2" ist bei mir die Preboot-Partition, die MacOS startet (die "normale" Mac-Partition klappt nicht!)


    Das Powershell-Skript muss zwingend mit Administrator-Rechten ausgeführt werden. Damit das geht, muss eine Verknüpfung für das Skript in Windows erstellt werden, wo man mit einem Rechts-Klick auf die Verknüpfung und bei -> Eigenschaften -> Erweitert ... ein Häkchen bei dem entsprechenden Feld setzen kann, sodass die Verknüpfung bzw. dann das Skript immer mit Admin-Rechten ausgeführt wird.


    So sollte nun alles reibungslos funktionieren! Falls doch nicht, bitte melden! Ich hatte nämlich noch einen Zwischenschritt (Rechte ändern unter Windows für das Ausführen von Powershell-Skripten), ich glaube, dass der aber nicht notwendig war. Leider habe ich auch vergessen, was genau ich gemacht habe.


    4. Die Icons aufhübschen:


    Da ich mir in MacOs das App des Appleskriptes ins Dock gezogen habe, wollte ich auch ein schönes Icon haben. Meins habe ich mal hier angehängt.

    Wer ein eigenes erstellen will, wird mit der kostenlosen App image2icon aus dem AppStore glücklich.

    Das Logo der Windows-Verknüpfung habe ich auch geändert, habe ich auch angehängt.


    5. Extra: EFI-Mount Skript

    Da man ja als passionierter Hackintosher ab und zu seine EFI mounten muss, kann man das Appleskript, das wir erstellt haben, nutzen. Einfach nur die erste Zeile stehen lassen, den Rest löschen. Als App exportieren, ins Dock ziehen und: Tadaaa! Man hat eine 1-Klick-EFI-mount-Lösung :) Das Leben kann so einfach sein!

    Dateien

    Hackintosh:
    Intel i9 9900K - Gigabyte Z370 HD3P - Asus Radeon RX 560 (MacOS) - Gigabyte 3080 Gaming OC (Win) - Crucial Ballistix Elite 16GB DDR4 2666 - Samsung 860 Evo 500GB - Samsung 860 Evo 1Tb - WD Black SN750 1Tb - OS: Win10 & Big Sur (OC 0.64)