Triple arranque macOS High Sierra, Ubuntu y Windows sin rEFInd

10

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

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

NOTAS

  • No quiero que Ubuntu esté configurado como mi sistema operativo predeterminado como alternativa. Solo quiero que aparezca en el menú de arranque.
  • No me importa si solo entra en GRUB. Mientras 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
kouwei32
fuente
¿Cuál es el año de tu MacBook Air? Lo que realmente quiero saber es cómo se instalan Windows, Ubuntu y rEFInd. ¿Se inicia alguna BIOS? ¿Dónde instaló rEFInd? Además, sería útil si incluyera la salida del diskutil listcomando. Su pregunta ya se ha hecho antes. Hay varias soluciones simples.
David Anderson
De hecho, hay varias soluciones, pero ninguna de ellas funciona para mí. El año del 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 reiniciar Windows partición de datos). Instalé rEFInd luego desde el sitio web oficial. diskutil listsalida: Pastebin
kouwei32
1
Probablemente debería haber leído esto primero: Instalar Ubuntu en Mac con macOS y Windows ya instalado . Actualmente estoy publicando una respuesta a su pregunta. Mi respuesta se basa algo en el enlace de arriba.
David Anderson
Reinicia tu Mac y ejecuta 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.
David Anderson el

Respuestas:

5

Segunda respuesta alternativa

Esta segunda respuesta difiere de mi primera respuesta en las siguientes formas.

  • 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 "EFI Boot".

Asumiré lo siguiente:

  • Debe instalar 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 se instala en la partición EFI.

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

Mac Startup Manager 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 +.

La primera forma

Nota: Aquí, rEFInd todavía se está utilizando, pero no como un reemplazo para el Administrador de inicio. Podrá usar una contraseña de firmware. De hecho, no se muestran menús rEFInd. El gestor de arranque rEFInd solo arranca silenciosamente grub (que arranca Ubuntu).

  1. Descargue rEFInd de este sitio web de SourceForge . Supongo que el archivo descargado se llama refind-bin-0.11.2.zipy este archivo se descargó a su ~/Downloadscarpeta.
  2. Crea 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 del volumen Ubuntu.

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

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

    Nota: Se Could not set boot device property: 0xe00002bcesperaba el mensaje de error y puede ignorarse.

  5. Configure la aplicación TextEdit. Abra TextEdit, luego navegue a la ventana "Preferencias ...". Desmarca todas las "Opciones", como se muestra a continuación. Cuando termine, 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
    

    Haga una copia de respaldo 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 silenciosamente grub (que internamente iniciará Ubuntu). Esto se puede lograr agregando las siguientes líneas al final del refind.confarchivo. Debería poder cortar y pegar estas líneas. Cuando termine, 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 nombrado 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. Crea 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 nombrado 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 nombrado 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 es necesario utilizar el gestor de arranque de terceros inmediatamente.

Contras: Si se actualiza grubx64.efio grub.cfg, debe copiar manualmente estos archivos al nuevo volumen con nombre Ubuntu.

Agregar un icono personalizado

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

os_ubuntu.png

  1. Descargue una colección de iconos del sitio web de sourceforge Mac icns .
  2. Use 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. Use la aplicación Finder para copiar el os_ubuntu.icnsarchivo de icono a la carpeta raíz del volumen nombrado 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. Use 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 nombrado 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 comando a continuación en una ventana de la aplicación Terminal. El 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 de volumen para el volumen llamado "Ubuntu" ingresando el comando a continuación.

     diskutil info Ubuntu | grep "Volume UUID"
    

    El resultado debe ser similar a lo que se muestra a continuación.

       Volume UUID:              795F14D2-ED1F-3CA0-A004-BD0A27000DC8
    
  3. Luego, 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. Use 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, avíseme.

