Re: loader.efi of 13.1

From: Warner Losh <imp_at_bsdimp.com>
Date: Sat, 03 Sep 2022 22:01:06 UTC
On Wed, Aug 31, 2022 at 7:56 AM Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
wrote:

> On Wed, 31 Aug 2022 07:19:00 -0600
> Warner Losh <imp@bsdimp.com> wrote:
>
> > On Wed, Aug 31, 2022 at 6:09 AM Naomichi Nonaka <nao@enuenu.org> wrote:
> >
> > > 野中です。
> > >
> > > On 2022/08/31 20:11, 丸山直昌 wrote:
> > > > 丸山です。
> > > >
> > > > Wed, 31 Aug 2022 16:36:34 +0900
> > > > Naomichi Nonaka <nao@enuenu.org> writes:
> > > >
> > > >> 野中です。
> > > >>
> > > >> 13.Xまでのbootの手順は
> > > >>
> > > >> EFIファーム->EFIパーティションのboot1.efi
> > > >> ->FreeBSDパーティションの/boot/loader.efi
> > > >> ->FreeBSDパーティションのkernel
> > > >>
> > > >> という順番で実行され、loader.luaはboot1.efiがloader.efiに渡します。
> > > >>
> > > >> なので
> > > >>>     /boot/loader.efi を ada0 の efi パーティションの
> > > >>>       EFI/Boot/bootx64.efi にコピー
> > > >> ではなく、
> > > >>>     /boot/boot1.efi を ada0 の efi パーティションの
> > > >>>       EFI/Boot/bootx64.efi にコピー
> > > >> が正しいです。
> > > >
> > > > 勿論
> > > >>     /boot/boot1.efi を ada0 の efi パーティションの
> > > >>       EFI/Boot/bootx64.efi にコピー
> > > > は実験した上で先ほどのメールは書きました。
> > > >
> > > >      ZFS found the following pools: XXXXXX YYYYYYY
> > > >      UFS found 5 paritions
> > > >
> > > > というのが途中で表示されますが、結局のところ OK プロンプトで止まってしま
> > > > い、その後どうしたら良いのか私にはわかりません。先ほどのメールで
> > > > /boot/loader.efi の話だけ書いて、/boot/boot.efi の話を書かなかったのは、
> > > > 例の ish.org のブログの記事を読んでいたためと、もう一つ「インストール済
> > > > みディスク」(以下では/dev/da2)では EFI/Boot/bootx64.efi が
> > > > /boot/loader.efi と同じものだからです。(つまり13.1のデフォルトのインストー
> > > > ルは野中さん流では「正しくないインストール」ということになります。)
> > >
> > > 自分の環境はUPGRADE installした環境なので、古い構成のままだったようで
> > > す。よく確認せずに書いてしまい、すいませんでした。
> > >
> > > > ま、 boot1.efi でも loader.efi でもどっちでも良いのですが、ともかく内臓
> > > > ディスクからNEWPOOLNAME/ROOT/default をブートする方法を、ご存知の方は教
> > > > えてください。
> > >
> > > 試してはいないのですがloader.confのvfs.root.mountfromを指定してみては
> > > いかかでしょうか?
> > >
> >
> > はい。できます。bectl(8) は新しい方法です。
> >
> > ワーナー
> >
> > Yes. It can work, but bectl(8) is the newer way to manage this.
> >
> > Warner
>
> 今回のケースでは、同じドライブに新旧2つのZFS poolが存在します。
> 一方(ada0p12)は古いバージョン、もう一方(ada0p13)は13.1のものです。
> bectlで複数のRoot-on-ZFS poolのboot environmentから起動したいものを
> 選べなさそうですが、可能ですか?
>

すみません。bectl(8)は2つのzpoolsは機能ありまっせん。zpoolのpropertyのbootfsを
zpool set bootfs=path/to/boot pool-on-ada0p13使います。bootfsをzpool inherit
bootfs
pool-on-ada0p12で削除します。

解決する多くの方法があります。ここでの他の提案も機能します。

ワーナー


> This case, two ZFS pools exist in the same physical drive.
> One (ada0p12) is an older installation, and another (ada0p13)
> is the 13.1 one.
>
> bectl doesn't seem to be able to select BE from multiple Root-on-ZFS
> pools. Is it possible?
>

I'm sorry. However, bectl won't work when there are multiple pools on
one disk. You must set bootfs manually with 'zpool set' for the pool you
wish to boot, and clear it with 'zpool inherit' for the pool you do not.

The other ways I've seen in this thread (rootdev=, vfs.root.mount_from=)
also work too.

Warner


> >
> >
> > > > # zpool import -N -f -o readonly=on -R /mnt zroot
> > > > # zpool status zroot
> > > >    pool: zroot
> > > >   state: ONLINE
> > > >    scan: none requested
> > > > config:
> > > >
> > > >          NAME        STATE     READ WRITE CKSUM
> > > >          zroot       ONLINE       0     0     0
> > > >            da2p4     ONLINE       0     0     0
> > > >
> > > > errors: No known data errors
> > > > # zfs mount zroot/ROOT/default
> > > > # mount_msdosfs -o longnames /dev/da2p1 /mnt1
> > > > # sha256 /mnt1/efi/boot/bootx64.efi /mnt/boot/loader.efi
> > > > SHA256 (/mnt1/efi/boot/bootx64.efi) =
> > > c1cdbfad80226e4203744dec17bc4aeb0b226f87821ba169cee82e6c2b5e2181
> > > > SHA256 (/mnt/boot/loader.efi) =
> > > c1cdbfad80226e4203744dec17bc4aeb0b226f87821ba169cee82e6c2b5e2181
> > > > # ls -l /mnt1/efi/boot/bootx64.efi /mnt/boot/loader.efi
> > > > -r-xr-xr-x  2 root  wheel  892928  5月 12 17:29 /mnt/boot/loader.efi
> > > > -rwxr-xr-x  1 root  wheel  892928  8月  7 23:49
> /mnt1/efi/boot/bootx64.efi
> > > >
> > > > --------
> > > > 丸山 直昌 まるやま なおまさ
> > > > メールアドレス: masa@amogha.jp
> > > >
> > >
> > >
> > >
>
>
> --
> 青木 知明  [Tomoaki AOKI]    <junchoon@dec.sakura.ne.jp>
>