かってきままな日々
2020-08-29 (Sa) [長年日記]
_ zfs boot できなくなった
Windows を 2004 にアップデートした。 その後、linux が起動できなくなった。
zfs が import できなくて bootfs が見つからない。zfs=zroot/root
にしても
zroot/root
が見つからない。
そして、break=premount
で boot して、手動で
zpool import -d /dev/disk/by-uuid -R /new_root -Na
zfs mount -a
して C-d
すると問題なく起動してくれる。
どういうコマンドで何が起きてるのかわからんので、
とりあえず /usr/lib/initcpio/install/zfs の zpool import
してるところの
直前に echo でどんな引数で zpool import
してるのかを出力するようにした。
そして mkinitcpio -p linux-zen
して再起動。
zpool import -c /etc/zfs/zpool.cache.org
で import するのね。
cache が壊れたのだろうか…?
もう一度 break=premount
で boot して zpool import -c ...
を実行した
ところ、UNAVAIL
とか insufficient replica
とか書いてある。
replica なんてもともとないんだけど… ボリューム壊れたかな。
それにしては -d
だと問題ないのはよく解らんけど。
-d
で import して mount して起動して、cachefile を作り直してみた。
zpool set cachefile=none zroot
zpool set cachefile=/etc/zfs/zpool.cache zroot
こうやって作り直すのね。
で、mkinitcpio -p linux-zen
して再起動したら、問題なく起動してくれた。
cache が壊れてただけかーー。
ashift 問題の可能性も頭をよぎったりしたけど、これだけで治ってくれて良かった。
いまだ suspend から resume に失敗することは頻繁にあるので、 普通に考えるとそのせいでファイルが壊れた、ってことなんだけど、 Windows の関係性はよく解らん。 たぶん最後の引き金を引いたんだろうけど、どういう引き金だったのやら。