Boot tiga macOS High Sierra, Ubuntu, dan Windows tanpa rEFInd


10

Saat ini saya memiliki tiga OS yang terinstal di MacBook Air 2017 saya: macOS, Ubuntu, dan Windows 10. Saya tidak bisa boot ke Ubuntu tanpa rEFInd, tapi saya lebih suka boot manager default, karena saya ingin menggunakan kata sandi firmware (yang rEFInd tidak punya).

Apakah ada cara bagi manajer boot macOS untuk mengenali Ubuntu tanpa menggunakan boot manager pihak ketiga?

CATATAN:

  • Saya tidak ingin Ubuntu ditetapkan sebagai OS default saya sebagai alternatif. Saya hanya ingin itu muncul di menu boot.
  • Saya tidak keberatan jika itu hanya masuk ke GRUB. Selama entah bagaimana bisa memuat kernel, tidak apa-apa.

Output dari perintah 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

Berapa tahun MacBook Air Anda? Yang saya benar-benar ingin tahu adalah bagaimana cara menginstal Windows, Ubuntu dan reFInd. Apakah ada boot BIOS? Di mana Anda menginstal rEFInd? Juga, akan membantu jika Anda memasukkan output dari diskutil listperintah. Pertanyaan Anda telah diajukan sebelumnya. Ada beberapa solusi sederhana.
David Anderson

Memang ada beberapa solusi, tetapi tidak ada yang bekerja untuk saya. Tahun MacBook Air adalah 2017. Saya pertama kali menginstal Windows dengan bootcamp, mengecilkan volume macOS untuk membuat volume data lain untuk Windows, menginstal Ubuntu dengan menyusutkan lagi partisi macOS (yang merusak barang-barang dan saya harus menginstal ulang macOS dan mengatur ulang Windows partisi data). Saya menginstal rEFInd sesudahnya dari situs web resmi. diskutil listkeluaran: Pastebin
kouwei32

1
Anda mungkin harus membaca ini dulu: Menginstal Ubuntu di Mac dengan macOS dan Windows sudah diinstal . Saat ini saya sedang memposting jawaban untuk pertanyaan Anda. Jawaban saya agak didasarkan pada tautan di atas.
David Anderson

Reboot Mac Anda dan jalankan perintah diskutil list. Ganti output dalam jawaban Anda dengan output baru ini. Saya menanyakan ini karena disk0s3tidak ada dalam output yang ditampilkan saat ini.
David Anderson

Jawaban:


5

Alternatif Jawaban Kedua

Jawaban kedua ini berbeda dari jawaban pertama saya dengan cara berikut.

  • Partisi EFI kedua digantikan oleh partisi HFS +.

  • Label yang ditampilkan di Startup Manager adalah "Ubuntu" dan bukan "EFI Boot" generik.

Saya akan menganggap sebagai berikut:

  • Anda telah menginstal Ubuntu untuk menggunakan metode boot EFI.
  • Anda menggunakan grub untuk mem-boot Ubuntu
  • Grub melakukan booting dari partisi EFI.
  • Hanya ada satu partisi EFI.
  • Partisi EFI adalah partisi pertama pada Disk.
  • Hanya ada satu disk yang terlibat dan disk internal.
  • rEFInd diinstal di partisi EFI.

Saya akan menawarkan dua cara untuk menyelesaikan masalah Anda. Masing-masing memiliki pro dan kontra.

Mac Startup Manager akan menampilkan sistem operasi jika Anda menempatkan file .efi di lokasi yang benar. Lokasi ini adalah System/Library/CoreServicesfolder volume di partisi HFS +. Nama file harus boot.efi. Selanjutnya, Anda dapat menyesuaikan ikon yang ditampilkan untuk sistem operasi dengan menempatkan .VolumeIcon.icnsfile di folder root volume di partisi HFS +.

Cara Pertama.

