Arranque triple macOS High Sierra, Ubuntu y Windows sin rEFInd

Actualmente tengo tres sistemas operativos instalados en mi MacBook Air 2017: macOS, Ubuntu y Windows 10. No podía iniciar Ubuntu sin rEFInd, pero prefiero el administrador de inicio predeterminado, porque quiero usar la contraseña del firmware (que rEFInd no tiene).

¿Hay alguna forma de que el administrador de arranque de macOS reconozca Ubuntu sin usar un administrador de arranque de terceros?

NOTAS:

  • No quiero que Ubuntu se configure como mi sistema operativo predeterminado como alternativa. Solo quiero que aparezca en el menú de arranque.
  • No me importa si solo entra en GRUB. Siempre que de alguna manera pueda cargar el núcleo, está bien.

La salida del comando diskutil list.

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         242.6 GB   disk0s2
   3:           Linux Filesystem                         49.9 GB    disk0s4
   4:       Microsoft Basic Data WinData                 75.1 GB    disk0s5
   5:       Microsoft Basic Data Windows                 125.1 GB   disk0s6

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +242.6 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            74.0 GB    disk1s1
   2:                APFS Volume Preboot                 25.1 MB    disk1s2
   3:                APFS Volume Recovery                506.6 MB   disk1s3
   4:                APFS Volume VM                      2.1 GB     disk1s4
¿Cuál es el año de su MacBook Air? Lo que realmente quiero saber es cómo se instalan Windows, Ubuntu y rEFInd. ¿Alguna BIOS arranca? ¿Dónde instaló rEFInd? Además, ayudaría si incluyera la salida del diskutil listcomando. Su pregunta se ha hecho antes. Hay varias soluciones simples.
De hecho, hay varias soluciones, pero ninguna de ellas funciona para mí. El año de la MacBook Air es 2017. Primero instalé Windows con bootcamp, reduje el volumen de macOS para hacer otro volumen de datos para Windows, instalé Ubuntu reduciendo la partición de macOS nuevamente (lo que rompió las cosas y tuve que reinstalar macOS y restablecer la configuración de Windows). partición de datos). Instalé rEFInd después desde el sitio web oficial. diskutil listsalida: Pastebin
Probablemente debería haber leído esto primero: Instalación de Ubuntu en Mac con macOS y Windows ya instalados . Actualmente estoy publicando una respuesta a su pregunta. Mi respuesta se basa un poco en el enlace de arriba.
Reinicie su Mac y ejecute el comando diskutil list. Reemplace la salida en su respuesta con esta nueva salida. Pregunto esto porque disk0s3falta en la salida que se muestra actualmente.

Respuestas (2)

Segunda respuesta alternativa

Esta segunda respuesta difiere de mi primera respuesta de las siguientes maneras.

  • La segunda partición EFI se reemplaza por una partición HFS+.

  • La etiqueta que se muestra en el Administrador de inicio será "Ubuntu" en lugar del genérico "Arranque EFI".

Asumiré lo siguiente:

  • Ha instalado Ubuntu para usar el método de arranque EFI.
  • Estás usando grub para arrancar Ubuntu
  • Grub arranca desde la partición EFI.
  • Solo hay una partición EFI.
  • La partición EFI es la primera partición en el disco.
  • Solo hay un disco involucrado y el disco es interno.
  • rEFInd está instalado en la partición EFI.

Voy a ofrecer dos formas de resolver su problema. Cada uno tiene sus pros y sus contras.

El Administrador de inicio de Mac mostrará un sistema operativo si coloca el archivo .efi en la ubicación correcta. Esta ubicación es la System/Library/CoreServicescarpeta del volumen en una partición HFS+. El nombre del archivo debe ser boot.efi. Además, puede personalizar el icono que se muestra para el sistema operativo colocando un .VolumeIcon.icnsarchivo en la carpeta raíz del volumen en la partición HFS+.

El Primer Camino.

