MacOS z potrójnym uruchomieniem High Sierra, Ubuntu i Windows bez rEFInd

10

Obecnie mam trzy systemy operacyjne zainstalowane na moim MacBooku Air 2017: macOS, Ubuntu i Windows 10. Nie mogłem uruchomić się na Ubuntu bez rEFInd, ale zdecydowanie wolę domyślny menedżer rozruchu, ponieważ chcę użyć hasła oprogramowania układowego (który to rEFInd nie ma).

Czy istnieje jakiś sposób, aby menedżer rozruchu systemu macOS rozpoznał Ubuntu bez korzystania z menedżera rozruchu innej firmy?

UWAGI:

  • Nie chcę, aby Ubuntu było ustawione jako mój domyślny system operacyjny jako alternatywa. Chcę tylko, żeby pojawił się w menu startowym.
  • Nie mam nic przeciwko, jeśli wejdzie w GRUB. Tak długo, jak w jakiś sposób może załadować jądro, jest w porządku.

Dane wyjściowe polecenia 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
źródło
Jaki jest rok Twojego MacBooka Air? Naprawdę chcę wiedzieć, w jaki sposób jest zainstalowany system Windows, Ubuntu i rEFInd. Czy uruchamia się BIOS? Gdzie zainstalowałeś REFInd? Pomoże to również, jeśli podasz wynik diskutil listpolecenia. Twoje pytanie zostało już zadane. Istnieje kilka prostych rozwiązań.
David Anderson
Rzeczywiście istnieje kilka rozwiązań, ale żadne z nich nie działa dla mnie. Rok MacBooka Air to 2017. Najpierw zainstalowałem Windows z bootcampem, zmniejszyłem wolumin macOS, aby utworzyć kolejny wolumin danych dla Windows, zainstalowałem Ubuntu, ponownie zmniejszając partycję macOS (co zepsuło się i musiałem ponownie zainstalować macOS i zresetować Windows partycja danych). Następnie zainstalowałem REFInd z oficjalnej strony internetowej. diskutil listwyjście: Pastebin
kouwei32
1
Najprawdopodobniej powinieneś przeczytać to najpierw: Instalowanie Ubuntu na Macu z zainstalowanym systemem macOS i Windows . Obecnie publikuję odpowiedź na twoje pytanie. Moja odpowiedź opiera się w pewnym stopniu na powyższym linku.
David Anderson
Uruchom ponownie komputer Mac i wykonaj polecenie diskutil list. Zamień dane wyjściowe w odpowiedzi na nowe dane wyjściowe. Pytam o to, ponieważ disk0s3brakuje w obecnie wyświetlanym wyniku.
David Anderson

Odpowiedzi:

5

Alternatywna druga odpowiedź

Ta druga odpowiedź różni się od mojej pierwszej odpowiedzi następującymi sposobami.

  • Druga partycja EFI zostaje zastąpiona partycją HFS +.

  • Etykieta wyświetlana w Menedżerze uruchamiania będzie „Ubuntu” zamiast ogólnego „rozruchu EFI”.

Zakładam, że:

  • Zainstalowałeś Ubuntu, aby korzystać z metody rozruchu EFI.
  • Używasz gruba do uruchomienia Ubuntu
  • Grube buty z partycji EFI.
  • Istnieje tylko jedna partycja EFI.
  • Partycja EFI jest pierwszą partycją na dysku.
  • W grę wchodzi tylko jeden dysk, a dysk jest wewnętrzny.
  • rEFInd jest zainstalowany na partycji EFI.

Oferuję dwa sposoby rozwiązania twojego problemu. Każdy ma swoje zalety i wady.

Mac Startup Manager wyświetli system operacyjny, jeśli umieścisz plik .efi we właściwej lokalizacji. Ta lokalizacja jest System/Library/CoreServicesfolderem woluminu na partycji HFS +. Nazwa pliku musi być boot.efi. Ponadto można dostosować ikonę wyświetlaną dla systemu operacyjnego, umieszczając .VolumeIcon.icnsplik w folderze głównym woluminu na partycji HFS +.

Pierwszy sposób.