Catatan: Di sini, rEFInd masih digunakan, tetapi bukan sebagai pengganti untuk Startup Manager. Anda akan dapat menggunakan kata sandi firmware. Faktanya, tidak ada menu resi yang ditampilkan. Boot manager yang baru saja diam-diam mem-boot grub (yang mem-boot Ubuntu).

  1. Unduh resEnd dari situs web SourceForge ini . Saya menganggap file yang diunduh bernama refind-bin-0.11.2.zipdan file ini diunduh ke ~/Downloadsfolder Anda .
  2. Buat partisi HFS + baru. Instruksi diberikan di bagian "Menambahkan Partisi HFS +".
  3. Pasang partisi HFS + baru, dengan memasukkan perintah berikut.

    sudo  diskutil  mount  disk0s3
    

    Partisi HFS + baru akan memiliki nama volume Ubuntu.

  4. Instal rEFInd ke dalam volume pada partisi HFS + baru.

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

    Catatan: Pesan kesalahan Could not set boot device property: 0xe00002bcitu diharapkan dan dapat diabaikan.

  5. Konfigurasikan aplikasi TextEdit. Buka TextEdit, lalu arahkan ke jendela "Preferences ...". Hapus centang semua "Opsi", seperti yang ditunjukkan di bawah ini. Setelah selesai, keluar dari TextEdit.

    y1

  6. Gunakan perintah di bawah ini untuk menavigasi ke folder yang berisi refind.conffile.

    cd  /Volumes/Ubuntu/System/Library/CoreServices
    

    Buat salinan cadangan dari file ini.

    sudo  cp  refind.conf  refind.conf.orignal
    

    Tambahkan izin tulis ke CoreServicesfolder dan refind.conffile.

    sudo  chmod  a+w  .  refind.conf
    

    Buka file di aplikasi TextEdit.

    open  -e  refind.conf
    
  7. Dalam volume ini, edit System/Library/CoreServices/refind.conffile untuk secara diam-diam mem-boot grub (yang akan mem-boot Ubuntu). Ini dapat dilakukan dengan menambahkan baris berikut ke akhir refind.conffile. Anda harus bisa memotong dan menempelkan garis-garis ini. Setelah selesai, simpan perubahan, lalu keluar dari 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. Lepaskan volume nama baru Ubuntu, dengan memasukkan perintah berikut.

    cd  ~
    diskutil  unmount  disk0s3
    

Pro: Ubuntu tidak terpengaruh, jadi setiap pembaruan Ubuntu tidak akan membutuhkan perhatian.

Cons: Anda perlu menggunakan boot manager pihak ketiga.

Jalan Kedua.

  1. Buat partisi HFS + baru. Instruksi diberikan di bagian "Menambahkan Partisi HFS +".
  2. Pasang partisi EFI asli dan partisi HFS + baru, dengan memasukkan perintah berikut.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    Partisi EFI asli akan memiliki nama EFIdan partisi HFS + baru akan memiliki nama Ubuntu.

  3. Di volume baru bernama Ubuntu, buat folder EFI/ubuntudan System/Library/CoreServices, dengan memasukkan perintah berikut.

    mkdir  -p  /Volumes/Ubuntu/EFI/ubuntu
    mkdir  -p  /Volumes/Ubuntu/System/Library/CoreServices
    
  4. Salin file grub.cfgdan grubx64.efike volume baru bernama Ubuntu. Perintah yang dibutuhkan diberikan di bawah ini.

    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. Lepas partisi EFI asli dan partisi HFS + baru, dengan memasukkan perintah berikut.

    diskutil  unmount  disk0s1
    diskutil  unmount  disk0s3
    

Pro: Anda tidak perlu menggunakan boot manager pihak ketiga.

Cons: Jika grubx64.efiatau grub.cfgdiperbarui, Anda harus menyalin file-file ini secara manual ke volume baru bernama Ubuntu.

Menambahkan Ikon Kustom

Langkah-langkah di bawah ini akan menambahkan ikon Ubuntu berikut ke Startup Menu.

