Avvio triplo macOS High Sierra, Ubuntu e Windows senza rEFInd


10

Al momento ho tre sistemi operativi installati sul mio MacBook Air 2017: macOS, Ubuntu e Windows 10. Non sono riuscito ad avviare Ubuntu senza rEFInd, ma preferisco fortemente il boot manager predefinito, perché voglio usare la password del firmware (che rEFInd non ha).

Esiste un modo per il boot manager di macOS di riconoscere Ubuntu senza usare un boot manager di terze parti?

APPUNTI:

  • Non voglio Ubuntu impostato come mio sistema operativo predefinito come alternativa. Voglio solo che appaia nel menu di avvio.
  • Non mi importa se va solo in GRUB. Finché in qualche modo può caricare il kernel, va bene.

L'output 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

Qual è l'anno del tuo MacBook Air? Quello che voglio davvero sapere è come sono installati Windows, Ubuntu e rEFInd. Avvio del BIOS? Dove hai installato rEFInd? Inoltre, sarebbe utile se includessi l'output dal diskutil listcomando. La tua domanda è stata posta prima. Esistono diverse soluzioni semplici.
David Anderson,

Esistono, in effetti, diverse soluzioni, ma nessuna di esse funziona per me. L'anno di MacBook Air è il 2017. Ho installato Windows per la prima volta con bootcamp, ho ridotto il volume di macOS per creare un altro volume di dati per Windows, ho installato Ubuntu riducendo di nuovo la partizione di macOS (che ha rotto le cose e ho dovuto reinstallare macOS e ripristinare Windows partizione dati). Successivamente ho installato rEFInd dal sito Web ufficiale. diskutil listuscita: Pastebin
kouwei32

1
Probabilmente avresti dovuto leggere prima questo: Installazione di Ubuntu su Mac con macOS e Windows già installati . Attualmente sto pubblicando una risposta alla tua domanda. La mia risposta si basa in qualche modo sul link sopra.
David Anderson,

Riavvia il Mac ed esegui il comando diskutil list. Sostituisci l'output nella tua risposta con questo nuovo output. Lo chiedo perché disk0s3manca nell'output attualmente visualizzato.
David Anderson,

Risposte:


5

Seconda risposta alternativa

Questa seconda risposta differisce dalla mia prima risposta nei seguenti modi.

  • La seconda partizione EFI è sostituita da una partizione HFS +.

  • L'etichetta visualizzata in Startup Manager sarà "Ubuntu" invece del generico "EFI Boot".

Supporrò quanto segue:

  • Ubuntu è stato installato per utilizzare il metodo di avvio EFI.
  • Stai usando grub per avviare Ubuntu
  • Grub si avvia dalla partizione EFI.
  • Esiste solo una partizione EFI.
  • La partizione EFI è la prima partizione sul disco.
  • C'è solo un disco coinvolto e il disco è interno.
  • rEFInd è installato nella partizione EFI.

Offrirò due modi per risolvere il tuo problema. Ognuno ha i suoi pro e contro.

Mac Startup Manager visualizzerà un sistema operativo se si posiziona il file .efi nella posizione corretta. Questa posizione è la System/Library/CoreServicescartella del volume in una partizione HFS +. Il nome del file deve essere boot.efi. Inoltre, è possibile personalizzare l'icona visualizzata per il sistema operativo posizionando un .VolumeIcon.icnsfile nella cartella principale del volume nella partizione HFS +.

Il primo modo.

