【追記:2020/01/16】当記事は光ちゃ! ubuntu Desktop版 (導入:マルチブート)にまとめています。(1) iMacとLinux (Ubuntu 18.04 LTS)デュアルブート-構想編-でmacosとWindows、そしてLinux(Ubuntu)のトリプルブートが実現したんですけど、肝心な所、書き損じました。
あれからmacosもしくはWindowsのアップデートなどでStartup ManagerからLinux(Ubuntu)が消えて、起動出来なくなる現象に当たりました。ネットで調べるとブートマネージャーrEFIndを利用している方が多く見られるけど、macosの更新でrEFIndが立ち上がらなくなり再インストールしないといけないらしく、面倒なのでパス。私はあれこれ調べて、やっと対処法を見つけました。
Ubuntuであれ、Linuxをmacosパソコンにインストールすると、通常Macパソコンの内臓ディスクの先頭パーティションにある、EFIシステムパーティションにgrub
/Volumes/EFI/EFI/ubuntu/grubx64.efi等がインストールされます。
Macパソコンに電源を入れ、optionキーを押し続けると、Startup Manger画面が出て、そこからMacもしくはWindowsを選択して、OSが立ち上がるんですけど、そのStraup Managerはファームウェアに含まれています。なので、そのファームウェアであるEFIをどこにあるか、diskutilコマンドのlistオプションを実行すると
内臓ディスクの先頭パーティション(←外付けHDDか起動出来ても必ず内臓HDDです)
disk0s1である事がわかります。
それからmacosのブートローダーは、systemd-boot で Apple のブートローダーを使う (推奨) (Arch Linuxサイト)を見ると、
Apple の EFI ブートローダーは EFI システムパーティションに存在する /EFI/BOOT/BOOTX64.EFI という .efi ファイルを読み込みます。・・・多分、Macのファームウェアは内臓であれ、外付けであれ、各ドライブの"\EFI\BOOT\BOOTx64.EFI"ファイルがあれば、起動時、拾って、Startup Manger画面上、ラベルの付いたアイコンを表示してくれる仕組みかなと推測できるので、インストールされたUbuntuのGRUBファイルの名前(grubx64.efi)を変えて、そこにコピーしたらいいって事ですね。これで確信を持てたので、以下を実行しました。
(1) EFIファイルのあるディスクとマウントする。(sudoコマンドを付けないとエラーが出ます。続いてroot権限のパスワードも)
# sudo diskutil mount disk0s1(2) Macのファームウェアから読み取れるように、まずBootディレクトリを作成する。
Password:
$ mkdir /Volumes/EFI/EFI/Boot(3) UbuntuのGRUBファイル(grubx64.efi)の名前を変えてコピーする。
$ cp /Volumes/EFI/EFI/ubuntu/grubx64.efi /Volumes/EFI/EFI/Boot/bootx64.efi(4) Startup Manager画面上にUbuntuのアイコンが現れるようMac icnsから"mac-icns.dmg"ファイルをダウンロード後、ダブルクリックする
(5) 以下でUbuntuアイコンファイルをEFIシステムパーティションに追加します。
$ cp /Volumes/mac-icns/os_ubuntu.icns /Volumes/EFI/.VolumeIcon.icns(6) EFIファイルのあるディスクをアンマウントする。
$ diskutil unmount disk0s1
早速、再起動して、optionキーを押し続けると、Ubuntuアイコンが出た!!
あれっ?ラベルが「Windows」??クリックするとUbuntuが無事起動したので、まあいいか(笑)