Потрійне завантаження macOS High Sierra, Ubuntu та Windows без rEFInd


10

На даний момент у мене MacBook Air встановлено три ОС: macOS, Ubuntu та Windows 10. Я не міг завантажуватися в Ubuntu без rEFInd, але я дуже віддаю перевагу менеджеру завантаження за замовчуванням, тому що я хочу використовувати пароль прошивки (який rEFInd не має).

Чи є спосіб, щоб менеджер завантаження macOS розпізнав Ubuntu, не використовуючи стороннього менеджера завантаження?

ПРИМІТКИ:

  • Я не хочу, щоб Ubuntu встановлювався як моя ОС за замовчуванням як альтернатива. Я просто хочу, щоб він відображався в меню завантаження.
  • Я не проти, якщо це просто перейде в GRUB. Поки воно якось може завантажувати ядро, це добре.

Вихід з команди 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

Який рік вашого MacBook Air? Я дійсно хочу знати, як встановлено Windows, Ubuntu та rEFInd. Будь-яке завантаження BIOS? Де ви встановили rEFInd? Крім того, це допоможе, якщо ви включили вихід з diskutil listкоманди. Ваше запитання було задано раніше. Є кілька простих рішень.
Девід Андерсон

Дійсно, є кілька рішень, але жодне з них не працює для мене. Рік MacBook Air - 2017. Я вперше встановив Windows за допомогою bootcamp, зменшив обсяг macOS, щоб зробити ще один об'єм даних для Windows, встановив Ubuntu, знову зменшивши розділ macOS (що зламало речі, і мені довелося перевстановити macOS та скинути Windows розділ даних). Після цього я встановив rEFInd з офіційного веб-сайту. diskutil listВихід: Pastebin
kouwei32

1
Напевно, ви повинні прочитати це спочатку: Встановлення Ubuntu на Mac з уже встановленими macOS та Windows . Зараз я публікую відповідь на ваше запитання. Моя відповідь дещо ґрунтується на вищенаведеному посиланні.
Девід Андерсон

Перезавантажте свій Mac і виконайте команду diskutil list. Замініть вихід у своїй відповіді цим новим результатом. Я запитую це, оскільки цього disk0s3немає у вашому поточному відображенні.
Девід Андерсон

Відповіді:


5

Альтернативна друга відповідь

Ця друга відповідь відрізняється від моєї першої відповіді наступними способами.

  • Другий розділ EFI замінюється розділом HFS +.

  • Мітка, що відображається в диспетчері запуску, буде "Ubuntu" замість загальної "завантаження EFI".

Я припускаю наступне:

  • Ви встановили Ubuntu для використання методу завантаження EFI.
  • Ви використовуєте grub для завантаження Ubuntu
  • Черевики з груби з перегородки EFI.
  • Є лише один розділ EFI.
  • Розділ EFI - це перший розділ на диску.
  • Задіяний лише один диск, а диск внутрішній.
  • rEFInd встановлюється в розділі EFI.

Я запропоную два способи вирішити вашу проблему. У кожного є свої плюси і мінуси.

Менеджер запуску Mac відобразить операційну систему, якщо ви розмістите файл .efi у потрібному місці. Це місце - System/Library/CoreServicesпапка обсягу в розділі HFS +. Ім'я файлу повинно бути boot.efi. Крім того, ви можете налаштувати піктограму, що відображається для операційної системи, розмістивши .VolumeIcon.icnsфайл у кореневій папці обсягу в розділі HFS +.

Перший шлях.

Примітка. Тут rEFInd все ще використовується, але не замінює Менеджера запуску. Ви зможете використовувати пароль мікропрограмного забезпечення. Насправді жодне меню REFInd не відображається. Менеджер завантаження rEFInd просто мовчки завантажує ґрунт (який завантажує Ubuntu).

  1. Завантажте rEFInd з цього веб-сайту SourceForge . Я припускаю, що завантажений файл названий refind-bin-0.11.2.zipі цей файл був завантажений у вашу ~/Downloadsпапку.
  2. Створіть новий HFS + розділ. Інструкції наведені в розділі "Додавання HFS + розділу".
  3. Встановіть новий HFS + розділ, ввівши наступну команду.

    sudo  diskutil  mount  disk0s3
    

    Новий розділ HFS + матиме ім'я гучності Ubuntu.

  4. Встановіть rEFInd в том в новому розділі HFS +.

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

    Примітка. Повідомлення про помилку Could not set boot device property: 0xe00002bcбуло очікуваним і його можна проігнорувати.

  5. Налаштуйте програму TextEdit. Відкрийте TextEdit, потім перейдіть до вікна "Налаштування ...". Зніміть прапорець "Параметри", як показано нижче. По завершенні роботи закрийте TextEdit.

    y1

  6. Використовуйте команду нижче, щоб перейти до папки, що містить refind.confфайл.

    cd  /Volumes/Ubuntu/System/Library/CoreServices
    

    Зробіть резервну копію цього файлу.

    sudo  cp  refind.conf  refind.conf.orignal
    

    Додайте дозволи на запис у CoreServicesпапку та refind.confфайл.

    sudo  chmod  a+w  .  refind.conf
    

    Відкрийте файл у програмі TextEdit.

    open  -e  refind.conf
    
  7. У цьому томі відредагуйте System/Library/CoreServices/refind.confфайл, щоб тихо завантажувати grub (що дозволить інтернувати завантаження Ubuntu). Це можна досягти, додавши наступні рядки до кінця refind.confфайлу. Ви повинні мати можливість просто вирізати та вставити ці лінії. Закінчивши, збережіть зміни та закрийте 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. Відключіть новий названий том Ubuntu, ввівши наступні команди.

    cd  ~
    diskutil  unmount  disk0s3
    