os_ubuntu.png

  1. Unduh koleksi ikon dari situs web sourceforge Mac icns .
  2. Gunakan aplikasi Finder untuk membuka file yang diunduh mac-icns.dmg. Saya menganggap file ini diunduh ke ~/Downloadsfolder Anda .
  3. Pasang volume bernama Ubuntudengan memasukkan perintah berikut.

    sudo  diskutil  mount  disk0s3
    
  4. Gunakan aplikasi Finder untuk menyalin os_ubuntu.icnsfile ikon ke folder root volume bernama Ubuntu. Atau, Anda dapat menggunakan perintah di bawah ini.

    sudo cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/Ubuntu/.
    
  5. Ubah nama os_ubuntu.icnsfile ikon menjadi .VolumeIcon.icns. Ini dapat dilakukan dengan memasukkan perintah berikut.

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

    Catatan: File yang dimulai dengan titik ( .) biasanya tidak muncul di jendela aplikasi Finder.

  6. Gunakan aplikasi Finder untuk mengeluarkan partisi Sistem EFI dengan nama volume Ubuntu. Atau, Anda dapat menggunakan perintah di bawah ini untuk melepas volume.

    diskutil  unmount  disk0s3
    
  7. Gunakan aplikasi Finder untuk mengeluarkan volume bernama mac-icns.

Menambahkan Partisi HFS +

Catatan: Di bawah ini didasarkan pada output dari diskutil listyang Anda berikan dalam pertanyaan Anda.

  1. Masukkan perintah di bawah ini di jendela aplikasi Terminal. Ini akan membuat volume "Mac OS Extended" bernama "Ubuntu" di partisi baru.

    sudo  diskutil  apfs  resizeContainer  disk0s2  242300M  HFS+  Ubuntu  200M
    
  2. Dapatkan volume UUID untuk volume bernama "Ubuntu" dengan memasukkan perintah di bawah ini.

     diskutil info Ubuntu | grep "Volume UUID"
    

    Outputnya harus sama dengan apa yang ditunjukkan di bawah ini.

       Volume UUID:              795F14D2-ED1F-3CA0-A004-BD0A27000DC8
    
  3. Selanjutnya, cegah nama volume baru ini "Ubuntu" dari pemasangan secara otomatis, dengan memasukkan perintah berikut. Ganti UUID Anda dengan yang ditunjukkan di bawah ini.

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

    Catatan: Cara yang benar, untuk mengedit /etc/fstabfile, adalah dengan menggunakan perintah sudo vifs. Menggunakan echoperintah hanyalah jalan pintas cepat.

  4. Gunakan aplikasi Finder untuk mengeluarkan volume baru ini. Atau, Anda dapat memasukkan perintah yang ditunjukkan di bawah ini untuk meng-unmount volume ini.

    diskutil  unmount  Ubuntu
    

Jika Anda membutuhkan saya untuk memperluas langkah-langkah di atas, beri tahu saya.


1
Yang ini bekerja untuk saya dengan sempurna! Terima kasih! Juga, itu tidak benar-benar baik untuk menggunakan TextEdit untuk mengedit konfigurasi, karena itu menandai file konfigurasi sebagai terkunci. Saya biasa sudo nano /Volumes/Ubuntu/System/Library/CoreServices/refind.confmelewati masalah ini.
kouwei32

kouwei32: Adalah baik ketika seseorang dapat memverifikasi langkah saya. Saya menambahkan perintah untuk mengubah izin sehingga aplikasi TextEdit dapat digunakan. Dan ya, nanoadalah pengganti yang bagus.
David Anderson

@DavidAnderson Terima kasih banyak! Ini adalah kunci untuk memiliki ketiga OS booting dengan baik. Tanpa partisi EFS ke-2, itu hanya mungkin untuk boot ke [macOS atau Ubuntu] ATAU [Ubuntu atau Windows, melalui GRUB], tergantung pada bagaimana MBR hibrida diatur dan apakah saya memilih untuk menyembunyikan partisi APFS utama. Apakah Anda tahu mengapa demikian? Bahkan dengan rEFInd, tidak ada satu pun instance di mana 3 OS dapat di-boot ... sampai saya menambahkan partisi EFS kedua dan mengikuti langkah-langkah di First Way.
igordcard

@igordcard: Saya melakukan koreksi setelah membaca komentar Anda. Catatan: Karena saya memposting jawaban ini, Ubuntu tidak lagi melakukan booting dengan cara yang sama. Oleh karena itu, jawaban saya mungkin tidak berfungsi, jika Anda menggunakan Ubuntu 18. Mac yang dibangun pada 2017 tidak lagi berisi BIOS, oleh karena itu tidak perlu untuk MBR hybrid. Faktanya, MBR hybrid akan mencegah Windows dari booting. Saya tidak yakin apa yang Anda maksud dengan "menyembunyikan partisi APFS utama".
David Anderson