Uwaga: W tym przypadku nadal używany jest REFInd, ale nie jako zamiennik Menedżera uruchamiania. Będziesz mógł użyć hasła oprogramowania. W rzeczywistości nie są wyświetlane żadne menu ODNIESIENIA. Menedżer rozruchu rEFInd po prostu dyskretnie uruchamia grub (który uruchamia Ubuntu).

  1. Pobierz REFInd z tej strony SourceForge . Zakładam, że pobrany plik ma nazwę refind-bin-0.11.2.zipi ten plik został pobrany do twojego ~/Downloadsfolderu.
  2. Utwórz nową partycję HFS +. Instrukcje podano w sekcji „Dodawanie partycji HFS +”.
  3. Zamontuj nową partycję HFS +, wprowadzając następujące polecenie.

    sudo  diskutil  mount  disk0s3
    

    Nowa partycja HFS + będzie miała nazwę woluminu Ubuntu.

  4. Zainstaluj rEFInd w woluminie na nowej partycji HFS +.

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

    Uwaga: komunikat o błędzie Could not set boot device property: 0xe00002bcbył oczekiwany i można go zignorować.

  5. Skonfiguruj aplikację TextEdit. Otwórz TextEdit, a następnie przejdź do okna „Preferencje ...”. Odznacz wszystkie „Opcje”, jak pokazano poniżej. Po zakończeniu zamknij TextEdit.

    y1

  6. Użyj poniższego polecenia, aby przejść do folderu zawierającego refind.confplik.

    cd  /Volumes/Ubuntu/System/Library/CoreServices
    

    Wykonaj kopię zapasową tego pliku.

    sudo  cp  refind.conf  refind.conf.orignal
    

    Dodaj uprawnienia do zapisu do CoreServicesfolderu i refind.confpliku.

    sudo  chmod  a+w  .  refind.conf
    

    Otwórz plik w aplikacji TextEdit.

    open  -e  refind.conf
    
  7. W tym woluminie edytuj System/Library/CoreServices/refind.confplik, aby dysk po cichu uruchomił grub (co spowoduje uruchomienie systemu Ubuntu). Można to osiągnąć, dodając następujące wiersze na końcu refind.confpliku. Powinieneś być w stanie po prostu wyciąć i wkleić te linie. Po zakończeniu zapisz zmiany, a następnie zamknij 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. Odmontuj nowy nazwany wolumin Ubuntu, wprowadzając następujące polecenia.

    cd  ~
    diskutil  unmount  disk0s3
    

Plusy: Ubuntu pozostaje nienaruszone, więc wszelkie aktualizacje Ubuntu nie będą wymagały uwagi.

Minusy: Musisz użyć zewnętrznego menedżera rozruchu rEFInd.

Drugi sposób.

  1. Utwórz nową partycję HFS +. Instrukcje podano w sekcji „Dodawanie partycji HFS +”.
  2. Zamontuj oryginalną partycję EFI i nową partycję HFS +, wprowadzając następujące polecenia.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    Oryginalna partycja EFI będzie miała nazwę, EFIa nowa partycja HFS + będzie miała nazwęUbuntu .

  3. W nowym wolumenie o nazwie Ubuntuutwórz foldery EFI/ubuntui System/Library/CoreServices, wprowadzając następujące polecenia.

    mkdir  -p  /Volumes/Ubuntu/EFI/ubuntu
    mkdir  -p  /Volumes/Ubuntu/System/Library/CoreServices
    
  4. Skopiuj pliki grub.cfgi grubx64.efina nowy wolumin o nazwie Ubuntu. Potrzebne polecenia podano poniżej.

    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. Odmontuj oryginalną partycję EFI i nową partycję HFS +, wprowadzając następujące polecenia.

    diskutil  unmount  disk0s1
    diskutil  unmount  disk0s3
    

Plusy: Nie musisz używać zewnętrznego menedżera rozruchu rEFInd.

Minusy: Jeśli grubx64.efilub grub.cfgzostanie zaktualizowane, musisz ręcznie skopiować te pliki na nowy wolumin o nazwieUbuntu .

Dodawanie niestandardowej ikony

Poniższe kroki dodadzą następującą ikonę Ubuntu do menu startowego.

