あれから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)を変えて、そこにコピーしたらいいって事ですね。これで確信を持てたので、以下を実行しました。
【端末エミュレータ画面】
# sudo diskutil mount disk0s1
Password:
【端末エミュレータ画面】
$ mkdir /Volumes/EFI/EFI/Boot
【端末エミュレータ画面】
$ cp /Volumes/EFI/EFI/ubuntu/grubx64.efi /Volumes/EFI/EFI/Boot/bootx64.efi
(※)画像をクリックするとより大きい画像が出ます。
【端末エミュレータ画面】
$ cp /Volumes/mac-icns/os_ubuntu.icns /Volumes/EFI/.VolumeIcon.icns
【端末エミュレータ画面】
$ diskutil unmount disk0s1
早速、再起動して、optionキーを押し続けると、Ubuntuアイコンが出た!!
(※)画像をクリックするとより大きい画像が出ます。
あれっ?ラベルが「Windows」??クリックするとUbuntuが無事起動したので、まあいいか(笑)