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:
Dieser Beitrag gilt nicht für Macs, die Folgendes nicht haben:
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.
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:
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:
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:
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.
./refind-install
man bei der Eingabe die Option einbeziehen sollte --alldrivers
.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 --alldrivers
Option beim Ausführen des ./refind-install
Skripts 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.
Thorbjørn Ravn Andersen
David Anderson
christahfuh
christahfuh