Nota: Aquí, rEFInd todavía se usa, pero no como reemplazo del Administrador de inicio. Podrá utilizar una contraseña de firmware. De hecho, no se muestran los menús rEFInd. El administrador de arranque rEFInd simplemente inicia silenciosamente grub (que inicia Ubuntu).

  1. Descargue rEFInd desde este sitio web de SourceForge . Supongo que el archivo descargado tiene un nombre refind-bin-0.11.2.zipy este archivo se descargó en su ~/Downloadscarpeta.
  2. Cree una nueva partición HFS+. Las instrucciones se dan en la sección "Agregar una partición HFS+".
  3. Monte la nueva partición HFS+ ingresando el siguiente comando.

    sudo  diskutil  mount  disk0s3
    

    La nueva partición HFS+ tendrá el nombre de volumen Ubuntu.

  4. Instale rEFInd en el volumen de la nueva partición HFS+.

    cd  ~/Downloads/refind-bin-0.11.2
    ./refind-install  --ownhfs  /dev/disk0s3
    

    Nota: El mensaje de error Could not set boot device property: 0xe00002bcse esperaba y se puede ignorar.

  5. Configure la aplicación TextEdit. Abra TextEdit, luego vaya a la ventana "Preferencias...". Desmarque todas las "Opciones", como se muestra a continuación. Cuando haya terminado, salga de TextEdit.

    y1

  6. Use el siguiente comando para navegar a la carpeta que contiene el refind.confarchivo.

    cd  /Volumes/Ubuntu/System/Library/CoreServices
    

    Haz una copia de seguridad de este archivo.

    sudo  cp  refind.conf  refind.conf.orignal
    

    Agregue permisos de escritura a la CoreServicescarpeta y al refind.confarchivo.

    sudo  chmod  a+w  .  refind.conf
    

    Abra el archivo en la aplicación TextEdit.

    open  -e  refind.conf
    
  7. En este volumen, edite el System/Library/CoreServices/refind.confarchivo para iniciar grub de forma silenciosa (que iniciará internamente Ubuntu). Esto se puede lograr agregando las siguientes líneas al final del refind.confarchivo. Debería poder simplemente cortar y pegar estas líneas. Cuando haya terminado, guarde los cambios y salga de TextEdit.

    #
    # Added to make rEFInd silent. 
    #
    menuentry "Ubuntu" {
        icon \System\Library\CoreServices\icons\os_ubuntu.png
        volume "EFI"
        loader \EFI\ubuntu\grubx64.efi
        ostype Linux
        graphics on
    }
    timeout -1
    hideui all
    scanfor manual
    
  8. Desmonte el nuevo volumen llamado Ubuntu, ingresando los siguientes comandos.

    cd  ~
    diskutil  unmount  disk0s3
    

Pros: Ubuntu no se ve afectado, por lo que cualquier actualización de Ubuntu no requerirá atención.

Contras: debe usar el administrador de arranque de terceros rEFInd.

La Segunda Vía.

  1. Cree una nueva partición HFS+. Las instrucciones se dan en la sección "Agregar una partición HFS+".
  2. Monte la partición EFI original y la nueva partición HFS+ ingresando los siguientes comandos.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    La partición EFI original tendrá el nombre EFIy la nueva partición HFS+ tendrá el nombre Ubuntu.

  3. En el nuevo volumen denominado Ubuntu, cree las carpetas EFI/ubuntuy System/Library/CoreServices, ingresando los siguientes comandos.

    mkdir  -p  /Volumes/Ubuntu/EFI/ubuntu
    mkdir  -p  /Volumes/Ubuntu/System/Library/CoreServices
    
  4. Copie los archivos grub.cfgy grubx64.efial nuevo volumen llamado Ubuntu. Los comandos necesarios se dan a continuación.

    cp  /Volumes/EFI/EFI/ubuntu/grub.cfg  /Volumes/Ubuntu/EFI/ubuntu/grub.cfg
    cp  /Volumes/EFI/EFI/ubuntu/grubx64.efi  /Volumes/Ubuntu/System/Library/CoreServices/boot.efi
    
  5. Desmonte la partición EFI original y la nueva partición HFS+ ingresando los siguientes comandos.

    diskutil  unmount  disk0s1
    diskutil  unmount  disk0s3
    

