¿Por qué Refind falla al actualizar de Mac OS High Sierra (HFS) a Mojave (APFS) en NVMexpress Mac?

Problema: NVMExpress Macs que tienen Refind no ven el contenedor APFS y no puedo arrancar en mi mac.

Además, pido disculpas a quienes conocían esta solución, pero enfrenté este problema junto con varios otros técnicos y no pudimos resolverlo hasta ahora.

Responderé mi propia pregunta a continuación, pero esta publicación se aplica a los usuarios que hacen lo siguiente con su Mac:

  • Han deshabilitado SIPS en su dispositivo
  • Intentando usar refind con Mac OS Mojave
  • Actualización de High Sierra HFS a Mojave APFS
  • Usando refind versión 10.4 o 11.4

Esta publicación no se aplicará a macs que no tengan:

  • Un controlador NVMExpress. Ejemplos de Mac que lo tienen son los modelos de Mac 18,2 y 18,3.

Si instala refind usando el instalador de unix en una máquina NVMExpress, no instalará automáticamente la carpeta de controladores adecuada que le permitirá admitir APFS, lo que le permitirá asumir que refind tiene errores. Refind termina sin poder ver los volúmenes Preboot o Macintosh HD del contenedor APFS en el menú de refind para iniciar en su sistema Mac OS Mojave.

Si probó esto en una máquina que no es NVMExpress y tenía High Sierra APFS, solo vería el volumen Macintosh HD, que valida que la búsqueda funciona. Esto también es cierto si tenía Mojave en una máquina que no fuera NVMexpress, ya que la versión 11 de refind se recuperaría fácilmente tanto en Preboot como en Macintosh HD Volumes.

Entonces, ¿su instalación de refind es demasiado antigua?
¿Está utilizando encriptación?
@ThorbjørnRavnAndersen No, en realidad, podría usar la versión 10.4 e instalar el controlador hfs_x64.efi y permitirá volver a encontrar la opción de arranque. La única diferencia es que volver a encontrar no verá la partición de prearranque y solo el volumen macintosh HD. Comience desde refind v11.1, fue diseñado para ver la partición de prearranque.
@DavidAnderson No, no hay cifrado.

Respuestas (2)

Solución:

EDITAR: Gracias a @DavidAnderson por señalar que el archivo del controlador "hfs_x64.efi" es lo que hace que la Mac pueda ver el contenedor de arranque en la mac. Por favor, vea su respuesta para una mejor explicación.

La solución es muy breve e implica instalar la carpeta "driver_x64" incluida con la descarga de refind en refind-bin_X/refind/drivers_x64.

Simplemente arrastre y suelte esta carpeta "drivers_x64" en el directorio EFI/EFI/refind después de montar el EFI. Su carpeta de búsqueda de EFI debería tener este aspecto:

ingrese la descripción de la imagen aquí

A continuación hay algunos comandos útiles que me ayudaron.

Cómo comprobar qué modelo de Mac tengo

Puede ingresar lo siguiente en la terminal para ver su número de modelo:

system_profiler SPHardwareDataType | grep "Model Identifier:"

Cómo verificar si mi Mac tiene NVMExpress

Lo más probable es que los Mac más nuevos tengan el controlador SSD NVMExpress. Pero si tiene curiosidad por saber qué tipo de conexión está utilizando, puede ingresar los siguientes comandos, por separado.

Si su dispositivo es SATA, devolverá la información sobre su disco duro SATA y la conexión.

Si su dispositivo es NVMExpress, devolverá información sobre su disco duro NVMExpress y la conexión. Por supuesto, si su dispositivo no es NVMexpress, no devolverá nada.

system_profiler SPNVMeDataType
system_profiler SPSerialATADataType

Ejemplo:

ingrese la descripción de la imagen aquí

Tenga en cuenta que la versión de Refind afectará los volúmenes desde los que podrá iniciar. Probé esto en Refind versión 10.4 y 11.4.

De mis pruebas, descubrí que con 10.4 solo podrá ver el volumen "Macintosh HD".

Cualquier versión posterior a la 11.1 incluida está diseñada para ver el Volumen de prearranque que viene instalado con la actualización a Mac Os Mojave. Para obtener más información sobre las revisiones de Refind, puede ir aquí:

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

Me parece extraño que dentro de la carpeta del controlador no haya una mención explícita de un controlador "apfs.efi". Probablemente planee llevar esto al desarrollador. Pero todavía parece solucionar este problema. Vea a continuación lo que quiero decir:

ingrese la descripción de la imagen aquí

¡Espero que esto ayude! Esto me estuvo rompiendo la cabeza durante más de una semana hasta que se me ocurrió esta solución simple. Espero que te ayude a ti también.

Básicamente, estás diciendo que al ingresar ./refind-install, uno debe incluir la --alldriversopción.
@DavidAnderson, ¡sí! Gracias por señalar eso
Debes marcar tu respuesta como correcta. Esto ayudará a otros con un problema similar.

Normalmente, rEFInd se basa en el firmware de Mac para leer particiones formateadas por Apple. Eventualmente, este software no es suficiente en ciertas circunstancias.

Puede incluir todos los controladores provistos con rEFInd agregando la --alldriversopción al ejecutar el ./refind-installscript. Sin embargo, la página de manual de refind-install establece lo siguiente con respecto a esta opción.

--todos los conductores

Cuando especifica esta opción, volver a instalar copia todos los archivos del controlador para su arquitectura. Es posible que desee eliminar los archivos de controlador no utilizados después de usar esta opción. Tenga en cuenta que algunas computadoras se bloquean o no funcionan con ningún controlador si usa esta opción, así que utilícela con precaución.

Supongo que uno de los controladores que desea conservar se llamaría hfs_x64.efi. La página web The rEFInd Boot Manager: Uso de controladores EFI indica lo siguiente sobre este controlador.

  • HFS+: Oracle escribió este controlador, aparentemente con algún código tomado de ejemplos de código abierto de Apple. Luego fue modificado por los autores de Clover. Espero que este controlador tenga un atractivo limitado para la mayoría de los usuarios de rEFInd. Las Mac no lo necesitan, ya que la implementación de EFI de Apple proporciona su propio controlador HFS+, y HFS+ normalmente no se usa en las PC basadas en UEFI. Algunos CD están masterizados con ISO-9660 y HFS+, o incluso con HFS+ solo, y es concebible que un controlador HFS+ sea útil para acceder a dichos discos. Además, una característica inusual de este controlador es que puede leer archivos desde una configuración LVM de Apple, lo que no puede hacer el propio controlador EFI HFS+ de Apple. El resultado de esta característica es que si carga este controlador en una Mac que usa LVM de Apple, es probable que rEFInd muestre dos opciones de arranque de OS X. Normalmente esto no tiene sentido, pero podría ser útil si su volumen Recovery HD se daña. Proporciono el controlador principalmente porque se compiló limpiamente sin trabajo adicional, además de proporcionarle una entrada Makefile.

APFS es el último intento de Apple de crear un LVM. El extracto anterior confirma que el controlador puede detectar opciones de arranque adicionales al usar el LVM de Apple.

Gracias por esta información también @DavidAnderson. Esto definitivamente arroja luz sobre por qué se encontró el contenedor después de instalar el controlador. Probaré esto dejando el controlador hfs_x64 como el único controlador e informaré mis hallazgos. EDITAR: Acabo de probar esto y este es exactamente el caso. ¡Gracias! Seguiré adelante y editaré mi respuesta también.