対象とするUbuntuのバージョン
- UEFIでインストールされているUbuntuすべて
はじめに
ここではUEFI対応Boot Manager "rEFInd" のインストール方法を説明します。
"rEFInd"は対応していればインストールされているOS等を自動的に認識し、グラフィカルな画面で選択し起動が可能です。余談ですが2013-10月現在、要望のバグ報告もなされています。
参考:[needs-packaging] rEFInd
2014-05-16に、rEFIndのmaintainerであるRoderick Smith氏によりPPAが公開されました。
ubuntu 12.04からのサポートであり、debパッケージによる導入となります。
各種ファイルシステムのドライバーも同時に導入され、「NVRAMに登録する方法」となります。
$ sudo apt-add-repository ppa:rodsmith/refind $ sudo apt-get update $ sudo apt-get install refind
オープンソースのUEFI Shellや、UEFIから直接起動可能なMemTest86 V5.0.0 Free Edition(2013-12-03リリース)も起動できるのを確認しています。
rEFIndは、rEFItからforkされたUEFI対応Boot Managerで、fork元であるrEFItは、2010年3月以降メンテナンスされていません。(rEFItはubuntuの公式レポジトリには存在しています。)
rEFIndの起動画面
- (1)は自動認識された起動可能なOS
- (2)は自動認識されたオープンソースのUEFI Shell
(3)は自動認識されたMemTest86 V5.0.0 Free Edition
注意事項
Ubuntuやその他のOS等がUEFIモードでインストールされているのが前提であり、インストール自体はUbuntu上から行ないます。
Secure Bootにも対応していますが、OFFにしている事を前提に説明します。
インストールする"rEFInd"は、Ver 0.7.4を使用して説明します。
インストール方法は、"スクリプトによるコマンドライン"からの場合と、"Debianパッケージ"を使用した場合を説明します。
インストール
The rEFInd Boot Managerページの"Getting rEFInd"には以下の物が用意されています。
A binary zip file: スクリプトによるコマンドラインからのインストールをする場合。
A binary RPM file: RPMベースのパッケージ(redhatやfedora等)
A binary Debian package: Debianベースのパッケージ(debianやubuntu等)
A CD-R image file: isoファイルをCD-Rに焼き、ブートCDとして使う場合。
A USB flash drive image file: imgファイルをUSBに書き込み、ブートUSBとして使う場合。
- その他、一部特殊なビルド環境が必要になりますがソースファイル等。
スクリプトによるコマンドラインからのインストール
NVRAMに登録する方法と、登録しない方法が選べます。
又、他のファイルシステムへアクセスする為のドライバーをインストールするオプション等もあります。スクリプトによるインストールの他のオプションはホームページのドキュメントや添付されているドキュメントを参照して下さい。
登録する方法では、"起動デバイスの選択画面"に"rEFInd Boot Manager"が表示されるので、順序を入れ替えて常に"rEFInd"から起動する様に設定できます。
NVRAMの登録情報とは、"起動デバイスの選択画面"に表示される"ubuntu"や"Windows Boot Manager"といったOS等の登録情報の事です。
- 登録しない方法では、"起動デバイスの選択画面"から"rEFInd"をインストールした"EFIシステムパーティション"の存在するHDDを選択して起動する必要があります。
「NVRAMに余計な登録情報を増やしたく無い」、「リムーバブルデバイス上のOS等を起動する時だけで良い」といった常時rEFIndから起動する必要が無い場合に選びます。
「NVRAMの登録情報が読み込めない」又は「NVRAMに登録情報が無い」場合でもUEFI Firamwareの仕様により、rEFIndを起動する事ができる利点もあります。
NVRAMに登録する方法
UbuntuのバージョンによってはLiveCD/DVDに含まれるカーネルのバグにより、NVRAMに登録できない場合があります。
rEFIndを導入する前に、必ず全てのアップデートを適用しましょう。
又、"ext4"ファイルシステムへアクセスする為のドライバーがインストールされます。
その為、UEFI用"*.efi"ファイルの他にカーネル自体もrEFIndの起動画面で認識されます。A binary zip fileからzipファイルをダウンロードし、適当なディレクトリ(半角英数字)にファイルを移動します。
端末を開き、ダウンロードしたファイルのあるディレクトリへ移動し、次のコマンドを実行する。
$ unzip refind-bin-0.7.4.zip (ファイルの展開) $ cd refind-bin-0.7.4 (展開したディレクトリへ移動) $ sudo ./install.sh (EFIシステムパーティションへインストール)
この作業で"/boot/efi/EFI/refind/"へ"refind_x64.efi"としてインストールされ、NVRAMに"rEFInd Boot Manager"が登録されます。
又、"/boot/refind_linux.conf"が作成され、カーネルを直接起動する場合の設定情報等が記載されます。
"Boot with standard options" "ro root=UUID=xxxxxxxxxx quiet splash" "Boot with minimal options" "ro root=UUID=xxxxxxxxxx" "Boot to single-user mode" "ro root=UUID=xxxxxxxxxx quiet splash single" ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ サブメニューの項目名 カーネルの場所やオプション情報
カーネルの起動オプションを変更したければ、このファイルを編集すればrEFIndからカーネルを直接起動する場合のみに反映されます。
又、以下の様に項目を増やす事も可能です。
例: "text mode"と"recovery mode"を追加した場合 "Boot with standard options" "ro root=UUID=xxxxxxxxxx quiet splash" "Boot with minimal options" "ro root=UUID=xxxxxxxxxx" "Boot to single-user mode" "ro root=UUID=xxxxxxxxxx quiet splash single" "Boot with text mode" "ro root=UUID=xxxxxxxxxx text" "Boot to recovery mode" "ro root=UUID=xxxxxxxxxx recovery nomodeset"
rEFIndから起動したいカーネルにカーソルを合わせて"F2"を押すとサブメニューとして表示されます。
サブメニューを表示しないで起動すると"Boot with standard options"で起動します。
再起動して確認しましょう。
- インストール先のrefind.confファイルを編集すれば、表示解像度やフォント、動作を変更できます。
NVRAMに登録しない方法
rEFIndを導入する前に"/boot/efi/EFI/BOOT/"ディレクトリが存在しない事を確認しておきましょう。
存在してもディレクトリ内のファイルが不要ならば構いませんが、そうでない場合はrEFIndがbootx64.efiファイルを上書きしてしまいます。
又、オプション"--alldrivers"を指定しないと、ドライバーファイルはインストールされません。
後から"/boot/efi/EFI/BOOT/drivers_x64/"ディレクトリを作成し、必要なドライバーファイルだけをコピーしてNVRAMに登録する方法に記述した"/boot/refind_linux.conf"を作成すれば利用可能です。
ドライバーファイルはzipファイルから展開したディレクトリ内の"refind/drivers_x64/"にあります。A binary zip fileからzipファイルをダウンロードし、適当なディレクトリ(半角英数字)にファイルを移動します。
端末を開き、ダウンロードしたファイルのあるディレクトリへ移動し、次のコマンドを実行する。
$ unzip refind-bin-0.7.4.zip (ファイルの展開) $ cd refind-bin-0.7.4 (展開したディレクトリへ移動) $ sudo ./install.sh --usedefault /dev/sd** (EFIシステムパーティションへインストール) "**"はEFIシステムパーティションのデバイス名 (例: /dev/sda1)
この作業で"/boot/efi/EFI/BOOT/"へ"bootx64.efi"としてインストールされます。
再起動して"起動デバイスの選択画面"から"EFIシステムパーティション"の存在するHDDを選択すればrEFIndが起動します。
- インストール先のrefind.confファイルを編集すれば、表示解像度やフォント、動作を変更できます。
Debianパッケージによるインストール
NVRAMに登録する方法となります。
又、"ext4"ファイルシステムへアクセスする為のドライバーがインストールされます。
その為、UEFI用"*.efi"ファイルの他にカーネル自体もrEFIndの起動画面で認識されます。UbuntuのバージョンによってはLiveCD/DVDに含まれるカーネルのバグにより、NVRAMに登録できない場合があります。
rEFIndを導入する前に、必ず全てのアップデートを適用しましょう。A binary Debian packageからdebファイルをダウンロードし、適当なディレクトリにファイルを移動します。
端末を開き、ダウンロードしたファイルのあるディレクトリへ移動し、次のコマンドを実行する。
$ sudo dpkg -i refind_0.7.4-1_amd64.deb
この作業で"/boot/efi/EFI/refind/"へ"refind_x64.efi"としてインストールされ、NVRAMに"rEFInd Boot Manager"が登録されます。
再起動して確認しましょう。
- インストール先のrefind.confファイルを編集すれば、表示解像度やフォント、動作を変更できます。
refind.confの設定例
- 基本的で簡単な物は以下の3つです。
timeout 20 何もしないと、rEFIndが選択している物をブートするまでの時間(秒数) font myfont.png rEFIndで使うフォントの指定(ubuntuのフォントを変換して使用可能) resolution 800 600 rEFIndを表示する画面解像度
- コメントアウトされている物は外せば有効になります。
Ubuntuで使われているフォントを使用する方法
解像度を変えるとフォントが見づらくなる場合がありますが、Ubuntuのフォントを変換してrEFIndで使用可能にするスクリプトが添付されています。
標準で数種類のフォントが用意されているので、それをrEFIndをインストールしたディレクトリへコピーし、refind.conf内の"font"で指定しても良い。
zipファイルをダウンロードした場合は展開したディレクトリ内の"fonts/mkfont.sh"が変換スクリプトです。
debでインストールした場合は"/usr/share/refind-x.x.x/fonts/mkfont.sh"が変換スクリプトです。
refind-x.x.xの部分はバージョン番号が入ります。
カレントディレクトリにmkfont.shと変換元のフォントがある場合の操作。
$ ./mkfont.sh LiberationMono-Bold.ttf 24 -1 LiberationMono-Bold-24.png
画面解像度を1366x768にした場合は、24ポイントくらいのサイズが見やすいと思います。
カレントディレクトリにrEFInd用のフォントファイルである"*.png"が出来上がります。
作成したフォントファイルをrEFIndをインストールしたディレクトリにコピーし、refind.conf内の"font"で指定します。
備考
オープンソースのUEFI Shell(64bit)をrEFIndから起動したい場合。
shellx64.efiとして/boot/efi/へコピーまたは移動します。
これだけでrEFIndが自動的に認識し、コマンドラインのアイコンが登録されます。MemTest86 V5.0.0 Free Edition(2013-12-03リリース)をrEFIndから起動したい場合。
MemTest86からCDイメージかUSBイメージをダウンロードする。
CDかUSBにイメージを書き込み、/efi/boot/の中にあるファイルを全てHDD内の/boot/efi/EFI/tools/memtest86/へコピーか移動する。
CDイメージを直接マウントして該当ファイルを取り出しても構いません。
これだけでrEFIndが自動的に認識し、メモリーのアイコンが登録され、起動可能となります。