ストレージプールの直下以外でRoot on ZFSする時はmountpoint=noneを忘れずに(確信)

FreeBSDのRoot on ZFSで、ストレージプールのルート以外をシステムのルートディレクトリにする時は、ストレージプールのルートのマウントポイントを殺さないと死ぬ。

これだけじゃ何の事か分からんと思うので具体例をあげると、ストレージプールztankがあり、ztank/SYSROOTにFreeBSDをインストールしたとする。 インストール終盤で、以下のようにマウントポイントを設定するわけだが、1行目のztankルートに対するマウントポイントの設定を忘れると、システムの起動でこける。

zfs set mountpoint=none ztank              # 忘れがち!!
zfs set mountpoint=legacy ztank/SYSROOT
zfs set mountpoint=/usr ztank/SYSROOT/usr
...

“Trying to mount root from zfs:ztank/SYSROOT”は成功しているのに、直後に「ファイルがないよー」的なログが出てabortしてしまう。症状から察するに、どうやらztankの方が先に/にマウントされてしまい、起動に必要なファイルが見えない状態の模様。分かってしまえばどうってことはないが、地味に分かりづらい厄介な罠。

特に設定しなければ、ストレージプールは/poolnameとしてマウントされるはずなんだけど、なんで/にマウントされちゃうんだろう・・・?

尚、例ではmountpoint=noneにしてるけど、ルート(とシステム関係の場所)以外なら任意に設定して大丈夫だと思う(試してないけど)。




  • blog/2013/2013-06-03.txt
  • 最終更新: 2015-01-06 11:51
  • (外部編集)