Re: loader.efi of 13.1

From: Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp>
Date: Sun, 11 Sep 2022 23:08:41 UTC
青木@名古屋です。

On Sun, 11 Sep 2022 15:29:44 +0900
masa@amogha.jp (丸山直昌) wrote:

> 丸山です。
> 
> Sun, 11 Sep 2022 10:36:08 +0900
> Tomoaki AOKI <junchoon@dec.sakura.ne.jp> writes:
> 
> >> 1. ディスクからの起動で、ディスク内に freebsd-ufs あるいは freebsd-zfs
> >>    のパーティションが複数存在する場合にはパーティション番号が一番小さい
> >>    freebsd-ufs, freebsd-zfs が Aデバイスとして選択される
> >
> >さらにいうと、ZFS・UFS両方存在する場合、デフォルトでは
> >ZFSが優先されます。
> 
> 違います。実験結果1.1を見てください。
> 
>     ada0p4(ufs, 純正ロゴ)
>     ada0p6(ufs, 偽ロゴ)
>     ada0p7(zfs, 偽ロゴ)
> 
> となっていますが、loader.efi が読んでいるには ada0p4 です。Welcome画面に
> は純正ロゴが表示されるので、ada0p7は読まれていません。
> 
> 信じられないのなら、ご自分でも実験してみては如何ですか。

そこを見落としていました。
では、boot1.efiとloader.efiで挙動が異なるということですね。

当初はloader.efi単独で使うのではなくESP内のboot1.efiから
起動パーティション(ZFSならプール)内のloader.efiを起動する
形で、その後boot1.efiを将来廃止するためESP内のloader.efiから
起動できるように方向性が変わっていたため、boot1.efiの挙動を
引き継いでいると思い込んでいました。

 ※現在、loader.efiにはBug 207940 [1]の最新のパッチを適用した
  boot1.efiのような起動パーティション選択機能が無く不便である
  ことと、loader.efiは比較的頻繁に更新されていて対応が面倒な
  こともあり、当該パッチを当てたboot1.efiを使い続けています。

なお、当初使い物にならなかった(トラブル時にUSBメモリのインス
トール環境から起動してRescueしようとしても強制的に1台目内蔵
ドライブからしか起動しようとしなかった)boot1.efiを修正して
貰うため開発者とやりとりしていた際、ZFS優先に疑問を感じた
こともありましたが、Root on ZFSでなければ基本的にZFSのプール
内には/boot/loader.efiは無く、Root on ZFSならUFSが先にあっても
ZFSから起動したいもの、と納得できた記憶があります。

 ※UFSからRoot on ZFSに移行したいが保険をかけたい場合、
  通常はその挙動が有り難いものと思います。
  修正後の(現行の)デフォルトのboot1.efiではまず最初に
  それ自体が起動された物理ディスクからの起動を試みる
  ので、トラブル時にも対処できますし。

> --------
> 丸山 直昌 まるやま なおまさ
> メールアドレス: masa@amogha.jp
> 


-- 
青木 知明  [Tomoaki AOKI]    <junchoon@dec.sakura.ne.jp>