Плюси: Ubuntu не впливає, тому будь-які оновлення Ubuntu не потребуватимуть уваги.

Мінуси: Вам потрібно скористатися стороннім менеджером завантаження rEFInd.

Другий шлях.

  1. Створіть новий HFS + розділ. Інструкції наведені в розділі "Додавання HFS + розділу".
  2. Змонтуйте оригінальний розділ EFI та новий HFS + розділ, ввівши наступні команди.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    Оригінальний розділ EFI матиме ім'я, EFIа новий HFS + розділ матиме ім'я Ubuntu.

  3. У новому названому томі Ubuntuстворіть папки EFI/ubuntuі System/Library/CoreServices, ввівши наступні команди.

    mkdir  -p  /Volumes/Ubuntu/EFI/ubuntu
    mkdir  -p  /Volumes/Ubuntu/System/Library/CoreServices
    
  4. Скопіюйте файли grub.cfgі grubx64.efiв новий ім'я з назвою Ubuntu. Необхідні команди наведені нижче.

    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. Демонтуйте оригінальний розділ EFI та новий HFS + розділ, ввівши наступні команди.

    diskutil  unmount  disk0s1
    diskutil  unmount  disk0s3
    

Плюси: Вам не потрібно використовувати rEFInd стороннього завантажувача.

Мінуси: Якщо grubx64.efiабо grub.cfgоновлено, вам потрібно вручну скопіювати ці файли в новий ім'я з томом Ubuntu.

Додавання спеціальної іконки

Наведені нижче дії додадуть наступний значок Ubuntu до меню запуску.

os_ubuntu.png

  1. Завантажте колекцію іконок з веб-сайту sourceforge Mac icns .
  2. За допомогою програми Finder відкрийте завантажений файл mac-icns.dmg. Я припускаю, що цей файл завантажено у вашу ~/Downloadsпапку.
  3. Встановіть назву гучності Ubuntu, ввівши наступну команду.

    sudo  diskutil  mount  disk0s3
    
  4. За допомогою програми Finder скопіюйте os_ubuntu.icnsфайл значків у кореневу папку з названим томом Ubuntu. Крім того, ви можете використовувати команду, показану нижче.

    sudo cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/Ubuntu/.
    
  5. Перейменуйте os_ubuntu.icnsфайл значка в .VolumeIcon.icns. Це можна досягти, ввівши наступну команду.

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

    Примітка. Файли, що починаються з періоду ( .), зазвичай не відображаються у вікні програми Finder.

  6. За допомогою програми Finder витягніть розділ системи EFI з назвою тома Ubuntu. Крім того, ви можете скористатися командою, показаною нижче, для відключення гучності.

    diskutil  unmount  disk0s3
    
  7. За допомогою програми Finder витягніть названий том mac-icns.

Додавання HFS + розділу

Примітка. Нижче на основі результатів, diskutil listякі ви надали у своєму запитанні.

  1. Введіть команду нижче у вікно програми Terminal. У новому розділі буде створено том "Mac OS Extended" з назвою "Ubuntu".

    sudo  diskutil  apfs  resizeContainer  disk0s2  242300M  HFS+  Ubuntu  200M
    
  2. Отримайте гучність UUID для тома з назвою "Ubuntu", ввівши команду нижче.

     diskutil info Ubuntu | grep "Volume UUID"
    

    Вихід повинен бути подібним до показаного нижче.

       Volume UUID:              795F14D2-ED1F-3CA0-A004-BD0A27000DC8
    
  3. Далі, запобігайте автоматичному монтажу цієї нової томової назви "Ubuntu", вводячи наступні команди. Замініть свій UUID на наведений нижче.

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

    Примітка. Правильним способом редагування /etc/fstabфайлу є використання команди sudo vifs. Використання echoкоманди - лише швидкий ярлик.

  4. За допомогою програми Finder витягніть цей новий том. Крім того, ви можете ввести команду, показану нижче, щоб відключити цей том.

    diskutil  unmount  Ubuntu
    

