Warum bricht Refind beim Upgrade von Mac OS High Sierra (HFS) auf Mojave (APFS) auf NVMexpress-Macs ab?

Problem: NVMExpress-Macs mit Refind sehen den APFS-Container nicht und ich kann meinen Mac nicht booten.

Entschuldigung auch an diejenigen, die diese Lösung kannten, aber ich stand diesem Problem zusammen mit mehreren anderen Technikern gegenüber und wir konnten es bis jetzt nicht lösen.

Ich werde unten meine eigene Frage beantworten, aber dieser Beitrag gilt für Benutzer, die Folgendes mit ihrem Mac tun:

  • Haben SIPS auf ihrem Gerät deaktiviert
  • Versuch, refind mit Mac OS Mojave zu verwenden
  • Upgrade von High Sierra HFS auf Mojave APFS
  • Verwenden Sie die Refind-Version 10.4 oder 11.4

Dieser Beitrag gilt nicht für Macs, die Folgendes nicht haben:

  • Ein NVMExpress-Controller. Beispiele für Macs, die es haben, sind die Mac-Modelle 18,2 und 18,3.

Wenn Sie refind mit dem Unix-Installationsprogramm auf einem NVMExpress-Rechner installieren, installiert es nicht automatisch den entsprechenden Treiberordner, der Ihnen die Unterstützung von APFS ermöglicht, sodass Sie davon ausgehen müssen, dass refind fehlerhaft ist. Refind kann den APFS-Container Preboot oder Macintosh HD-Volumes im Refind-Menü nicht sehen, um in Ihr Mac OS Mojave-System zu booten.

Wenn Sie dies auf einem Nicht-NVMExpress-Computer versucht haben und High Sierra APFS hatten, würden Sie nur das Macintosh HD-Volume sehen, das bestätigt, dass Refind funktioniert. Dies gilt auch, wenn Sie Mojave auf einem Nicht-NVMexpress-Computer hatten, da Refind Version 11 problemlos sowohl auf den Preboot- als auch auf den Macintosh HD-Volumes aufgreifen würde.

Ihre Refind-Installation ist also zu alt?
Verwenden Sie Verschlüsselung?
@ThorbjørnRavnAndersen Nein, eigentlich könnte ich Version 10.4 verwenden und den hfs_x64.efi-Treiber installieren, damit Refind die bootfähige Option sehen kann. Der einzige Unterschied besteht darin, dass refind die Preboot-Partition nicht sieht und nur das Macintosh HD-Volume. Beginnen Sie mit refind v11.1, es wurde entwickelt, um die Preboot-Partition anzuzeigen.
@DavidAnderson Nein, es gibt keine Verschlüsselung.

Antworten (2)

Lösung:

BEARBEITEN: Vielen Dank an @DavidAnderson für den Hinweis, dass die Treiberdatei „hfs_x64.efi“ dafür sorgt, dass der Mac den bootfähigen Container auf dem Mac sehen kann. Bitte lesen Sie seine Antwort für eine bessere Erklärung.

Die Lösung ist sehr kurz und beinhaltet die Installation des Ordners „driver_x64“, der im refind-Download enthalten ist, in refind-bin_X/refind/drivers_x64.

Ziehen Sie diesen Ordner „drivers_x64“ einfach per Drag & Drop in das Verzeichnis EFI/EFI/refind, nachdem Sie das EFI gemountet haben. Ihr EFI-Refind-Ordner sollte folgendermaßen aussehen:

Geben Sie hier die Bildbeschreibung ein

Unten sind einige nützliche Befehle, die mir geholfen haben.

Wie überprüfe ich, welches Mac-Modell ich habe?

Sie können Folgendes im Terminal eingeben, um Ihre Modellnummer anzuzeigen:

system_profiler SPHardwareDataType | grep "Model Identifier:"

Wie überprüfe ich, ob mein Mac über NVMExpress verfügt?

Neuere Macs werden höchstwahrscheinlich den NVMExpress SSD Controller haben. Wenn Sie jedoch wissen möchten, welche Art von Verbindung Sie verwenden, können Sie die folgenden Befehle separat eingeben.

Wenn es sich bei Ihrem Gerät um ein SATA-Gerät handelt, werden die Informationen zu Ihrer SATA-Festplatte und der Verbindung zurückgegeben.

Wenn es sich bei Ihrem Gerät um NVMExpress handelt, werden Informationen zu Ihrer NVMExpress-Festplatte und der Verbindung zurückgegeben. Wenn Ihr Gerät nicht NVMexpress ist, wird es natürlich nichts zurückgeben.

system_profiler SPNVMeDataType
system_profiler SPSerialATADataType

Beispiel:

Geben Sie hier die Bildbeschreibung ein

