rEFIndを使い、Mac miniと外付けHDD/SDD上のLinuxでトリプルブート環境下で、ときどきrEFIndが起動しなくなり、自動的に外付けHDD/SDD上のLinux(私の環境ではLinux Mint)が起動されてしまうという現象が起こります。
過去の投稿では、これはrEFInd側の問題に違いないと思い、rEFIndをアップグレードすることで、この問題は解決すると思っていましたが、これは根本的な解決方法ではなかったようです。
この問題が起きたときは、Altキーを押しながらMacを再起動し、Mac OS Xのインストールされたパーティションを選び、そこからrEFIndを再インストールするという作業が必要です。
少々面倒でしたが、いつかはrEFInd側で解決されるだろうと思って待っていましたが、これがなかなか解決しませんでした。
ところが、これが意外に簡単な方法で解決しました。以下そのご紹介です。
MX Linux 18.3のお試しインストール中に偶然発見
MX Linuxのバージョン18のインストーラーが、UEFIに対応したということを知り、Mac miniの外付けHDDにお試しインストールしてみたいと思い立ったのが、事の始まりでした。
そのこと自体は特別なことではなく、以前は、Manjaro Linux 18でも挑戦しています。残念ながら、インストールディスクまでは認識できましたが、インストール完了までには至りませんでした。
まず始めに公式ページからISOイメージをダウンロードし、インストールDVD/USBドライブを作成します。このDVD又はUSBドライブをセットした状態で、ALTキーを押したまま、Macの起動すると、以下のような画面が現れます。

ここでEFI Bootを選択すれば、MX LinuxでMacが立ち上がります。

初期画面で、言語とタイムゾーンを選択する。上記のスクリーンショットでは、F2キーとF3キーで、それぞれ選択できるようになっていますが、Mac miniへのインストールの場合は、Fキーからダイレクトに選択できません。代わりにText Menuという項目が表示されますので、これによって設定を行います。少し面倒に見えますが、LanguageとTimezone以外は、デフォルトを選択(要するにエンターキーを押すだけ)するだけです。

続いて、デスクトップ上のInstalerアイコンをダブルクリック。

キーボードレイアウトを選択して、Nextボタンで次に進みます。

どのディスクにインストールするかを指定して次へ。 パーティションの編集が必要であれば、ここでRun partition tool(パーティション編集アプリケーションGpartedが立ち上がる)を選択します。

rootやswapのバーティションを指定して、次に進むとインストールが始まります。
GRUBを外付けHDDのどこにもインストールしないという選択
インストール中に、GRUBのインストール先の指定します。ここでは、Install GRUB for Linux and Windwsの前のチェックボックを空白にして先に進みます。

これは、どこにもGRUBをインストールしないという選択です。Ubuntu系のインストーラーでは、GRUBをどこにもインストールしないという選択は基本的にはありません。GRUBをHDDの先頭又はパーティション(普通はルートパーティション)のどこかにインストールしならないことになっています。
実は、私も最初からこれで行けるという確証などありませんでした。「GRUBがインストールされていなくてもrEFIndがMX Linuxのカーネルを見つける筈だ。まあ、失敗したら、もう一回最初からインストールやり直せばいいか」という軽い気持ちで、このチェックを外しました。
ここから先は通常のインストールと何ら変わりはありまりせん。必要ない方はここを読み飛ばして次の項目に行ってください。

コンピューターの名前やグループ名を設定します。

続いて、言語やタイムゾーンを設定します。

ユーザーアカウントとルートアカウントを設定します。

ここで、インストールは完了です。
ふと気づけばrEFIndとGRUB間の問題が解消していた
インストールが完了したら、再起動し、外付けHDDからMacを立ち上げます。

rEFIndが外付けHDDにインストールしたMX Linuxを認識(Debianのロゴマーク)しているので、これを選択します。無事にMX Linuxが立ち上がれば、セットアップは完了です。
これで MX Linux がうまく立ち上がれば、インストールの途中で、GRUBをどこにもインストールしないという選択をしても、問題はないということが分かります。
そして、一週間ほど経ったある日、Mac miniでMX Linuxを使うとき、rEFIndが起動しなくなるという問題が一切起きていないことに気がつきました。
最初は、MX linuxがDebianベースだからだと勝手に解釈していましたが、「これってもしやGRUBをどこにもインストールしなかった」からではないかということに思い至り、ならば、Ubuntu系でも試してみようということになりました。
UbuntuベースのKDE neonでも試してみた
Ubuntu系の代表として、今回はUbuntu 18.04 LTSベースのKDE neonを試しました。KDE neonのインストール手順については、以前の投稿「Ubuntu 18.04 LTSベースのKDE neon 5.16.0がいい感じに仕上がっている」でも触れているので、ここでは省略します。
前述のとおり、Ubuntu系のインストーラーでは、GRUBをどこにもインストールしないという選択はありませんので、一旦は外付けHDDのルートパーティションにGRUBをインストールしておき、インストール完了後に、grub.cfgとgrubenvの両ファイルをリネームすることにしました。
/boot/grubに移動してmvコマンド使い、両ファイルを適当な名前にリネームします。
cd /boot/grub
sudo mv grub.cfg grub02.cfg
sudo mv grubenv grubenv02
リネーム後、再起動して、KDE neonからMacを立ち上げ、しばらく使ってみたが、rEFIndが起動しなくなるという問題は一切起こらなくなりました。やはり、この問題、rEFIndとGRUBとの間にコンフリクトが起きていたことが原因だったようです。