Nota: qui, rEFInd è ancora in uso, ma non in sostituzione di Startup Manager. Sarai in grado di utilizzare una password del firmware. In effetti, non vengono visualizzati menu di ricerca. Il boot manager rEFInd avvia silenziosamente grub (che avvia Ubuntu).

  1. Scarica rEFInd da questo sito Web SourceForge . Presumo che il file scaricato sia denominato refind-bin-0.11.2.zipe questo file sia stato scaricato nella tua ~/Downloadscartella.
  2. Crea una nuova partizione HFS +. Le istruzioni sono fornite nella sezione "Aggiunta di una partizione HFS +".
  3. Montare la nuova partizione HFS +, immettendo il seguente comando.

    sudo  diskutil  mount  disk0s3
    

    La nuova partizione HFS + avrà il nome del volume Ubuntu.

  4. Installa rEFInd nel volume sulla nuova partizione HFS +.

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

    Nota: il messaggio di errore Could not set boot device property: 0xe00002bcera previsto e può essere ignorato.

  5. Configura l'applicazione TextEdit. Apri TextEdit, quindi vai alla finestra "Preferenze ...". Deseleziona tutte le "Opzioni", come mostrato di seguito. Al termine, chiudere TextEdit.

    Y1

  6. Utilizzare il comando seguente per accedere alla cartella contenente il refind.conffile.

    cd  /Volumes/Ubuntu/System/Library/CoreServices
    

    Crea una copia di backup di questo file.

    sudo  cp  refind.conf  refind.conf.orignal
    

    Aggiungi le autorizzazioni di scrittura alla CoreServicescartella e al refind.conffile.

    sudo  chmod  a+w  .  refind.conf
    

    Apri il file nell'applicazione TextEdit.

    open  -e  refind.conf
    
  7. In questo volume, modifica il System/Library/CoreServices/refind.conffile per avviare silenziosamente grub (che eseguirà l'avvio di Ubuntu). Ciò può essere ottenuto aggiungendo le seguenti righe alla fine del refind.conffile. Dovresti essere in grado di tagliare e incollare queste righe. Al termine, salvare le modifiche, quindi chiudere 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. Smonta il nuovo volume denominato Ubuntu, immettendo i seguenti comandi.

    cd  ~
    diskutil  unmount  disk0s3
    

Pro: Ubuntu non è interessato, quindi eventuali aggiornamenti di Ubuntu non richiedono attenzione.

Contro: è necessario utilizzare rEFInd del boot manager di terze parti.

Il secondo modo.

  1. Crea una nuova partizione HFS +. Le istruzioni sono fornite nella sezione "Aggiunta di una partizione HFS +".
  2. Montare la partizione EFI originale e la nuova partizione HFS +, immettendo i seguenti comandi.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    La partizione EFI originale avrà il nome EFIe la nuova partizione HFS + avrà il nome Ubuntu.

  3. Nel nuovo volume denominato Ubuntu, creare le cartelle EFI/ubuntue System/Library/CoreServices, immettendo i seguenti comandi.

    mkdir  -p  /Volumes/Ubuntu/EFI/ubuntu
    mkdir  -p  /Volumes/Ubuntu/System/Library/CoreServices
    
  4. Copia i file grub.cfge grubx64.efinel nuovo volume denominato Ubuntu. I comandi necessari sono indicati di seguito.

    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. Smonta la partizione EFI originale e la nuova partizione HFS +, inserendo i seguenti comandi.

    diskutil  unmount  disk0s1
    diskutil  unmount  disk0s3
    

Pro: Non è necessario utilizzare rEFInd del boot manager di terze parti.

Contro: se grubx64.efio grub.cfgviene aggiornato, è necessario copiare manualmente questi file nel nuovo volume denominato Ubuntu.

Aggiunta di un'icona personalizzata

I passaggi seguenti aggiungeranno la seguente icona di Ubuntu al menu di avvio.

os_ubuntu.png

  1. Scarica una raccolta di icone dal sito Web sourceforge Mac icns .
  2. Utilizzare l'applicazione Finder per aprire il file scaricato mac-icns.dmg. Presumo che questo file sia stato scaricato nella tua ~/Downloadscartella.
  3. Montare il volume denominato Ubuntuimmettendo il comando seguente.

    sudo  diskutil  mount  disk0s3
    
  4. Utilizzare l'applicazione Finder per copiare il os_ubuntu.icnsfile icona nella cartella principale del volume denominato Ubuntu. In alternativa, è possibile utilizzare il comando mostrato di seguito.

    sudo cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/Ubuntu/.
    
  5. Rinominare il os_ubuntu.icnsfile icona in .VolumeIcon.icns. Questo può essere realizzato inserendo il seguente comando.

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

    Nota: i file che iniziano con un punto ( .) normalmente non vengono visualizzati in una finestra dell'applicazione Finder.

  6. Utilizzare l'applicazione Finder per espellere la partizione di sistema EFI con il nome del volume Ubuntu. In alternativa, è possibile utilizzare il comando mostrato di seguito per smontare il volume.

    diskutil  unmount  disk0s3
    
  7. Utilizzare l'applicazione Finder per espellere il volume denominato mac-icns.

Aggiunta di una partizione HFS +

Nota: di seguito si basa sull'output diskutil listfornito dalla domanda.

  1. Immettere il comando seguente in una finestra dell'applicazione Terminale. Verrà creato un volume "Mac OS Extended" chiamato "Ubuntu" in una nuova partizione.

    sudo  diskutil  apfs  resizeContainer  disk0s2  242300M  HFS+  Ubuntu  200M
    
  2. Ottieni il volume UUID per il volume chiamato "Ubuntu" immettendo il comando seguente.

     diskutil info Ubuntu | grep "Volume UUID"
    

    L'output dovrebbe essere simile a quello mostrato di seguito.

       Volume UUID:              795F14D2-ED1F-3CA0-A004-BD0A27000DC8
    
  3. Quindi, impedire che questo nuovo nome di volume "Ubuntu" si monti automaticamente, inserendo i seguenti comandi. Sostituisci il tuo UUID con quello mostrato di seguito.

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

    Nota: il modo corretto, per modificare il /etc/fstabfile, è utilizzare il comando sudo vifs. L'uso del echocomando è solo una scorciatoia rapida.

  4. Utilizzare l'applicazione Finder per espellere questo nuovo volume. In alternativa, è possibile immettere il comando mostrato di seguito per smontare questo volume.

    diskutil  unmount  Ubuntu
    

Se hai bisogno che io mi espanda in uno dei passaggi precedenti, fammi sapere.


1
Questo funziona perfettamente per me! Grazie! Inoltre, non è davvero buono usare TextEdit per la modifica della configurazione, poiché contrassegna il file di configurazione come bloccato. Ho usato sudo nano /Volumes/Ubuntu/System/Library/CoreServices/refind.confper aggirare questo problema.
kouwei32,

kouwei32: È buono quando qualcuno può verificare i miei passi. Ho aggiunto un comando per modificare le autorizzazioni in modo da poter utilizzare l'applicazione TextEdit. E sì, nanoè un buon sostituto.
David Anderson,

@DavidAnderson Grazie mille! Questa è stata la chiave per l'avvio di tutti e tre i SO. Senza la seconda partizione EFS, era possibile avviare solo [macOS o Ubuntu] OPPURE [Ubuntu o Windows, tramite GRUB], a seconda di come è stato impostato l'MBR ibrido e se ho scelto di nascondere la partizione APFS principale. Sai perché è così? Anche con rEFInd, non esisteva un'unica istanza in cui i 3 sistemi operativi fossero avviabili ... fino a quando non ho aggiunto la seconda partizione EFS e seguito i passaggi in First Way.
igordcard,

@igordcard: ho apportato alcune correzioni dopo aver letto il tuo commento. Nota: da quando ho pubblicato questa risposta, Ubuntu non si avvia più allo stesso modo. Pertanto, la mia risposta potrebbe non funzionare se si utilizza Ubuntu 18. I Mac costruiti nel 2017 non contengono più un BIOS, quindi non è necessario un MBR ibrido. In effetti, un MBR ibrido impedirebbe l'avvio di Windows. Non sono sicuro di cosa intendi per "nascondi la partizione APFS principale".
David Anderson,

@igordcard: i Mac Intel sono progettati per avviare OS X, macOS o Windows. Tuttavia, il firmware consente anche l'avvio di un sistema operativo, se i file di avvio del sistema operativo sono installati utilizzando le specifiche nella sezione 3.5.1.1 Removable Media Boot Behaviora pagina 91 della specifica UEFI (Unified Extensible Firmware Interface) . Per i Mac Intel, il supporto deve essere rimovibile.
David Anderson,

1

Risposta originale

La mia seconda risposta differisce da questa risposta nei seguenti modi.

  • Nella seconda risposta, la seconda partizione EFI è sostituita da una partizione HFS +. Questo tipo di partizione è più facile da creare e modificare.
  • Nella seconda risposta, l'etichetta visualizzata in Startup Manager sarà "Ubuntu" anziché il generico "EFI Boot".

Supporrò quanto segue:

  • Ubuntu è stato installato per utilizzare il metodo di avvio EFI.
  • Stai usando grub per avviare Ubuntu
  • Grub si avvia dalla partizione EFI.
  • Esiste solo una partizione EFI.
  • La partizione EFI è la prima partizione sul disco.
  • C'è solo un disco coinvolto e il disco è interno.
  • rEFInd è installato nella partizione EFI.

Darò due modi per risolvere il tuo problema. Ognuno ha i suoi pro e contro.

Mac Startup Manager visualizzerà un sistema operativo se si posiziona il file .efi nella posizione corretta. Questa posizione è la EFI/bootcartella del volume in una partizione EFI. Il nome del file deve essere bootx64.efi. Inoltre, è possibile personalizzare l'icona visualizzata per il sistema operativo posizionando un .VolumeIcon.icnsfile nella cartella principale del volume nella partizione EFI.

Il primo modo.

Nota: qui, rEFInd è ancora in uso, ma non in sostituzione di Startup Manager. Sarai in grado di utilizzare una password del firmware. In effetti, non vengono visualizzati menu di ricerca. Il boot manager rEFInd avvia silenziosamente grub (che avvia Ubuntu).

  1. Scarica rEFInd da questo sito Web SourceForge . Presumo che il file scaricato sia denominato refund-bin-0.11.2.zipe questo file sia stato scaricato nella tua ~/Downloadscartella.
  2. Crea una nuova partizione EFI. Le istruzioni sono fornite nella sezione "Aggiunta di una partizione EFI".
  3. Scarica il software rEFInd Boot Manager da questo sito Web SourceForge .
  4. Installa rEFInd nel volume sulla nuova partizione EFI.

    cd  ~/Downloads/refind-bin-0.11.2
    ./refind-install  --usedefault  /dev/disk0s3
    
  5. Smonta e monta la nuova partizione EFI, inserendo i seguenti comandi.

    diskutil  unmount  disk0s3
    sudo  diskutil  mount  disk0s3
    

    La nuova partizione EFI avrà il nome del volume EFI2.

  6. Configura l'applicazione TextEdit. Apri TextEdit, quindi vai alla finestra "Preferenze ...". Deseleziona tutte le "Opzioni", come mostrato di seguito. Al termine, chiudere TextEdit.

    Y1

  7. Utilizzare il comando seguente per accedere alla cartella contenente il refind.conffile.

    cd  /Volumes/EFI2/EFI/BOOT
    

    Crea una copia di backup di questo file.

    cp  refind.conf  refind.conf.orignal
    

    Apri il file nell'applicazione TextEdit.

    open  -e  refind.conf
    
  8. In questo volume, modifica il EFI/BOOT/refind.conffile per avviare silenziosamente grub (che eseguirà l'avvio di Ubuntu). Ciò può essere ottenuto aggiungendo le seguenti righe alla fine del refind.conffile. Dovresti essere in grado di tagliare e incollare queste righe. Al termine, salvare le modifiche, quindi chiudere 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. Smonta il nuovo volume denominato EFI2.

    diskutil  unmount  disk0s3
    

Pro: Ubuntu non è interessato, quindi eventuali aggiornamenti di Ubuntu non richiedono attenzione.

Contro: è necessario utilizzare rEFInd del boot manager di terze parti.

Il secondo modo.

  1. Crea una nuova partizione EFI. Le istruzioni sono fornite nella sezione "Aggiunta di una partizione EFI".
  2. Montare le partizioni EFI originali e nuove immettendo i seguenti comandi.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    La partizione EFI originale avrà il nome EFIe la nuova partizione EFI avrà il nome EFI2.

  3. Nel nuovo volume denominato EFI2, creare le cartelle EFI/ubuntue EFI/boot, immettendo i seguenti comandi.

    mkdir  -p  /Volumes/EFI2/EFI/ubuntu
    mkdir  -p  /Volumes/EFI2/EFI/boot
    
  4. Copia i file grub.cfge grubx64.efinel nuovo volume denominato EFI2. I comandi necessari sono indicati di seguito.

    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
    

Pro: Non è necessario utilizzare rEFInd del boot manager di terze parti.

Contro: se grubx64.efio grub.cfgviene aggiornato, è necessario copiare manualmente questi file nel nuovo volume denominato EFI2.

Aggiunta di un'icona personalizzata

I passaggi seguenti aggiungeranno la seguente icona di Ubuntu al menu di avvio.

os_ubuntu.png

  1. Scarica una raccolta di icone dal sito Web sourceforge Mac icns .
  2. Utilizzare l'applicazione Finder per aprire il file scaricato mac-icns.dmg. Presumo che questo file sia stato scaricato nella tua ~/Downloadscartella.
  3. Montare il volume denominato EFI2immettendo il comando seguente.

    sudo  diskutil  mount  disk0s3
    
  4. Utilizzare l'applicazione Finder per copiare il os_ubuntu.icnsfile icona nella cartella principale del volume denominato EFI2. In alternativa, è possibile utilizzare il comando mostrato di seguito.

    cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/EFI2/.
    
  5. Rinominare il os_ubuntu.icnsfile icona in .VolumeIcon.icns. Questo può essere realizzato inserendo il seguente comando.

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

    Nota: i file che iniziano con un punto ( .) normalmente non vengono visualizzati in una finestra dell'applicazione Finder.

  6. Utilizzare l'applicazione Finder per espellere la partizione di sistema EFI con il nome del volume EFI2. In alternativa, è possibile utilizzare il comando mostrato di seguito per smontare il volume.

    diskutil  unmount  disk0s3
    
  7. Utilizzare l'applicazione Finder per espellere il volume denominato mac-icns.

Aggiunta di una partizione EFI

Nota: di seguito si basa sull'output diskutil listfornito dalla domanda.

Durante l'avvio su macOS, immettere i comandi seguenti in una finestra dell'applicazione Terminale.

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

Se hai bisogno che io mi espanda in uno dei passaggi precedenti, fammi sapere.


Sfortunatamente, la prima soluzione non è quella che volevo e la seconda non funziona affatto.
kouwei32,

La seconda soluzione si basa su soluzioni comprovate che ho pubblicato in precedenza. Molti altri utenti hanno utilizzato con successo questa soluzione. Vedi qui e qui .
David Anderson,

1
Forse non ho dato abbastanza dettagli. Ad esempio, nel tuo caso, dovrai creare una nuova partizione EFI. Questa non può essere una normale partizione formattata FAT32. Questa deve essere una partizione EFI in cui si trova il GUID nel GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B.
David Anderson,

Ho già una partizione EFI. Ho provato 3 volte e senza alcun risultato.
kouwei32,

Puoi avere tutte le partizioni EFI di cui hai bisogno. Nel tuo caso, Windows sta già utilizzando la cartella EFI / boot nella partizione EFI. Ecco perché è necessaria una seconda partizione EFI.
David Anderson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.