Bitte beachten Sie, dass die Version von Refind beeinflusst, von welchen Volumes Sie booten können. Ich habe dies auf Refind Version 10.4 und 11.4 getestet.

Bei meinen Tests habe ich festgestellt, dass Sie mit 10.4 nur das Volume „Macintosh HD“ sehen können.

Alle Versionen nach und einschließlich 11.1 sind so konzipiert, dass sie das Preboot-Volume sehen, das mit dem Upgrade auf Mac Os Mojave installiert wird. Weitere Informationen zu Refind-Revisionen finden Sie hier:

http://www.rodsbooks.com/refind/revisions.html

Ich finde es seltsam, dass im Treiberordner kein "apfs.efi"-Treiber explizit erwähnt wird. Ich habe wahrscheinlich vor, dies dem Entwickler vorzulegen. Aber es scheint immer noch dieses Problem zu beheben. Siehe unten, was ich meine:

Geben Sie hier die Bildbeschreibung ein

Ich hoffe das hilft! Das zerbrach mir über eine Woche lang den Kopf, bis mir diese einfache Lösung einfiel. Hoffentlich hilft es dir auch.

Sie sagen also im Grunde, dass ./refind-installman bei der Eingabe die Option einbeziehen sollte --alldrivers.
@DavidAnderson, ja! Danke für den Hinweis
Sie sollten Ihre Antwort als richtig markieren. Dies wird anderen mit einem ähnlichen Problem helfen.

Normalerweise verlässt sich rEFInd auf die Mac-Firmware, um von Apple formatierte Partitionen zu lesen. Schließlich reicht diese Software unter Umständen nicht aus.

Sie können alle mit rEFInd bereitgestellten Treiber einbeziehen, indem Sie die --alldriversOption beim Ausführen des ./refind-installSkripts hinzufügen. In der Manpage refind-install steht jedoch Folgendes in Bezug auf diese Option.

--alldrivers

Wenn Sie diese Option angeben, kopiert refind-install alle Treiberdateien für Ihre Architektur. Möglicherweise möchten Sie unbenutzte Treiberdateien entfernen, nachdem Sie diese Option verwendet haben. Beachten Sie, dass einige Computer hängen bleiben oder mit Treibern nicht funktionieren, wenn Sie diese Option verwenden, verwenden Sie sie also mit Vorsicht.

Ich nehme an, einer der Treiber, die Sie behalten möchten, würde benannt werden hfs_x64.efi. Auf der Webseite The rEFInd Boot Manager: Using EFI Drivers wird Folgendes zu diesem Treiber angegeben.

  • HFS+ – Oracle hat diesen Treiber geschrieben, offenbar mit Code aus Open-Source-Apple-Beispielen. Es wurde dann von den Clover-Autoren weiter modifiziert. Ich gehe davon aus, dass dieser Treiber für die meisten rEFInd-Benutzer nur begrenzt attraktiv ist. Macs brauchen es nicht, da die EFI-Implementierung von Apple einen eigenen HFS+-Treiber bereitstellt und HFS+ normalerweise nicht auf UEFI-basierten PCs verwendet wird. Einige CDs werden sowohl mit ISO-9660 als auch mit HFS+ oder sogar nur mit HFS+ gemastert, und es ist denkbar, dass ein HFS+-Treiber beim Zugriff auf solche Discs nützlich wäre. Ein ungewöhnliches Merkmal dieses Treibers ist auch, dass er Dateien aus einem Apple LVM-Setup lesen kann, was Apples eigener EFI HFS+-Treiber nicht kann. Das Ergebnis dieser Funktion ist, dass, wenn Sie diesen Treiber auf einen Mac laden, der Apples LVM verwendet, rEFInd wahrscheinlich zwei OS X-Startoptionen anzeigt. Normalerweise ist das sinnlos, Es kann jedoch hilfreich sein, wenn Ihr Recovery HD-Volume beschädigt wird. Ich stelle den Treiber hauptsächlich deshalb zur Verfügung, weil er ohne zusätzliche Arbeit sauber kompiliert wurde, abgesehen von der Bereitstellung eines Makefile-Eintrags dafür.

APFS ist Apples neuester Versuch, ein LVM zu erstellen. Der obige Auszug bestätigt, dass der Treiber zusätzliche Startoptionen erkennen kann, wenn Apples LVM verwendet wird.

Danke auch für diese Info @DavidAnderson. Dies gibt definitiv Aufschluss darüber, warum der Container nach der Installation des Treibers gefunden wurde. Ich werde dies testen, indem ich den hfs_x64-Treiber als einzigen Treiber belasse und meine Ergebnisse berichte. EDIT: Gerade getestet und das ist genau der Fall. Danke! Ich werde fortfahren und meine Antwort auch bearbeiten.