@igordcard: Intel Mac dirancang untuk mem-boot OS X, macOS atau Windows. Namun, firmware juga memungkinkan untuk mem-boot sistem operasi, jika file boot sistem operasi diinstal menggunakan spesifikasi pada bagian 3.5.1.1 Removable Media Boot Behavior91 di Spesifikasi Unified Extensible Firmware Interface (UEFI) . Untuk Intel Mac, media harus dilepas.
David Anderson

1

Jawaban Asli

Jawaban kedua saya berbeda dari jawaban ini dengan cara berikut.

  • Di jawaban kedua, partisi EFI kedua digantikan oleh partisi HFS +. Jenis partisi ini lebih mudah dibuat dan dimodifikasi.
  • Pada jawaban kedua, label yang ditampilkan di Startup Manager adalah "Ubuntu" dan bukan "EFI Boot" generik.

Saya akan menganggap sebagai berikut:

  • Anda telah menginstal Ubuntu untuk menggunakan metode boot EFI.
  • Anda menggunakan grub untuk mem-boot Ubuntu
  • Grub melakukan booting dari partisi EFI.
  • Hanya ada satu partisi EFI.
  • Partisi EFI adalah partisi pertama pada Disk.
  • Hanya ada satu disk yang terlibat dan disk internal.
  • rEFInd diinstal di partisi EFI.

Saya akan memberikan dua cara untuk menyelesaikan masalah Anda. Masing-masing memiliki pro dan kontra.

Mac Startup Manager akan menampilkan sistem operasi jika Anda menempatkan file .efi di lokasi yang benar. Lokasi ini adalah EFI/bootfolder volume di partisi EFI. Nama file harus bootx64.efi. Selanjutnya, Anda dapat menyesuaikan ikon yang ditampilkan untuk sistem operasi dengan menempatkan .VolumeIcon.icnsfile di folder root volume di partisi EFI.

Cara Pertama.

Catatan: Di sini, rEFInd masih digunakan, tetapi bukan sebagai pengganti untuk Startup Manager. Anda akan dapat menggunakan kata sandi firmware. Faktanya, tidak ada menu resi yang ditampilkan. Boot manager yang baru saja diam-diam mem-boot grub (yang mem-boot Ubuntu).

  1. Unduh resEnd dari situs web SourceForge ini . Saya menganggap file yang diunduh bernama refund-bin-0.11.2.zipdan file ini diunduh ke ~/Downloadsfolder Anda .
  2. Buat partisi EFI baru. Instruksi diberikan di bagian "Menambahkan Partisi EFI".
  3. Unduh perangkat lunak Boot Manager rEFInd dari situs web SourceForge ini .
  4. Instal rEFInd ke dalam volume pada partisi EFI yang baru.

    cd  ~/Downloads/refind-bin-0.11.2
    ./refind-install  --usedefault  /dev/disk0s3
    
  5. Lepas dan pasang partisi EFI baru, dengan memasukkan perintah berikut.

    diskutil  unmount  disk0s3
    sudo  diskutil  mount  disk0s3
    

    Partisi EFI baru akan memiliki nama volume EFI2.

  6. Konfigurasikan aplikasi TextEdit. Buka TextEdit, lalu arahkan ke jendela "Preferences ...". Hapus centang semua "Opsi", seperti yang ditunjukkan di bawah ini. Setelah selesai, keluar dari TextEdit.

    y1

  7. Gunakan perintah di bawah ini untuk menavigasi ke folder yang berisi refind.conffile.

    cd  /Volumes/EFI2/EFI/BOOT
    

    Buat salinan cadangan dari file ini.

    cp  refind.conf  refind.conf.orignal
    

    Buka file di aplikasi TextEdit.

    open  -e  refind.conf
    
  8. Dalam volume ini, edit EFI/BOOT/refind.conffile untuk secara diam-diam mem-boot grub (yang akan mem-boot Ubuntu). Ini dapat dilakukan dengan menambahkan baris berikut ke akhir refind.conffile. Anda harus bisa memotong dan menempelkan garis-garis ini. Setelah selesai, simpan perubahan, lalu keluar dari 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. Lepaskan volume nama baru EFI2.

    diskutil  unmount  disk0s3
    

