3.4 2面目のFreeBSD領域からの起動方法

2017年7月1日

 第1項で Windows と FreeBSD のデュアルブートが出来ましたが、FreeBSD はもう一面個別環境を作っておくとバージョンアップ時のテスト等で既存環境を壊すことなくテスト出来て便利です。
 既存エリアの後ろに同様に、EFI,SWAP,UFS(/) とサイズの小さい領域を確保しインストールしました。最終的なパーティションの構成は以下の様になっています。

これで、rEFInd -> パーティション4の boot1.efi -> パーティション7のFreeBSD 起動を目論んだのですが、見事撃沈。いろいろ調べてみると boot1.efi は最初に見つかった UFS/ZFS の起動可能パーティションの loader を起動するとの事。いくらやってもパーティション3の1面目が起動されます。(ガックリ)

 あちこちググるとこちらで起動するパーティションの選択を行える様にするパッチを出されており、ありがたく頂いてきました。
 パッチを boot1 へあて make して出来た boot1.efi をパーティション4のEFI領域へ名前を変えてコピーします。

 リブートし、rEFInd から 2面目の FreeBSD を選択すると以下の様に起動パーティションの選択がブート時に行える様になりました。

 UFS の領域を2つ認識しており、0(1面目)、1(2面目)で選択出来ます。(2番目のEFIパーティションも不要になりますね。)


 上記は、2016/4 に新PCの環境構築時に行い、大変有意義なパッチに助けられました。
 直近のお家サーバのOSバージョンアップ後、rEFInd で使える UFS と ZFS の EFI ドライバがないか調べているとこんなポストを見つけました。
 どうもここに UFS のドライバがあるらしい。早速伺い、UFS2.efi と ZFS.efi を頂いて来ました。(ライセンスはGPLv3との事)
 両ドライバを rEFInd のドライバディレクトリへコピーします。rEFInd は起動時に自動でドライバディレクトリ内のドライバを組み込むので設定は不要です。次に 2面目の /boot/loader.efi を起動する様に rEFInd.conf へエントリを追加します。

 volume に指定するのはパーティションラベルの方が良いのですが、今回もGUID にしてしまいました。FreeBSD で GUID を調べるのは以下の様に gpart list で行えます。

 リブートします。追加ドライバの読み込みと初期化に時間がかかるのか、メニュー画面が出るのが遅くなりました。

追加したアイコンをクリックすると、無事 loader.efi が起動し、FreeBSD の起動メニュー画面が出ました。立ち上げ後、本当にパーティション7から起動しているか、mount 状況で確認します。

【参考にさせて頂いたサイト様】
金魚とレーザー光線:UEFI FreeBSDでブートパーティション選択 その2
 有意義なパッチをありがとうございます。
BSD reddit:UEFI multibooting: FreeBSD and DragonFly BSD
Free Software EFI/UEFI file system drivers
 efi ドライバの配布元
archlinux:rEFInd, UEFI
 日本語の為、読みやすく勉強になります。


2016/04/12 作成
2017/02/28 ufs/zfs.efi ドライバによるブートを追記一部修正


FreeBSDへ  サイトTOPへ

Posted by null-a