Pros: no necesita usar el administrador de arranque de terceros rEFInd.

Contras: si el grubx64.efio grub.cfgestá actualizado, debe copiar manualmente estos archivos en un nuevo volumen llamado Ubuntu.

Agregar un icono personalizado

Los pasos a continuación agregarán el siguiente icono de Ubuntu al menú de inicio.

os_ubuntu.png

  1. Descargue una colección de iconos del sitio web de sourceforge Mac icns .
  2. Utilice la aplicación Finder para abrir el archivo descargado mac-icns.dmg. Supongo que este archivo se descargó en su ~/Downloadscarpeta.
  3. Monte el volumen nombrado Ubuntuingresando el siguiente comando.

    sudo  diskutil  mount  disk0s3
    
  4. Utilice la aplicación Finder para copiar el os_ubuntu.icnsarchivo de icono en la carpeta raíz del volumen denominado Ubuntu. Alternativamente, puede usar el comando que se muestra a continuación.

    sudo cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/Ubuntu/.
    
  5. Cambie el nombre del os_ubuntu.icnsarchivo de icono a .VolumeIcon.icns. Esto se puede lograr ingresando el siguiente comando.

    sudo mv  /Volumes/Ubuntu/os_ubuntu.icns  /Volumes/Ubuntu/.VolumeIcon.icns
    

    Nota: Los archivos que comienzan con un punto ( .) normalmente no aparecen en una ventana de la aplicación Finder.

  6. Utilice la aplicación Finder para expulsar la partición del sistema EFI con el nombre del volumen Ubuntu. Alternativamente, puede usar el comando que se muestra a continuación para desmontar el volumen.

    diskutil  unmount  disk0s3
    
  7. Use la aplicación Finder para expulsar el volumen llamado mac-icns.

Agregar una partición HFS+

Nota: A continuación se basa en el resultado diskutil listque proporcionó en su pregunta.

  1. Ingrese el siguiente comando en una ventana de la aplicación Terminal. Creará un volumen "Mac OS Extended" llamado "Ubuntu" en una nueva partición.

    sudo  diskutil  apfs  resizeContainer  disk0s2  242300M  HFS+  Ubuntu  200M
    
  2. Obtenga el UUID del volumen para el volumen llamado "Ubuntu" ingresando el siguiente comando.

     diskutil info Ubuntu | grep "Volume UUID"
    

    La salida debe ser similar a lo que se muestra a continuación.

       Volume UUID:              795F14D2-ED1F-3CA0-A004-BD0A27000DC8
    
  3. A continuación, evite que este nuevo nombre de volumen "Ubuntu" se monte automáticamente, ingresando los siguientes comandos. Sustituya su UUID por el que se muestra a continuación.

    sudo  bash
    echo  >> /etc/fstab
    echo  UUID=795F14D2-ED1F-3CA0-A004-BD0A27000DC8 none hfs rw,noauto >> /etc/fstab
    exit
    

    Nota: La forma correcta de editar el /etc/fstabarchivo es usar el comando sudo vifs. Usar el echocomando es solo un atajo rápido.

  4. Utilice la aplicación Finder para expulsar este nuevo volumen. Alternativamente, puede ingresar el comando que se muestra a continuación para desmontar este volumen.

    diskutil  unmount  Ubuntu
    

Si necesita que amplíe alguno de los pasos anteriores, hágamelo saber.