os_ubuntu.png

  1. Pobierz kolekcję ikon ze strony internetowej Sourceforge Mac icns .
  2. Użyj aplikacji Finder, aby otworzyć pobrany plik mac-icns.dmg. Zakładam, że ten plik został pobrany do twojego ~/Downloadsfolderu.
  3. Podłącz wolumin o nazwie Ubuntu, wprowadzając następujące polecenie.

    sudo  diskutil  mount  disk0s3
    
  4. Użyj aplikacji Finder, aby skopiować os_ubuntu.icnsplik ikony do folderu głównego wymienionego woluminu Ubuntu. Alternatywnie możesz użyć polecenia pokazanego poniżej.

    sudo cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/Ubuntu/.
    
  5. Zmień nazwę os_ubuntu.icnspliku ikony na .VolumeIcon.icns. Można to zrobić, wprowadzając następujące polecenie.

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

    Uwaga: pliki zaczynające się od kropki ( .) zwykle nie pojawiają się w oknie aplikacji Finder.

  6. Użyj aplikacji Finder, aby wysunąć partycję systemową EFI o nazwie woluminu Ubuntu. Alternatywnie możesz użyć polecenia pokazanego poniżej, aby odmontować wolumin.

    diskutil  unmount  disk0s3
    
  7. Użyj aplikacji Finder, aby wysunąć nazwany wolumin mac-icns.

Dodawanie partycji HFS +

Uwaga: poniżej oparto na wynikach diskutil listpodanych w pytaniu.

  1. Wpisz poniższe polecenie w oknie aplikacji Terminal. Utworzy wolumin „Mac OS Extended” o nazwie „Ubuntu” na nowej partycji.

    sudo  diskutil  apfs  resizeContainer  disk0s2  242300M  HFS+  Ubuntu  200M
    
  2. Uzyskaj identyfikator UUID woluminu dla woluminu o nazwie „Ubuntu”, wprowadzając poniższe polecenie.

     diskutil info Ubuntu | grep "Volume UUID"
    

    Dane wyjściowe powinny być podobne do pokazanych poniżej.

       Volume UUID:              795F14D2-ED1F-3CA0-A004-BD0A27000DC8
    
  3. Następnie zapobiegaj automatycznemu montowaniu nowego woluminu „Ubuntu”, wprowadzając następujące polecenia. Zamień swój UUID na pokazany poniżej.

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

    Uwaga: Poprawnym sposobem edycji /etc/fstabpliku jest użycie polecenia sudo vifs. Użycie echopolecenia jest tylko krótkim skrótem.

  4. Użyj aplikacji Finder, aby wysunąć ten nowy wolumin. Możesz też wprowadzić polecenie pokazane poniżej, aby odmontować ten wolumin.

    diskutil  unmount  Ubuntu
    

Jeśli potrzebujesz, abym rozwinął którykolwiek z powyższych kroków, daj mi znać.

David Anderson
źródło
1
Ten działa dla mnie idealnie! Dzięki! Ponadto nie jest zbyt dobrze używać TextEdita do edycji konfiguracji, ponieważ oznacza to, że plik konfiguracyjny jest zablokowany. Kiedyś sudo nano /Volumes/Ubuntu/System/Library/CoreServices/refind.conf, aby ominąć ten problem.
kouwei32
kouwei32: Dobrze, że ktoś może zweryfikować moje kroki. Dodałem polecenie zmiany uprawnień, aby można było korzystać z aplikacji TextEdit. I tak, nanojest dobrym substytutem.
David Anderson
@DavidAnderson Dziękuję bardzo! To był klucz do prawidłowego rozruchu wszystkich trzech systemów operacyjnych. Bez drugiej partycji EFS możliwe było jedynie uruchomienie systemu z [macOS lub Ubuntu] LUB [Ubuntu lub Windows, przez GRUB], w zależności od ustawienia hybrydowego MBR i tego, czy zdecydowałem się ukryć główną partycję APFS. Czy wiesz, dlaczego tak jest? Nawet w przypadku rEFInd nie było pojedynczego wystąpienia, w którym 3 systemy operacyjne można było uruchomić ... dopóki nie dodałem drugiej partycji EFS i nie wykonałem kroków w First Way.
igordcard
@igordcard: Wprowadziłem kilka poprawek po przeczytaniu twojego komentarza. Uwaga: odkąd opublikowałem tę odpowiedź, Ubuntu nie uruchamia się już w ten sam sposób. Dlatego moja odpowiedź może nie działać, jeśli używasz Ubuntu 18. Komputery Mac zbudowane w 2017 r. Nie zawierają już systemu BIOS, dlatego nie ma potrzeby hybrydowego MBR. W rzeczywistości hybrydowy MBR uniemożliwi uruchomienie systemu Windows. Nie jestem pewien, co rozumiesz przez „ukrywanie głównej partycji APFS”.
David Anderson
@igordcard: Komputery Mac firmy Intel są zaprojektowane do uruchamiania systemu OS X, macOS lub Windows. Jednak oprogramowanie wewnętrzne pozwala również na uruchomienie systemu operacyjnego, jeśli pliki rozruchowe systemu operacyjnego są instalowane zgodnie ze specyfikacjami w sekcji 3.5.1.1 Removable Media Boot Behaviorna stronie 91 specyfikacji Unified Extensible Firmware Interface (UEFI) . W przypadku komputerów Mac z procesorami Intel multimedia muszą być usuwalne.
David Anderson
1

