Ersetzen von macOS durch elementares Betriebssystem. Der Computer bootet normal in das elementare Betriebssystem, aber das Startmenü (Optionstaste beim Booten) zeigt nichts an

Ich möchte macOS auf einem Mac durch elementares Betriebssystem ersetzen.

Ich formatierte die gesamte Festplatte, steckte den bootfähigen USB-Stick des elementaren Betriebssystems ein, wählte EFI-Boot im Bootloader (einzige Option) und installierte das elementare Betriebssystem. Alles funktioniert gut.

Der Computer bootet normal in das elementare Betriebssystem, aber wenn ich beim Booten die optionTaste drücke, wird im Bootloader nichts angezeigt.

Wenn ich installiere, etwas anderes wähle und nur die Root- und Swap-Partition erstelle, bekomme ich eine Windows-Partition im Bootloader. Dies führt mich zu der Annahme, dass dies mit der Installation im EFI-Modus zusammenhängt.

Weiß jemand, was passieren könnte?

Warum erhalte ich beim Einstecken des Live-USB nur die EFI-Option und nicht die Windows-Option (BIOS-Modus), wenn ich die optionTaste drücke?

Bearbeiten:

Die erste von David Anderson bereitgestellte Methode funktionierte.

Ich möchte nur hinzufügen, dass ich einen systemd-Dienst erstellt habe, um grubx64.efi bei jedem Neustart/Herunterfahren zu klonen, sodass BOOTx64.EFI auch dann aktualisiert wird, wenn diese Datei aktualisiert wird. Dies wird auch die von David gegebene Lösung automatisieren.

Das habe ich getan:

1 - Erstellen Sie eine Datei namens startup-manager-fix.service mit folgendem Text:

[Unit]
Description=Show EFI Install in Apple Startup Manager
After=rc-local.service