¡Este me funciona perfectamente! ¡Gracias! Además, no es realmente bueno usar TextEdit para editar la configuración, ya que marca el archivo de configuración como bloqueado. Solía sudo nano /Volumes/Ubuntu/System/Library/CoreServices/refind.conf​​pasar por alto este problema.
kouwei32: Es bueno cuando alguien puede verificar mis pasos. Agregué un comando para cambiar los permisos para que se pueda usar la aplicación TextEdit. Y sí, nanoes un buen sustituto.
@DavidAnderson ¡Muchas gracias! Esto fue clave para que los tres sistemas operativos arrancaran bien. Sin la segunda partición EFS, solo era posible iniciar [macOS o Ubuntu] O [Ubuntu o Windows, a través de GRUB], dependiendo de cómo se configuró el MBR híbrido y si elegí ocultar la partición APFS principal. ¿Sabes por qué es así? Incluso con rEFInd, no hubo una sola instancia en la que los 3 sistemas operativos fueran de arranque... hasta que agregué la segunda partición EFS y seguí los pasos de First Way.
@igordcard: Hice algunas correcciones después de leer tu comentario. Nota: desde que publiqué esta respuesta, Ubuntu ya no arranca de la misma manera. Por lo tanto, es posible que mi respuesta no funcione si está utilizando Ubuntu 18. Las Mac construidas en 2017 ya no contienen un BIOS, por lo tanto, no hay necesidad de un MBR híbrido. De hecho, un MBR híbrido evitaría que Windows arranque. No estoy seguro de lo que quiere decir con "ocultar la partición APFS principal".
@igordcard: Intel Macs están diseñados para arrancar OS X, macOS o Windows. Sin embargo, el firmware también permite iniciar un sistema operativo, si los archivos de inicio del sistema operativo se instalan utilizando las especificaciones de la sección 3.5.1.1 Removable Media Boot Behavioren la página 91 de la especificación de interfaz de firmware extensible unificada (UEFI) . Para Intel Macs, los medios deben ser extraíbles.
@DavidAnderson Mi escenario es MacBook Pro 2014, High Sierra APFS, EFI Ubuntu 18.04 y EFI Windows 10, y First Way funcionó a la perfección. Lo que quiero decir con ocultar APFS es en realidad algo que sucedió como un "desastre" y no como mi propia elección. Utilicé la propia Utilidad de disco de macOS para reducir la partición APFS a fin de dar espacio a la segunda partición EFS HFS+ (sin crear realmente la partición EFS). Cuando reinicié, me sorprendieron 2 cosas: macOS ya no era una opción de inicio y pude iniciar Windows nuevamente (a través de GRUB).
@DavidAnderson Más tarde descubrí que, de alguna manera, el ID del código de partición GPT de la partición APFS principal se había restablecido a todos los Fs. Lo restauré a la ID del código APFS y pude reiniciar macOS nuevamente sin pérdida de datos. También se me impidió iniciar Windows nuevamente. Entiendo por qué macOS no se puede iniciar cuando el código no está configurado correctamente, pero ¿cuál es la explicación técnica de que Windows no se inicia simplemente porque la partición de macOS está "visible"? Este fue el caso tanto con un MBR de protección simple como con un MBR híbrido que copiaba diferentes particiones. EFI Windows 10 instalado.

Respuesta Original

Mi segunda respuesta difiere de esta respuesta de las siguientes maneras.

  • En la segunda respuesta, la segunda partición EFI se reemplaza por una partición HFS+. Este tipo de partición es más fácil de crear y modificar.
  • En la segunda respuesta, la etiqueta que se muestra en el Administrador de inicio será "Ubuntu" en lugar del genérico "EFI Boot".

Asumiré lo siguiente:

  • Ha instalado Ubuntu para usar el método de arranque EFI.
  • Estás usando grub para arrancar Ubuntu
  • Grub arranca desde la partición EFI.
  • Solo hay una partición EFI.
  • La partición EFI es la primera partición en el disco.
  • Solo hay un disco involucrado y el disco es interno.
  • rEFInd está instalado en la partición EFI.

Le daré dos formas de resolver su problema. Cada uno tiene sus pros y sus contras.

El Administrador de inicio de Mac mostrará un sistema operativo si coloca el archivo .efi en la ubicación correcta. Esta ubicación es la EFI/bootcarpeta del volumen en una partición EFI. El nombre del archivo debe ser bootx64.efi. Además, puede personalizar el icono que se muestra para el sistema operativo colocando un .VolumeIcon.icnsarchivo en la carpeta raíz del volumen en la partición EFI.