Oryginalna odpowiedź

Moja druga odpowiedź różni się od tej odpowiedzi następującymi sposobami.

  • W drugiej odpowiedzi druga partycja EFI jest zastąpiona partycją HFS +. Ten typ partycji jest łatwiejszy do utworzenia i modyfikacji.
  • W drugiej odpowiedzi etykietą wyświetlaną w Menedżerze uruchamiania będzie „Ubuntu” zamiast ogólnego „EFI Boot”.

Zakładam, że:

  • Zainstalowałeś Ubuntu, aby korzystać z metody rozruchu EFI.
  • Używasz gruba do uruchomienia Ubuntu
  • Grube buty z partycji EFI.
  • Istnieje tylko jedna partycja EFI.
  • Partycja EFI jest pierwszą partycją na dysku.
  • W grę wchodzi tylko jeden dysk, a dysk jest wewnętrzny.
  • rEFInd jest zainstalowany na partycji EFI.

Dam dwa sposoby rozwiązania twojego problemu. Każdy ma swoje zalety i wady.

Mac Startup Manager wyświetli system operacyjny, jeśli umieścisz plik .efi we właściwej lokalizacji. Ta lokalizacja jest EFI/bootfolderem woluminu na partycji EFI. Nazwa pliku musi być bootx64.efi. Ponadto można dostosować ikonę wyświetlaną dla systemu operacyjnego, umieszczając ikonę.VolumeIcon.icns plik w folderze głównym woluminu na partycji EFI.

Pierwszy sposób.

Uwaga: W tym przypadku nadal używany jest REFInd, ale nie jako zamiennik Menedżera uruchamiania. Będziesz mógł użyć hasła oprogramowania. W rzeczywistości nie są wyświetlane żadne menu ODNIESIENIA. Menedżer rozruchu rEFInd po prostu dyskretnie uruchamia grub (który uruchamia Ubuntu).

  1. Pobierz REFInd z tej strony SourceForge . Zakładam, że pobrany plik ma nazwę refund-bin-0.11.2.zipi ten plik został pobrany do twojego ~/Downloadsfolderu.
  2. Utwórz nową partycję EFI. Instrukcje podano w sekcji „Dodawanie partycji EFI”.
  3. Pobierz oprogramowanie rEFInd Boot Manager z tej strony SourceForge .
  4. Zainstaluj rEFInd w woluminie na nowej partycji EFI.

    cd  ~/Downloads/refind-bin-0.11.2
    ./refind-install  --usedefault  /dev/disk0s3
    
  5. Odmontuj i zamontuj nową partycję EFI, wprowadzając następujące polecenia.

    diskutil  unmount  disk0s3
    sudo  diskutil  mount  disk0s3
    

    Nowa partycja EFI będzie miała nazwę woluminu EFI2.

  6. Skonfiguruj aplikację TextEdit. Otwórz TextEdit, a następnie przejdź do okna „Preferencje ...”. Odznacz wszystkie „Opcje”, jak pokazano poniżej. Po zakończeniu zamknij TextEdit.

    y1

  7. Użyj poniższego polecenia, aby przejść do folderu zawierającego refind.confplik.

    cd  /Volumes/EFI2/EFI/BOOT
    

    Wykonaj kopię zapasową tego pliku.

    cp  refind.conf  refind.conf.orignal
    

    Otwórz plik w aplikacji TextEdit.

    open  -e  refind.conf
    
  8. W tym woluminie edytuj EFI/BOOT/refind.confplik, aby dysk po cichu uruchomił grub (co spowoduje uruchomienie systemu Ubuntu). Można to osiągnąć, dodając następujące wiersze na końcu refind.confpliku. Powinieneś być w stanie po prostu wyciąć i wkleić te linie. Po zakończeniu zapisz zmiany, a następnie zamknij 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. Odmontuj nowy wolumin o nazwie EFI2.

    diskutil  unmount  disk0s3
    

