ASRock マザボにて、FreeBSD11をUEFI Bootさせる
概要
2016年夏ごろ、購入後、大分経ったAsrockマザボにFreeBSD11をいれてUEFI Bootさせようとしたのですが、どうもうまく行きません。暫く、BIOS Bootで起動していたのですが、ふと参考になる記事を見つけ、UEFI Bootに成功しました。そのときのメモです。
参考記事によると、FreeBSDをインストール時にUEFIのBootメニューに登録されないことがあるとのことです。そのため、ここでは別のLinuxシステムからUEFIのBootメニューに登録する作業をします。
大まかな環境は、以下の通りです。
- OS: FreeBSD 11.0-RELEASE
- フォーマット: ZFS (RAID1 ミラーリング)
- パーティション: GPT
- BOOT方式: BIOS+UEFIの両対応
- MB: ASRock Q2900-ITX (ファームバージョン:1.50)
- 作業用OS: Ubuntu 16.04 LTS
参考にした記事は以下の通りです。
- Asrock B85MにFreeBSD11をUEFIインストールできた話 http://carpediemjournal.blog.fc2.com/blog-entry-28.html
- UEFIモードでインストールしたがHDDから起動できない https://www.mail-archive.com/freebsd-users-jp@freebsd.org/msg00872.html
- efibootmgr その2 - UEFIブートマネージャーにブートローダーを登録する http://kledgeb.blogspot.jp/2015/11/efibootmgr-2-uefi.html
以下、Linuxを多少なりとも経験している方向けに細かい話しは飛ばします。
前作業
インストールは通常通り(FreeBSDハンドブックに従い)にインストールします。はじめはBIOSで起動します。この時点で、BootメニューからFreeBSDのUEFIメニューは見えません。
Linuxを立ち上げ、ディスクを確認する。
Linux(私はUbuntuを使いました)をディスクBoot(HDDにインストールせずに)で起動します。USBメモリでも何でもOKです。Linuxが起動したら、terminal(端末)を立ち上げます。
毎回sudoするのも面倒なので、"sudo su"でrootユーザになります。ここから、partedでディスクを確認します。
$ sudo su # parted -l
2本のHDDが、"/dev/sda"と"/dev/sdb"で認識されていることがわかります。
efibootmgrにて、FreeBSDをUEFI Bootできるようにする。
efibootmgrにて、FreeBSDをUEFIブートテーブルに登録します。
ディスクが2本あるので、片方が逝ったときのために2本とも登録しました。labelは、Bootセレクタで表示される名称です。ディスクの型番で見分けられるようにしました。
# efibootmgr --create --disk /dev/sda --part 1 --loader \\EFI\\BOOT\\BOOTX64.EFI --label "FreeBSD DT01ACA3" # efibootmgr --create --disk /dev/sdb --part 1 --loader \\EFI\\BOOT\\BOOTX64.EFI --label "FreeBSD MD04ACA3"
なんとなくUEFIブート順が気になったので修正しました。2本のHDD以外はそのままです。
# efibootmgr --bootorder 0,2,1,7,8,9,A
これで、Linuxの作業は終了です。シャットダウンして終了します。
動作確認
Bootメニューに、登録した名称が2つ出てきます。
登録した名称を選択して起動すると、画面解像度を認識してFreeBSDが起動しました。このため、UEFI Bootで起動していることが確認できます(確認できたはず…)。
※コメント投稿者のブログIDはブログ作成者のみに通知されます