El Primer Camino.

Nota: Aquí, rEFInd todavía se usa, pero no como reemplazo del Administrador de inicio. Podrá utilizar una contraseña de firmware. De hecho, no se muestran los menús rEFInd. El administrador de arranque rEFInd simplemente inicia silenciosamente grub (que inicia Ubuntu).

  1. Descargue rEFInd desde este sitio web de SourceForge . Supongo que el archivo descargado tiene un nombre refund-bin-0.11.2.zipy este archivo se descargó en su ~/Downloadscarpeta.
  2. Cree una nueva partición EFI. Las instrucciones se dan en la sección "Agregar una partición EFI".
  3. Descargue el software rEFInd Boot Manager desde este sitio web de SourceForge .
  4. Instale rEFInd en el volumen de la nueva partición EFI.

    cd  ~/Downloads/refind-bin-0.11.2
    ./refind-install  --usedefault  /dev/disk0s3
    
  5. Desmonte y monte la nueva partición EFI, ingresando los siguientes comandos.

    diskutil  unmount  disk0s3
    sudo  diskutil  mount  disk0s3
    

    La nueva partición EFI tendrá el nombre de volumen EFI2.

  6. Configure la aplicación TextEdit. Abra TextEdit, luego vaya a la ventana "Preferencias...". Desmarque todas las "Opciones", como se muestra a continuación. Cuando haya terminado, salga de TextEdit.

    y1

  7. Use el siguiente comando para navegar a la carpeta que contiene el refind.confarchivo.

    cd  /Volumes/EFI2/EFI/BOOT
    

    Haz una copia de seguridad de este archivo.

    cp  refind.conf  refind.conf.orignal
    

    Abra el archivo en la aplicación TextEdit.

    open  -e  refind.conf
    
  8. En este volumen, edite el EFI/BOOT/refind.confarchivo para iniciar grub de forma silenciosa (que iniciará internamente Ubuntu). Esto se puede lograr agregando las siguientes líneas al final del refind.confarchivo. Debería poder simplemente cortar y pegar estas líneas. Cuando haya terminado, guarde los cambios y salga de TextEdit.

    #
    # Added to make rEFInd silent. 
    #
    menuentry "Ubuntu" {
        icon \EFI\BOOT\icons\os_ubuntu.png
        volume "EFI"
        loader \EFI\ubuntu\grubx64.efi
        ostype Linux
        graphics on
    }
    timeout -1
    hideui all
    scanfor manual
    
  9. Desmonte el nuevo volumen llamado EFI2.

    diskutil  unmount  disk0s3
    

Pros: Ubuntu no se ve afectado, por lo que cualquier actualización de Ubuntu no requerirá atención.

Contras: debe usar el administrador de arranque de terceros rEFInd.

La Segunda Vía.

  1. Cree una nueva partición EFI. Las instrucciones se dan en la sección "Agregar una partición EFI".
  2. Monte las particiones EFI originales y nuevas, ingresando los siguientes comandos.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    La partición EFI original tendrá el nombre EFIy la nueva partición EFI tendrá el nombre EFI2.

  3. En el nuevo volumen denominado EFI2, cree las carpetas EFI/ubuntuy EFI/boot, ingresando los siguientes comandos.

    mkdir  -p  /Volumes/EFI2/EFI/ubuntu
    mkdir  -p  /Volumes/EFI2/EFI/boot
    
  4. Copie los archivos grub.cfgy grubx64.efial nuevo volumen llamado EFI2. Los comandos necesarios se dan a continuación.

    cp  /Volumes/EFI/EFI/ubuntu/grub.cfg  /Volumes/EFI2/EFI/ubuntu/grub.cfg
    cp  /Volumes/EFI/EFI/ubuntu/grubx64.efi  /Volumes/EFI2/EFI/boot/bootx64.efi
    

Pros: no necesita usar el administrador de arranque de terceros rEFInd.