Pro: Ubuntu tidak terpengaruh, jadi setiap pembaruan Ubuntu tidak akan membutuhkan perhatian.

Cons: Anda perlu menggunakan boot manager pihak ketiga.

Jalan Kedua.

  1. Buat partisi EFI baru. Instruksi diberikan di bagian "Menambahkan Partisi EFI".
  2. Pasang partisi EFI asli dan baru, dengan memasukkan perintah berikut.

    sudo  diskutil  mount  disk0s1
    sudo  diskutil  mount  disk0s3
    

    Partisi EFI asli akan memiliki nama EFIdan partisi EFI baru akan memiliki nama EFI2.

  3. Di volume baru bernama EFI2, buat folder EFI/ubuntudan EFI/boot, dengan memasukkan perintah berikut.

    mkdir  -p  /Volumes/EFI2/EFI/ubuntu
    mkdir  -p  /Volumes/EFI2/EFI/boot
    
  4. Salin file grub.cfgdan grubx64.efike volume baru bernama EFI2. Perintah yang dibutuhkan diberikan di bawah ini.

    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: Anda tidak perlu menggunakan boot manager pihak ketiga.

Cons: Jika grubx64.efiatau grub.cfgdiperbarui, Anda harus menyalin file-file ini secara manual ke volume baru bernama EFI2.

Menambahkan Ikon Kustom

Langkah-langkah di bawah ini akan menambahkan ikon Ubuntu berikut ke Startup Menu.

os_ubuntu.png

  1. Unduh koleksi ikon dari situs web sourceforge Mac icns .
  2. Gunakan aplikasi Finder untuk membuka file yang diunduh mac-icns.dmg. Saya menganggap file ini diunduh ke ~/Downloadsfolder Anda .
  3. Pasang volume bernama EFI2dengan memasukkan perintah berikut.

    sudo  diskutil  mount  disk0s3
    
  4. Gunakan aplikasi Finder untuk menyalin os_ubuntu.icnsfile ikon ke folder root volume bernama EFI2. Atau, Anda dapat menggunakan perintah di bawah ini.

    cp  /Volumes/mac-icns/os_ubuntu.icns  /Volumes/EFI2/.
    
  5. Ubah nama os_ubuntu.icnsfile ikon menjadi .VolumeIcon.icns. Ini dapat dilakukan dengan memasukkan perintah berikut.

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

    Catatan: File yang dimulai dengan titik ( .) biasanya tidak muncul di jendela aplikasi Finder.

  6. Gunakan aplikasi Finder untuk mengeluarkan partisi Sistem EFI dengan nama volume EFI2. Atau, Anda dapat menggunakan perintah di bawah ini untuk melepas volume.

    diskutil  unmount  disk0s3
    
  7. Gunakan aplikasi Finder untuk mengeluarkan volume bernama mac-icns.

Menambahkan Partisi EFI

Catatan: Di bawah ini didasarkan pada output dari diskutil listyang Anda berikan dalam pertanyaan Anda.

Saat di-boot ke macOS, masukkan perintah di bawah ini di jendela aplikasi Terminal.

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

Jika Anda membutuhkan saya untuk memperluas langkah-langkah di atas, beri tahu saya.


Sayangnya, solusi pertama bukan yang saya inginkan, dan yang kedua tidak berhasil sama sekali.
kouwei32

Solusi kedua didasarkan pada solusi terbukti yang saya posting sebelumnya. Banyak pengguna lain telah berhasil menggunakan solusi ini. Lihat di sini dan di sini .
David Anderson

1
Mungkin saya tidak memberikan detail yang cukup. Misalnya, dalam kasus Anda, Anda harus membuat partisi EFI baru. Ini tidak bisa menjadi partisi yang diformat FAT32 normal. Ini harus berupa partisi EFI tempat GUID di GPT berada C12A7328-F81F-11D2-BA4B-00A0C93EC93B.
David Anderson

Saya sudah memiliki partisi EFI. Sudah mencoba 3 kali dan tidak berhasil.
kouwei32

Anda dapat memiliki sebanyak mungkin partisi EFI yang Anda butuhkan. Dalam kasus Anda, Windows sudah menggunakan folder EFI / boot di partisi EFI Anda. Inilah sebabnya mengapa Anda membutuhkan partisi EFI kedua.
David Anderson
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.