Re: loader.efi of 13.1

From: Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp>
Date: Wed, 31 Aug 2022 13:56:16 UTC
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から起動したいものを
選べなさそうですが、可能ですか?

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?

> 
> 
> > > # 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>