Contras: si el grubx64.efio grub.cfgestá actualizado, debe copiar manualmente estos archivos en un nuevo volumen llamado EFI2.

Agregar un icono personalizado

Los pasos a continuación agregarán el siguiente icono de Ubuntu al menú de inicio.

os_ubuntu.png

  1. Descargue una colección de iconos del sitio web de sourceforge Mac icns .
  2. Utilice la aplicación Finder para abrir el archivo descargado mac-icns.dmg. Supongo que este archivo se descargó en su ~/Downloadscarpeta.
  3. Monte el volumen nombrado EFI2ingresando el siguiente comando.

    sudo  diskutil  mount  disk0s3
    
  4. Utilice la aplicación Finder para copiar el os_ubuntu.icnsarchivo de icono en la carpeta raíz del volumen denominado EFI2. Alternativamente, puede usar el comando que se muestra a continuación.

    cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/EFI2/.
    
  5. Cambie el nombre del os_ubuntu.icnsarchivo de icono a .VolumeIcon.icns. Esto se puede lograr ingresando el siguiente comando.

    mv  /Volumes/EFI2/os_ubuntu.icns  /Volumes/EFI2/.VolumeIcon.icns
    

    Nota: Los archivos que comienzan con un punto ( .) normalmente no aparecen en una ventana de la aplicación Finder.

  6. Utilice la aplicación Finder para expulsar la partición del sistema EFI con el nombre del volumen EFI2. Alternativamente, puede usar el comando que se muestra a continuación para desmontar el volumen.

    diskutil  unmount  disk0s3
    
  7. Use la aplicación Finder para expulsar el volumen llamado mac-icns.

Agregar una partición EFI

Nota: A continuación se basa en el resultado diskutil listque proporcionó en su pregunta.

Mientras arranca en macOS, ingrese los siguientes comandos en una ventana de la aplicación Terminal.

sudo  diskutil  apfs  resizecontainer  disk0s2  242300M  %EFI%  n  200M
sudo  newfs_msdos  -F  32  -v  EFI2  /dev/disk0s3

Si necesita que amplíe alguno de los pasos anteriores, hágamelo saber.

Desafortunadamente, la primera solución no es la que quería y la segunda no funciona en absoluto.
La segunda solución se basa en soluciones probadas que publiqué anteriormente. Muchos otros usuarios han utilizado con éxito esta solución. Ver aquí y aquí .
Tal vez no di suficientes detalles. Por ejemplo, en su caso, deberá crear una nueva partición EFI. Esta no puede ser una partición con formato FAT32 normal. Esta debe ser una partición EFI donde está el GUID en el GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B.
Ya tengo una partición EFI. Intenté 3 veces y sin éxito.
Puede tener tantas particiones EFI como necesite. En su caso, Windows ya está usando la carpeta EFI/boot en su partición EFI. Es por eso que necesita una segunda partición EFI.
Actualicé mi respuesta e incluí una sección para agregar una nueva partición EFI. Supongo que todavía puedes arrancar Ubuntu. Si no, puedo dar los comandos de Linux como comandos de macOS, pero esto requiere más pasos.
kouwei32: Debe presentar más detalles sobre los problemas que está encontrando. Tengo dificultades para saber qué cambios hacer en mi respuesta sin estos detalles.
El problema con el que me encuentro es que NADA sucede cuando hago su método EFI (antiguo). Ubuntu simplemente no se muestra en el menú. Voy a probar el nuevo método de partición EFI más tarde. :)
Supongo que es posible que las computadoras MacBook Air no tengan la misma capacidad que los modelos iMac, MBP, Mac mini y Mac Pro. Existe otro método utilizado por Fedora Linux para arrancar desde una partición formateada con HFS+. Tendría que probar para ver si esto es compatible con Ubuntu. ¿Sabes el nombre del archivo iso de Ubuntu que descargaste? ¿O al menos la versión de Ubuntu que está ejecutando? Supongo que instaló un procesador modelo x64.