MacにブートローダrEFIndを導入する

Mac PCでUbuntuやWindowsなど、OS X以外OSを起動するための必需品と言えばrEFInd。
rEFIndを用いれば、起動時にどのOSを立ち上げるかを選択できるようになります。

今回はこのブートローダーrEFIndをMacに導入する手順について説明していきます。

 

ブートローダーとは

ブートローダーとは,PCを起動する際にOSをハードディスクから起動するプログラムのことです。

macを起動すると自動的にOS Xが起動すると思いますが、macにubuntuやwindowsなどを入れ、複数のOSが混在している際に、どのOSで起動するかを選択する必要があります。
PC起動時に、どのOSを起動するかを選択する役割を担っているのがブートローダーです。

 

ブートローダrEFIndの導入

MacではStartup Managerという起動OS選択ソフトがデフォルトで備え付けられています。
起動直後(電源ボタンを押した直後)にoptionキーを押すことで起動できます。
が、Startup ManagerではUbuntuのOSを発見することはできません

スタートアップマネージャーを起動すると、以下のように起動するディスクの候補が出てきます。
しかし、UbuntuOSは選択肢に出てきていません。

どうしてこういう仕様となっているのかは分かりませんが、Ubuntu OSが見えない以上Startup ManagerでUbuntuを起動することはできません。

そこで登場するのがブートマネージャーrEFIndです。
rEFIndを使用することでMacのStartup Managerからは見えなかったUbuntu OSを立ち上げることができます。

rEFIndのダウンロード

まずはこちらのサイトからA binary zip fileをクリックしてrEFIndをダウンロードします。

http://www.rodsbooks.com/refind/getting.html

ダウンロードフォルダにrefind-bin-0.11.4というフォルダをダウンロードすることができたと思います。
バージョンは違っているかもしれませんので、各自で読み替えてください。(2019年4月現在のrefindの最新バージョンはrefind-bin-0.11.4)

筆者の環境では、Mac OS Mojave & refind-bin-0.10.8で動作することを確認しています。
(筆者がrefindを導入した時点での最新バージョンがrefind-bin-0.10.8だったため。)
(おそらく、最新バージョンのrefindでも上手くいくと思います。)

 

このフォルダの中にrefind-installという実行ファイルがあるので、それを実行すればrEFIndをインストールすることができます。
しかし、セキュリティの観点からMacを普通に起動している状態でのインストールはうまくいきません

Mac OS通常起動時にrefindのインストールを実行しようとすると、
“Could not set boot device property: 0xe00002bc”
というエラーメッセージが表示されます。
これを回避するために、Macをリカバリーモードで起動してrEFIndをインストールする必要があります。

 

リカバリーモードでの起動

セキュリティの観点から、通常起動状態でmacにrEFIndをインストールすることはできないため、
macにrEFIndを導入するためにはmacをリカバリーモードで起動する必要があります。
Macの電源を入れた直後に command + R を押し続けることで、リカバリーモードでMacを立ち上げることができます。

リカバリーモードでの起動には少し時間がかかるので、しばらく待ちましょう。

起動すると、以下のような画面が表示されます。
トップバーのユーティリティを選択し、ターミナルを起動します。

refind-installの実行

このターミナル上で先ほどダウンロードしたrefindのフォルダ内にあるrefind-installという実行ファイルを実行します。
コマンドの先頭にあるドルマークは、ターミナルで実行しますという記号ですので、実際に打ち込むのは
/Volumes~ 以降の文字列になります。

コマンド中の <username> の部分とrefindのバージョンについては各自で該当のものに置き換えてください。

インストールしますか(YES/NO) ?と聞かれるので、
Y をタイプしてエンターキーを押します。

“Installation has completed successfully.” 
と表示されて入れば、rEFIndのインストールは成功です。

インストールが成功したら、ターミナルを閉じ、一度PCを再起動しましょう。
再起動すると、起動直後に以下のような画面が出てくると思います。

このような画面となれば無事rEFIndのインストールは成功です。

ちゃんとOS XとUbuntu両方のOSが見えていることが確認できると思います。
(筆者の環境ではwindowsも入っているので、windowのアイコンも表示されています。)
あとは、起動したいOSのアイコンを矢印キーで選択し、Enterで決定します。

これで起動毎にどちらのOSで起動するかを選択できるようになりました。

ちょっとした注意事項

今回のmacOS HighSierra -> Mojaveと言うようなmacOSの大幅なアップデートを適用した場合、rEFIndが使えなくなる(起動時にrEFIndのOS選択画面が表示されずに、macOSが立ち上がってしまう)ことがあります。