[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=-/bin/mkdir /boot/efi/EFI/BOOT/
ExecStop=/bin/cp -a -f /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/BOOT/BOOTx64.EFI

[Install]
WantedBy=multi-user.target

2 - Kopieren Sie die obige Datei in den Ordner /etc/systemd/system/

3 - Öffnen Sie das Terminal und fügen Sie diesen Befehl ein, um den Dienst zu aktivieren, der beide Dateien synchronisiert.

sudo systemctl daemon-reload && sudo systemctl enable startup-manager-fix.service && sudo systemctl start startup-manager-fix.service && sudo systemctl daemon-reload

4 - Neustart und beim nächsten Zugriff auf den Apple Boot Selector (drücken Sie beim Start die Optionstaste) sollte die EFI-Installation des elementaren Betriebssystems (oder einer anderen Ubuntu-basierten Distribution) vorhanden sein.

Nochmals vielen Dank an David für die Lösung.

Antworten (1)

Hinweis: In den folgenden Beispielen wurde die Download-Elementary OS-Installation mit elementaryos-0.4.1-stable.20180214.iso. Die Bilder wurden mit VirtualBox 5.2.16 r123759 (Qt5.6.3) erstellt.

Warum wird im Startup Manager bei der Installation für einen EFI-Start nichts angezeigt?

Wie Sie festgestellt haben, können Macs so konfiguriert werden, dass sie Betriebssysteme booten, die nicht immer im Startup Manager angezeigt werden. Dies kann korrigiert werden. Beginnen wir mit der normalen EFI-Boot-Installation des elementaren Betriebssystems. Klicken Sie mit der rechten Maustaste auf das Filesim ApplicationsMenü gekennzeichnete Symbol und wählen Sie dann New Windows as Administrator, wie unten gezeigt.

j1

Klicken Sie unter Devicesauf File System. Sie sollten ein Fenster ähnlich dem unten gezeigten erhalten.

j2

Öffnen Sie als Nächstes die folgenden Ordner: boot, efi, EFIund schließlich ubuntu. Sie sollten ein Fenster ähnlich dem unten gezeigten erhalten.

j3

Wenn Ihr Mac hochfährt, wird die in der grubx64.efiDatei gespeicherte Software ausgeführt. Leider hat diese Datei einen Namen und ist in einem Ordner gespeichert, der vom Startup Manager nicht erkannt wird. Daher erscheint Hinweis, wenn Sie optionbeim Start gedrückt halten. Eine einfache Lösung wäre

  1. Erstellen Sie einen BOOTOrdner im EFIOrdner.
  2. Kopieren Sie die grubx64.efiDatei aus dem ubuntuOrdner in den BOOTOrdner.
  3. Benennen Sie die grubx64.efiDatei im BOOTOrdner in BOOTx64.EFI.

Das Bild unten zeigt den Inhalt des BOOTOrdners, nachdem Sie die obigen Schritte ausgeführt haben.

j4

Befolgen Sie schließlich die unten angegebenen Schritte, um sicherzustellen, dass der Mac-Bootloader die BOOTx64.EFIDatei ausführt.

  1. Starten Sie Ihren Mac neu und halten Sie sofort die optionTaste auf Ihrer Tastatur gedrückt.
  2. Lassen Sie die optionTaste los, wenn Sie das Startup Manager-Fenster sehen.
  3. Halten Sie die controlTaste gedrückt, während Sie das mit „interne Festplatte“ gekennzeichnete Symbol auswählenEFI boot

Das elementare Betriebssystem erscheint nun im Startup Manager als internes Laufwerkssymbol mit der Bezeichnung EFI boot.

Die obige Lösung hat ein Problem: Das elementare Betriebssystem hat keine Ahnung, dass Sie diese Änderungen vorgenommen haben . Daher werden alle Aktualisierungen der grubx64.efiDatei nicht automatisch in die BOOTx64.EFIDatei kopiert. Eine bessere Lösung, die dieses Problem vermeidet, ist unten angegeben.

Verwenden Sie zunächst den EpiphanyWebbrowser, um den rEFInd Boot Manager herunterzuladen . In meinem Fall wurde die Datei in meinen Ordner refind_0.11.3-1_amd64.debheruntergeladen . DownloadsWenn Sie fertig sind, beenden Sie die EpiphanyAnwendung.

Klicken Sie als Nächstes mit der rechten Maustaste auf das Symbol Terminalim ApplicationsMenü und wählen Sie dann New Window. Sie sollten ein Fenster ähnlich dem unten gezeigten erhalten.

j6

Geben Sie im TerminalFenster die folgenden Befehle ein. Wenn Sie eine andere Datei heruntergeladen oder in einen anderen Ordner heruntergeladen haben, nehmen Sie die entsprechenden Ersetzungen vor. Wenn Sie fertig sind, beenden Sie die TerminalAnwendung.

cd Downloads
sudo dpkg -i refind_0.11.3-1_amd64.deb

Das Ergebnis der Ausführung der obigen Befehle war die Erstellung der Ordner refindund toolsim EFIOrdner, wie unten gezeigt.

j5

Als nächstes müssen Sie die folgenden Änderungen vornehmen.

  1. Wenn der BOOTOrdner nicht vorhanden ist, erstellen Sie diesen Ordner. Entfernen Sie andernfalls den Inhalt dieses Ordners.
  2. Kopieren Sie den Inhalt aus dem refindOrdner in den BOOTOrdner.
  3. Benennen Sie die refind_x64.efiDatei im BOOTOrdner in BOOTx64.EFI.
  4. Klicken Sie mit der rechten Maustaste auf die refind.confDatei im BOOTOrdner und wählen Sie dann Open in Scratch.
  5. Fügen Sie am Ende der geöffneten refind.confDatei die folgenden Zeilen hinzu.

    #
    # Added to make rEFInd silent. 
    #
    menuentry "Elementary" {
        icon \EFI\BOOT\icons\os_elementary.png
        volume "EFI"
        loader \EFI\ubuntu\grubx64.efi
        ostype Linux
        graphics on
    }
    timeout -1
    hideui all
    scanfor manual
    
  6. Schließen Sie die refind.confRegisterkarte und beenden Sie die ScratchAnwendung.

Befolgen Sie schließlich die unten angegebenen Schritte, um sicherzustellen, dass der Mac-Bootloader die BOOTx64.EFIDatei ausführt.

  1. Starten Sie Ihren Mac neu und halten Sie sofort die optionTaste auf Ihrer Tastatur gedrückt.
  2. Lassen Sie die optionTaste los, wenn Sie das Startup Manager-Fenster sehen.
  3. Halten Sie die controlTaste gedrückt, während Sie das mit „interne Festplatte“ gekennzeichnete Symbol auswählenEFI boot

Wenn Sie nun das im Startup Manager gekennzeichnete Symbol für die interne Festplatte auswählen EFI boot, startet rEFInd im Hintergrund das elementare Betriebssystem.

Warum wird Windowsim Startup Manager bei der Installation für einen BIOS-Start ein Symbol mit der Bezeichnung angezeigt?

Ursprünglich, als Apple erstmals die Installation von Windows auf Macs zuließ, musste Windows für einen BIOS-Start installiert werden. Daher verwendet Apple Windowsals Bezeichnung, die im Boot-Manager angezeigt wird, wenn ein BIOS-Boot-Betriebssystem installiert wurde. Diese Konvention wurde bei allen Macs bis 2015 wiederholt, als Apple damit begann, Macs auszuliefern, die nicht mehr vom BIOS booten konnten.

Vielen Dank für Ihre ausführliche Antwort. Ich werde es versuchen und ich werde Ihnen sagen, wie es gelaufen ist. „Die obige Lösung hat ein Problem: Das elementare Betriebssystem hat keine Ahnung, dass Sie diese Änderungen vorgenommen haben. Daher werden alle Aktualisierungen der Datei grubx64.efi nicht automatisch in die Datei bootx64.efi kopiert. Eine bessere Lösung, die dieses Problem vermeidet, ist unten angegeben." Was ist, wenn ich dies auf die ausführbare Datei rc.local setze? Würde es nicht jedes Mal aktualisiert werden, wenn ich den Computer starte? Wissen Sie, warum ich die BIOS-Installationsoption im Bootloader nicht sehe, wenn ich den Live-USB einstecke? Danke noch einmal.
Die Dateien grubx64.efiund BOOTx64.EFIwerden vor der rc.localDatei ausgeführt. Wenn sich eine Aktualisierung so geändert hat , dass sie nach kopiert werden grubx64.efimüsste, würde die in gespeicherte Kopieroperation nicht ausgeführt werden, bevor sie ausgeführt wird. Grundsätzlich handelt es sich bei und um GRUB-Dateien, bei denen es sich um eine Linux-Datei handelt. GRUB wird vor Linux ausgeführt. grubx64.efiBOOTX64.EFIrc.localBOOTX64.EFIgrubx64.efiBOOTx64.EFIrc.local
Die Mac-Firmware kann das BIOS nicht von einem USB-Anschluss booten. Die Firmware in bestimmten Mac-Modellen kann das BIOS von einem optischen Laufwerk oder von einem internen Laufwerk booten. Eine Problemumgehung wäre, ein USB-Laufwerk von VirtualBox per BIOS zu booten und auf einem internen physischen Laufwerk zu installieren. Diese Methode sollte nur von erfahrenen Mac-Benutzern angewendet werden. In der Praxis würde man auch eine ISO-Datei anstelle eines USB-Laufwerks verwenden.
Ein weiteres Problem bei der Verwendung rc.localwäre, wenn ein Update oder Upgrade des elementaren Betriebssystems die rc.localDatei ändert, ersetzt oder entfernt. In einem solchen Fall könnte der Kopiervorgang eliminiert werden. Der rEFInd Boot Manager beseitigt dieses Problem. Der rEFInd Boot Manager bootet eigentlich nichts. Was passiert ist, dass rEFInd dem Mac-Bootloader die richtigen Dateien zum Booten mitteilt. Wenn Ihr Mac hochfährt, bootet der Mac-Bootloader rEFInd. Als nächstes weist rEFInd den Mac-Bootloader an, GRUB zu booten. Der Mac wird neu gestartet und der Mac-Bootloader startet GRUB. Schließlich bootet GRUB das elementare Betriebssystem.
Danke nochmal für die ausführliche Erklärung. Gibt es ein Problem, wenn die Inhalte von grubx64.efi und BOOTx64.EFI nicht übereinstimmen? Ist die BOOTx64.EFI nicht nur zum Anzeigen der "efi boot" -Diskette im Apple-Bootloader? Nochmals vielen Dank für Ihre Zeit.
Ich verstehe Ihre Frage bezüglich "Gibt es ein Problem, wenn die Inhalte von grubx64.efi und BOOTx64.EFI nicht übereinstimmen?". Die Erkennung der BOOTX64.EFIDatei durch den Mac-Bootloader ist genau das, was Apple beschlossen hat, um die Anforderungen auf Seite 91 der UEFI-Spezifikation zu erfüllen .
Hallo. Wenn ich rc.local dazu bringe, grubx64.efi bei jedem Start nach BOOTX64.EFI zu kopieren und grubx64.efi von Grund auf zu aktualisieren, haben diese beiden Dateien beim nächsten Neustart nicht den Inhalt, bis der Computer das Booten beendet hat (rc.local wird ausgeführt). aber wenn BOOTX64.EFI nur benötigt wird, damit das Laufwerk im Bootloader erscheint, spielt es keine Rolle, da der Computer sowieso bootet und wenn er fertig ist, habe ich beide wieder gleich. Unabhängige Frage: Die BOOTX64.EFI-Datei soll alles in Großbuchstaben sein, oder? Nicht BOOTx64.EFI oder bootx64.efi? Nochmals vielen Dank.
Ich habe meine Antwort geändert, um sicherzustellen , dass BOOTx64.EFIsie anstelle von ausgeführt wird grubx64.efi. Die UEFI-Spezifikation verwendet die Schreibweise BOOTx64.EFI, aber ich glaube, dass der Mac-Bootloader in Bezug auf Dateinamen von der Groß- und Kleinschreibung unabhängig ist.
Es tut mir leid, wenn ich das nicht richtig verstehe, aber da der Bootloader Elementary immer über die Datei BOOTx64.EFI lädt (nach Steuerung + Eingabe), was passiert, wenn diese Datei veraltet ist (bevor rc.local sie gleich macht mit grubx64.efi)? Der Computer bootet nicht? Vielen Dank für Ihre Geduld.
Theoretisch kann es vorkommen, dass der Computer nach einem Update nicht bootet. Aus diesem Grund kann die Verwendung von rEFInd eine bessere Lösung sein. Es gibt auch andere Lösungen. Sie könnten beispielsweise auch die macOS-Wiederherstellung oder ein externes Laufwerk starten und die grubx64.efiDatei jedes Mal segnen, wenn der Mac nicht ordnungsgemäß startet.
Mit Segen meinen Sie die Rückkehr zu dem Zustand, der vor der Verwendung von Strg + Eingabe (BOOTx64.EFI) im Bootloader war, richtig? Das Mounten der Festplatte und das manuelle Kopieren der Datei mit einem elementaren Liveusb würde dasselbe bewirken? Was ist, wenn ich bei jedem Herunterfahren/Neustart (systemd service) ein Skript ausführe? Auf diese Weise sind grub64.efi und BOOTx64.EFI auch nach einem Update immer synchron und ich habe kein rc.local-Problem, richtig? Danke.
Ich meine, ignoriere meine Antwort vollständig. Sie können die Datei festlegen, die der Mac-Bootloader ausführt, indem Sie den blessBefehl verwenden. Da elementary OS das einzige Betriebssystem ist, das auf Ihrem Mac installiert ist, müssen Sie diesen Befehl eingeben, indem Sie entweder über Internet macOS Recovery , ein Installationsprogramm für ein macOS-USB-Flash-Laufwerk oder auf einem externen Laufwerk installiertes macOS booten. Sie würden den blessBefehl verwenden, um grubx64.efials Standarddatei festzulegen, die der Mac-Bootloader beim Start ausführen soll.
Übrigens, was ist das Modell/Jahr Ihres Mac?
MacBook 2008. Denken Sie, dass das Ausführen einer ausführbaren Datei, die beide Dateien bei jedem Herunterfahren/Neustart synchronisiert, funktionieren könnte? Was ist mit einem NVRAM-Reset? Welche Datei wählt der Bootloader nach dem Zurücksetzen. Danke.
Entschuldigung für die späte Antwort. Es scheint, dass es funktioniert. Vielen Dank für Ihre Geduld.