Якщо вам потрібно, щоб я розширив будь-який із перерахованих вище кроків, дайте мені знати.


1
Цей прекрасно працює для мене! Дякую! Крім того, не дуже добре використовувати TextEdit для редагування конфігурації, оскільки він позначає конфігураційний файл як заблокований. Я раніше sudo nano /Volumes/Ubuntu/System/Library/CoreServices/refind.confобійшов цю проблему.
kouwei32

kouwei32: Добре, коли хтось може перевірити мої кроки. Я додав команду змінити дозволи, щоб застосувати додаток TextEdit. І так, nanoце гарна заміна.
Девід Андерсон

@DavidAnderson Дуже дякую! Це було ключовим для того, щоб усі три ОС завантажувались добре. Без 2-го розділу EFS завантажуватись можна було лише [macOS або Ubuntu] АБО [Ubuntu або Windows, через GRUB], залежно від того, як був встановлений гібридний MBR та чи вирішив я приховати головний розділ APFS. Чи знаєте ви, чому це так? Навіть з rEFInd не було жодного випадку, коли три ОС завантажувались, поки я не додав другий розділ EFS і не виконав кроки в Першому шляху.
igordcard

@igordcard: Я вніс деякі виправлення, прочитавши ваш коментар. Примітка. Оскільки я опублікував цю відповідь, Ubuntu більше не завантажується так само. Тому моя відповідь може не спрацювати, якщо ви використовуєте Ubuntu 18. Маки, побудовані в 2017 році, вже не містять BIOS, тому немає необхідності в гібридній MBR. Фактично, гібридний MBR не дозволить Windows завантажуватися. Я не впевнений, що ви маєте на увазі під «приховати головний розділ APFS».
Девід Андерсон

@igordcard: Intel Macs призначені для завантаження ОС X, macOS або Windows. Однак програмне забезпечення також дозволяє завантажувати операційну систему, якщо завантажувальні файли операційної системи встановлені за допомогою специфікацій, наведених у розділі 3.5.1.1 Removable Media Boot Behaviorна сторінці 91 специфікації Уніфікованого розширюваного інтерфейсу прошивки (UEFI) . Для Intel Macs засоби масової інформації повинні бути знімними.
Девід Андерсон

1

Оригінальний відповідь

Моя друга відповідь відрізняється від цієї відповіді наступними способами.

  • У другій відповіді другий розділ EFI замінюється розділом HFS +. Цей тип розділів простіше створити та змінити.
  • У другій відповіді мітка, що відображається в диспетчері запуску, буде "Ubuntu" замість загальної "EFI Boot".

Я припускаю наступне:

  • Ви встановили Ubuntu для використання методу завантаження EFI.
  • Ви використовуєте grub для завантаження Ubuntu
  • Черевики з груби з перегородки EFI.
  • Є лише один розділ EFI.
  • Розділ EFI - це перший розділ на диску.
  • Задіяний лише один диск, а диск внутрішній.
  • rEFInd встановлюється в розділі EFI.

Я дам два способи вирішити вашу проблему. У кожного є свої плюси і мінуси.

Менеджер запуску Mac відобразить операційну систему, якщо ви розмістите файл .efi у потрібному місці. Це місце - EFI/bootпапка обсягу в розділі EFI. Ім'я файлу повинно бути bootx64.efi. Крім того, ви можете налаштувати піктограму, що відображається для операційної системи, розмістивши .VolumeIcon.icnsфайл у кореневій папці обсягу в розділі EFI.

Перший шлях.

