[FreeBSD-users-jp 96792] Re: freebsd-update -r 13.0-RELEASE upgrade

Katsuyuki Miyoshi katsu @ miyoshi.matsuyama.ehime.jp
2021年 4月 22日 (木) 04:28:23 UTC


 みよし です。

近藤和宏 <kazuhiro @ alib.jp> writes:
> ・結局のところ、zfs.ko がきちんと読み込まれているかどうかだけ?
> という感じでして……。

 zfs.ko をロードしているかどうかじゃなくて、pool が import されているか
どうかじゃないのかなと思ったりはするのですが。

 mount -t zfs しようとすればその場合でもやはり zfs.ko のロードは行われます。

 # 現時点でも確認できそうであれば
 #
 # > 諸々の結果、再起動後に single user mode に落ちた環境は
 # > ・/etc/rc.conf に zfs_enable="YES" がない
 # > ・/etc/fstab に zfs 領域の記述がある
 # > という環境でした。
 # 
 # この single user mode に落ちた時の kldstat の表示はどうでしょうか?

 R12 までは zfs.ko がロードされれば zpool import -a された状態で、よって
そのまま mount -t zfs すれば成功します。

 一方で R13 (OpenZFS) では zfs.ko がロードされても zpool import -a
された状態ではなくなりました。よってそのまま mount -t zfs するだけでは
mount できません (zpool import が必要です)。
 OS 起動時に zpool import -a をしておきたい場合は /etc/rc.conf に
zfs_enable="YES" を記述してそれによって (/etc/rc.d/zpool で)
zpool import -a を行うような仕様になったと思います。
  
 # /usr/src/UPDATING の 20200824:
 # 
 #   Pool auto import behavior at boot has been moved from the kernel module
 #   to an explicit "zpool import -a" in one of the rc scripts enabled by
 #   zfs_enable=YES. This means your non-root zpools won't auto import until
 #   you upgrade your /etc/rc.d files.
 #

> これに、hrs から頂いたコメントで
> ・zfs mount -a を rc.d/zfs が実行すると読みます
> ・fstab の段階で実行するのは mount -t zfs -a なので、こっちは読まない
> (いずれも、「読む」と言われているのは zfs.ko)

 原文が確かにこうなのか、近藤さんの解釈でこうなのかちょっとよく分か
らないのですが、私がいいように想像して書くなら

・zfs_enable="YES" の記述があって zfs mount -a を実行する場合は
  rc.d/zfs (と rc.d/zpool) が読まれます。(だから成功します)

・zfs_enable="YES" の記述がなくて rc.d/mountcritlocal で実行される
  mount -t zfs を実行するような場合には rc.d/zfs (rc.d/zpool) は読ま
  れません。(だから失敗します)
 
くらいに解釈できたりはしないでしょうか?

 ともかくこの辺りは R13 (OpenZFS) になっての変更点である事は確かですよね。

 以上、どうぞよろしくお願いいたします。

-- 
 三好勝幸 (Katsuyuki Miyoshi)


freebsd-users-jp メーリングリストの案内