David Anderson
fuente
1
¡Este me funciona perfectamente! ¡Gracias! Además, no es realmente bueno usar TextEdit para la edición de configuración, para eso marca el archivo de configuración como bloqueado. Solía sudo nano /Volumes/Ubuntu/System/Library/CoreServices/refind.confevitar este problema.
kouwei32
kouwei32: Es bueno cuando alguien puede verificar mis pasos. Agregué un comando para cambiar los permisos para poder usar la aplicación TextEdit. Y sí, nanoes un buen sustituto.
David Anderson
@DavidAnderson ¡Muchas gracias! Esto fue clave para que los tres sistemas operativos se iniciaran bien. Sin la segunda partición EFS, solo era posible arrancar en [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é este es el caso? Incluso con rEFInd, no hubo una única instancia en la que los 3 SO fueran arrancables ... hasta que agregué la segunda partición EFS y seguí los pasos de First Way.
igordcard
@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, mi respuesta puede no funcionar, 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 se inicie. No estoy seguro de lo que quiere decir con "ocultar la partición APFS principal".
David Anderson
@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 tienen que ser extraíbles.
David Anderson
1

Respuesta original

Mi segunda respuesta difiere de esta en las siguientes formas.

  • 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:

  • Debe instalar 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 se instala en la partición EFI.

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

Mac Startup Manager 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.

La primera forma

Nota: Aquí, rEFInd todavía se está utilizando, pero no como un reemplazo para el Administrador de inicio. Podrá usar una contraseña de firmware. De hecho, no se muestran menús rEFInd. El gestor de arranque rEFInd solo arranca silenciosamente grub (que arranca Ubuntu).

  1. Descargue rEFInd de este sitio web de SourceForge . Supongo que el archivo descargado se llama refund-bin-0.11.2.zipy este archivo se descargó a su ~/Downloadscarpeta.
  2. Crea 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 de este sitio web de SourceForge .
  4. Instale rEFInd en el volumen en 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 del volumen EFI2.

  6. Configure la aplicación TextEdit. Abra TextEdit, luego navegue a la ventana "Preferencias ...". Desmarca todas las "Opciones", como se muestra a continuación. Cuando termine, salga de TextEdit.

    y1

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

    cd  /Volumes/EFI2/EFI/BOOT
    

    Haga una copia de respaldo 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 silenciosamente grub (que internamente iniciará Ubuntu). Esto se puede lograr agregando las siguientes líneas al final del refind.confarchivo. Debería poder cortar y pegar estas líneas. Cuando termine, 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. Desmonta el nuevo volumen nombrado 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. Crea 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 nombrado 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 nombrado 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 es necesario utilizar el gestor de arranque de terceros inmediatamente.

Contras: Si se actualiza grubx64.efio grub.cfg, debe copiar manualmente estos archivos al nuevo volumen con nombre EFI2.

Agregar un icono personalizado

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

os_ubuntu.png

  1. Descargue una colección de iconos del sitio web de sourceforge Mac icns .
  2. Use 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. Use la aplicación Finder para copiar el os_ubuntu.icnsarchivo de icono a la carpeta raíz del volumen nombrado 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. Use 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 nombrado mac-icns.

Agregar una partición EFI

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

Mientras se inicia 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, avíseme.

David Anderson
fuente
Desafortunadamente, la primera solución no es la que quería, y la segunda no funciona en absoluto.
kouwei32
La segunda solución se basa en soluciones comprobadas que publiqué anteriormente. Muchos otros usuarios han utilizado con éxito esta solución. Mira aquí y aquí .
David Anderson
1
Quizás no di suficientes detalles. Por ejemplo, en su caso, deberá crear una nueva partición EFI. Esto no puede ser una partición formateada FAT32 normal. Esta debe ser una partición EFI donde está el GUID en el GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B.
David Anderson
Ya tengo una partición EFI. Probado 3 veces y sin resultado.
kouwei32
Puede tener tantas particiones EFI como necesite. En su caso, Windows ya está utilizando la carpeta EFI / boot en su partición EFI. Es por eso que necesita una segunda partición EFI.
David Anderson