Примітка. Тут rEFInd все ще використовується, але не замінює Менеджера запуску. Ви зможете використовувати пароль мікропрограмного забезпечення. Насправді жодне меню REFInd не відображається. Менеджер завантаження rEFInd просто мовчки завантажує ґрунт (який завантажує Ubuntu).

  1. Завантажте rEFInd з цього веб-сайту SourceForge . Я припускаю, що завантажений файл названий refund-bin-0.11.2.zipі цей файл був завантажений у вашу ~/Downloadsпапку.
  2. Створіть новий розділ EFI. Інструкції наведені в розділі "Додавання розділу EFI".
  3. Завантажте програмне забезпечення rEFInd Boot Manager з цього веб-сайту SourceForge .
  4. Встановіть rEFInd в том в новому розділі EFI.

    cd  ~/Downloads/refind-bin-0.11.2
    ./refind-install  --usedefault  /dev/disk0s3
    
  5. Демонтуйте і змонтуйте новий розділ EFI, ввівши наступні команди.

    diskutil  unmount  disk0s3
    sudo  diskutil  mount  disk0s3
    

    Новий розділ EFI матиме ім'я тома EFI2.

  6. Налаштуйте програму TextEdit. Відкрийте TextEdit, потім перейдіть до вікна "Налаштування ...". Зніміть прапорець "Параметри", як показано нижче. По завершенні роботи закрийте TextEdit.

    y1

  7. Використовуйте команду нижче, щоб перейти до папки, що містить refind.confфайл.

    cd  /Volumes/EFI2/EFI/BOOT
    

    Зробіть резервну копію цього файлу.

    cp  refind.conf  refind.conf.orignal
    

    Відкрийте файл у програмі TextEdit.

    open  -e  refind.conf
    
  8. У цьому томі відредагуйте EFI/BOOT/refind.confфайл, щоб тихо завантажувати grub (що дозволить інтернувати завантаження Ubuntu). Це можна досягти, додавши наступні рядки до кінця refind.confфайлу. Ви повинні мати можливість просто вирізати та вставити ці лінії. Закінчивши, збережіть зміни та закрийте 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. Відключіть новий ім'я з назвою EFI2.

    diskutil  unmount  disk0s3
    

Плюси: Ubuntu не впливає, тому будь-які оновлення Ubuntu не потребуватимуть уваги.

Мінуси: Вам потрібно скористатися стороннім менеджером завантаження rEFInd.

Другий шлях.

  1. Створіть новий розділ EFI. Інструкції наведені в розділі "Додавання розділу EFI".
  2. Змонтуйте оригінальні та нові розділи EFI, ввівши наступні команди.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    Оригінальний розділ EFI матиме ім'я, EFIа новий розділ EFI матиме ім'я EFI2.

  3. У новому названому томі EFI2створіть папки EFI/ubuntuі EFI/boot, ввівши наступні команди.

    mkdir  -p  /Volumes/EFI2/EFI/ubuntu
    mkdir  -p  /Volumes/EFI2/EFI/boot
    
  4. Скопіюйте файли grub.cfgі grubx64.efiв новий ім'я з назвою EFI2. Необхідні команди наведені нижче.

    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
    

Плюси: Вам не потрібно використовувати rEFInd стороннього завантажувача.

Мінуси: Якщо grubx64.efiабо grub.cfgоновлено, вам потрібно вручну скопіювати ці файли в новий ім'я з томом EFI2.

Додавання спеціальної іконки

Наведені нижче дії додадуть наступний значок Ubuntu до меню запуску.

os_ubuntu.png

  1. Завантажте колекцію іконок з веб-сайту sourceforge Mac icns .
  2. За допомогою програми Finder відкрийте завантажений файл mac-icns.dmg. Я припускаю, що цей файл завантажено у вашу ~/Downloadsпапку.
  3. Встановіть назву гучності EFI2, ввівши наступну команду.

    sudo  diskutil  mount  disk0s3
    
  4. За допомогою програми Finder скопіюйте os_ubuntu.icnsфайл значків у кореневу папку з названим томом EFI2. Крім того, ви можете використовувати команду, показану нижче.

    cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/EFI2/.
    
  5. Перейменуйте os_ubuntu.icnsфайл значка в .VolumeIcon.icns. Це можна досягти, ввівши наступну команду.

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

    Примітка. Файли, що починаються з періоду ( .), зазвичай не відображаються у вікні програми Finder.

  6. За допомогою програми Finder витягніть розділ системи EFI з назвою тома EFI2. Крім того, ви можете скористатися командою, показаною нижче, для відключення гучності.

    diskutil  unmount  disk0s3
    
  7. За допомогою програми Finder витягніть названий том mac-icns.

Додавання розділу EFI

Примітка. Нижче на основі результатів, diskutil listякі ви надали у своєму запитанні.

Під час завантаження до macOS введіть команди нижче у вікні програми Terminal.

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

Якщо вам потрібно, щоб я розширив будь-який із перерахованих вище кроків, дайте мені знати.


На жаль, перше рішення не є таким, яке я хотів, а друге взагалі не працює.
kouwei32

Друге рішення засноване на перевірених рішеннях, які я раніше розміщував. Багато інших користувачів успішно використовували це рішення. Дивіться тут і тут .
Девід Андерсон

1
Можливо, я не дав достатньо деталей. Наприклад, у вашому випадку вам потрібно буде створити новий розділ EFI. Це не може бути звичайним розділом у форматі FAT32. Це повинен бути розділ EFI, де є GUID у GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B.
Девід Андерсон

У мене вже є розділ EFI. Пробував 3 рази і безрезультатно.
kouwei32

Ви можете мати стільки розділів EFI, скільки вам потрібно. У вашому випадку Windows вже використовує папку EFI / boot у вашому розділі EFI. Ось чому вам потрібен другий розділ EFI.
Девід Андерсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.