その際はもう一度

  • リカバリーモードで起動
  • efind-installの実行

の手順を踏めば使えるようになります。

macOSの大幅アップデートはそう頻繁にはありませんが、このようなことが起こることを頭の片隅に入れておくと良いでしょう。

 

追記
Ubuntuでupdate upgradeをしたタイミング?でrEFIndが起動しなくなり、自動的にUbuntuで起動してしまうようになってしまうこともあるようです。
その時はもう一度Macをリカバリーモードで起動して ./refind-install を実行すればrEFIndが起動できるようになりました。

ubuntuをupgradeをするタイミングは必ず現れると思うので、この事を頭の片隅に置いておくと良いでしょう。
その都度rEFIndインストールやり直さなければいけないのは正直面倒ですが、、、。
どなたか解決策を知っている方がいらっしゃいましたら、教えていただきたいものです。

 

おまけ。クソダサいrEFIndのテーマを変更する

rEFIndはかなり便利。超便利。しかし、、、

このクソダサいデザインはなんとかならないのでしょうか・
ということでここからはおまけとして、rEFIndの背景画面やアイコンなどを変更する手順を記述していこうと思います。

まずは私のrEFIndの画面を。背景画像にはデスクトップの背景をぼかしたものを使用しています。
あぁ美しか。

EFIをマウントする

まずはじめに、EFIというボリュームをマウントします。
EFIのボリュームには、rEFIndで使用する背景画像やアイコンの画像、設定ファイルなどが格納されています。
EFIはデフォルトではマウントされていないため、MacのFinderではみることができません。
そこで、まずはEFIのマウントから始めます。

ターミナルで上記コマンドをタイプ。ディスクのリストを表示させます。

画像の青線で示されたディスクがEFIです。

適当にフォルダを作成して、以下のコマンドでEFIボリュームをマウントします。
(ここではDesktopにEFIというフォルダを作成して、そこにマウントしています。)

このdisk0s1のところは先ほど調べたEFIボリュームのIDENTIFIERが入ります。
私の場合はdisk0s1でしたが、diskutil listの結果を元にそれぞれのIDENTIFIERを入れましょう。

これでEFIのマウントは完了です。
正しくマウントできているとFinderの左のタブにEFIボリュームが出てきて、ボリュームの中身が見えるようになるはずです。

ベースとなるrEFIndのテーマを探してくる

rEFIndのテーマはググるといくつかヒットするので、それをダウンロードしてきましょう。
日本語で「rEFInd テーマ」とググるより、「rEFInd themes」と英語でググった方が色々出てくるかもしれません。

参考までに、私はrEFInd-minimalというテーマを使用しています。
https://github.com/EvanPurkhiser/rEFInd-minimal

シンプルでフラットなデザイン。こういうのが好きなんですよね。

探してきたテーマはダウンロードして(圧縮されていたら展開して)、
そのフォルダをEFIの中に放り込みます。

テーマの場所はあとでconfigファイル内で指定するのでどこでも良いのですが、
参考までに、私は/EFI/refind/themesに入れている。(themesのフォルダは作成しました。)

rEFIndのconfigファイルをいじる

次に、ダウンロードしてきたテーマをを読み込ませるために、rEFIndのconfigファイルを編集します。
EFIボリューム/EFI/refind の中には、、、

  • driver_x64
  • icons
  • keys
  • refind.conf
  • rEFInd-minimal(先ほどダウンロードしてきたテーマ)

このようなものが入っていると思います。
この中のrefind.confというものがrEFIndの設定ファイルですので、このファイルをテキストエディタで編集します。

設定ファイルのrefind.confの一番下まで移動し、次の一文を記述します。

ダウンロードしてきたテーマの中には theme.conf というconfigファイルがあるので、そのファイルをrefind.confからの相対パスで記述することで、そのテーマを読み込むことができます。

これでひとまず、rEFIndのテーマを変更することができました。

テーマの壁紙を変更してみる

まず、変更したテーマがどの壁紙を参照しているかを確認してみます。
私が使用しているrEFInd-minimalのテーマの場合、先ほどrefind.confで読み込んだtheme.confの中を読み込むと。

このような記述があります。
この一文から、rEFInd-minimalテーマはthemes/rEFInd-minimal/background.pngという背景画像を使用していることがわかります。
この一文の画像のパス変更してあげて、その画像をEFIボリュームの指定したパスに入れてあげれば壁紙が変更できます。

普段使用しているデスクトップの背景をぼかした画像をrEFIndで使用すると、統一感が出て良いのではないでしょうか。

 

皆さんも、お好みに合わせてrEFIndのアイコンやテーマを変更してみてはいかがでしょう。