隠居日録

隠居日録

2016年(世にいう平成28年)、発作的に会社を辞め、隠居生活に入る。日々を読書と散歩に費やす

FreeBSD 14.0への更新 その2

ラップトップPCを更新したが、今度は全く問題なく更新できた。忘備録として記録しておく。

リリースノートによると、zpoolの更新はfreebsd-updateではおこなわれないようだ。

After a system upgrade, but before doing a zpool upgrade, the boot loader on the ESP must be updated, or the system may become unbootable.

freebsd-update自体は何の問題もなく実行できて、更新は完了した。そして、次はブートローダーの更新だ。リリースノートはEFIの事を書いているが、ブート方式はBIOSもある。どちらを使っているかは"sysctl machdep.bootmethod"で分かる。自分のマシンはBIOSだった。また、"gpart show"を実行すると、どのようなディスクが接続しているかもわかる。このPCはインストーラーが設定したままを使っているので、

=>        40  1953525088  ada0  GPT  (932G)
          40        1024     1  freebsd-boot  (512K)
        1064         984        - free -  (492K)
        2048     4194304     2  freebsd-swap  (2.0G)
     4196352  1949327360     3  freebsd-zfs  (930G)
  1953523712        1416        - free -  (708K)

のように表示され、ada0の1番目のパーティションブートローダがあるのがわかる。実際の更新の方法は以下のページに書かれている。

なので、以下のコマンドを実行した。

gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0

ファイルの日付を見ると/boot/pmbrは更新されていないようだが、一応書き込んでおいた。これで更新されたはずだ。色々調べたが、ブートローダーのバージョンの表示方法が見つからなかったので、あとは信じて再起動するしかない。再起動すると、立ち上がってきた。

次に、"zpool status"を実行すると、次のように出力された。

status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 00:09:57 with 0 errors on Sat Nov 18 14:39:46 2023
config:

        NAME          STATE     READ WRITE CKSUM
        zroot         ONLINE       0     0     0
          ada0p3.eli  ONLINE       0     0     0

errors: No known data errors

コマンドの出力には"zpool upgrade"で有効にできるようなことが書かれているが、実際には"zpool upgrade zroot"を実行しなければ、有効にならなかった。

This system supports ZFS pool feature flags.

Enabled the following features on 'zroot':
  edonr
  zilsaxattr
  head_errlog
  blake3
  block_cloning
  vdev_zaps_v2

Pool 'zroot' has the bootfs property set, you might need to update
the boot code. See gptzfsboot(8) and loader.efi(8) for details.

この後、もう一度"zpool status"を実行すると、いつものように表示された。フラグの変更だけなので、処理自体はすぐに終わるようだ。

  pool: zroot
 state: ONLINE
  scan: scrub repaired 0B in 00:09:57 with 0 errors on Sat Nov 18 14:39:46 2023
config:

        NAME          STATE     READ WRITE CKSUM
        zroot         ONLINE       0     0     0
          ada0p3.eli  ONLINE       0     0     0

errors: No known data errors

このあともう一度再起動して、正常に起動してくるのを確認した。