Plusy: Ubuntu pozostaje nienaruszone, więc wszelkie aktualizacje Ubuntu nie będą wymagały uwagi.

Minusy: Musisz użyć zewnętrznego menedżera rozruchu rEFInd.

Drugi sposób.

  1. Utwórz nową partycję EFI. Instrukcje podano w sekcji „Dodawanie partycji EFI”.
  2. Zamontuj oryginalne i nowe partycje EFI, wprowadzając następujące polecenia.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    Oryginalna partycja EFI będzie miała nazwę, EFIa nowa partycja EFI będzie miała nazwę EFI2.

  3. W nowym wolumenie o nazwie EFI2utwórz foldery EFI/ubuntui EFI/boot, wprowadzając następujące polecenia.

    mkdir  -p  /Volumes/EFI2/EFI/ubuntu
    mkdir  -p  /Volumes/EFI2/EFI/boot
    
  4. Skopiuj pliki grub.cfgi grubx64.efina nowy wolumin o nazwie EFI2. Potrzebne polecenia podano poniżej.

    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
    

Plusy: Nie musisz używać zewnętrznego menedżera rozruchu rEFInd.

Minusy: Jeśli grubx64.efilub grub.cfgzostanie zaktualizowane, musisz ręcznie skopiować te pliki na nowy wolumin o nazwieEFI2 .

Dodawanie niestandardowej ikony

Poniższe kroki dodadzą następującą ikonę Ubuntu do menu startowego.

os_ubuntu.png

  1. Pobierz kolekcję ikon ze strony internetowej Sourceforge Mac icns .
  2. Użyj aplikacji Finder, aby otworzyć pobrany plik mac-icns.dmg. Zakładam, że ten plik został pobrany do twojego ~/Downloadsfolderu.
  3. Podłącz wolumin o nazwie EFI2, wprowadzając następujące polecenie.

    sudo  diskutil  mount  disk0s3
    
  4. Użyj aplikacji Finder, aby skopiować os_ubuntu.icnsplik ikony do folderu głównego wymienionego woluminu EFI2. Alternatywnie możesz użyć polecenia pokazanego poniżej.

    cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/EFI2/.
    
  5. Zmień nazwę os_ubuntu.icnspliku ikony na .VolumeIcon.icns. Można to zrobić, wprowadzając następujące polecenie.

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

    Uwaga: pliki zaczynające się od kropki ( .) zwykle nie pojawiają się w oknie aplikacji Finder.

  6. Użyj aplikacji Finder, aby wysunąć partycję systemową EFI o nazwie woluminu EFI2. Alternatywnie możesz użyć polecenia pokazanego poniżej, aby odmontować wolumin.

    diskutil  unmount  disk0s3
    
  7. Użyj aplikacji Finder, aby wysunąć nazwany wolumin mac-icns.

Dodawanie partycji EFI

Uwaga: poniżej oparto na wynikach diskutil listpodanych w pytaniu.

Po uruchomieniu systemu macOS wprowadź poniższe polecenia w oknie aplikacji Terminal.

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

Jeśli potrzebujesz, abym rozwinął którykolwiek z powyższych kroków, daj mi znać.

David Anderson
źródło
Niestety, pierwsze rozwiązanie nie jest tym, którego chciałem, a drugie w ogóle nie działa.
kouwei32
Drugie rozwiązanie oparte jest na sprawdzonych rozwiązaniach, które wcześniej opublikowałem. Wielu innych użytkowników z powodzeniem skorzystało z tego rozwiązania. Zobacz tutaj i tutaj .
David Anderson
1
Być może nie podałem wystarczających szczegółów. Na przykład w twoim przypadku musisz utworzyć nową partycję EFI. To nie może być normalna partycja w formacie FAT32. Musi to być partycja EFI, na której znajduje się identyfikator GUID w GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B.
David Anderson,
Mam już partycję EFI. Próbowałem 3 razy i bez skutku.
kouwei32
Możesz mieć tyle partycji EFI, ile potrzebujesz. W twoim przypadku Windows już używa folderu EFI / boot na partycji EFI. Dlatego potrzebujesz drugiej partycji EFI.
David Anderson