ふだん一番よく使っているFreeBSDマシンが、先日、ひさびさにkernel panic。
/var/crash/以下にできたファイルを見ると、どうもzfsがらみらしい。
いろいろ試すと、zfs.koがロードされただけでkernel panicしている(合計3回kernel panicさせた[E:coldsweats01])。
そのマシンではZFSは使っていなかったので、そもそもなぜzfs.koがロードされたのかがわからなかったけど、それはさておき、なぜzfs.koをロードすると落ちるのだろうか・・・という疑問。
別のFreeBSDマシンとで、/boot/kernel/以下のファイルを比較してみたところ、見事に、zfs.koだけ不一致。どうやら、/boot/kernel/zfs.koが、いつのまにか別のファイルに置き換わってしまったらしい・・・なぜだ![E:shock] 怖い!
よ~く比較してみると、まったく別のファイルというわけではなくて、hexdumpして比較してみると、途中までは同じで、symbol tableっぽいものが現れるあたりから不一致してた。別バージョンのファイルと置き換わってしまっただろうか・・・
おかしなことに、/var/db/freebsd-update/ 以下に残っていた、zfs.koファイルは正常なものだった(ちなみに、ファイルのfull pathをSHA256ハッシュ値にしたものが、/var/db/freebsd-update/以下のファイル名になっているらしい)。
なぜこんなことが起こったんだろうか、気持ち悪い。
☆
今回は、別のFreeBSDマシンと比較してみたわけですが、freebsd-updateを使っているんだったら、もっとカンタンにチェックできるんじゃない?と思いつき、man freebsd-update ・・・
ありました。
freebsd-update IDS というコマンドで、インターネットから正常なファイルのハッシュ値のファイルをダウンロードしてきて、インストール済みのファイルと比較して、不一致を見つけてくれます。
こんな感じです。
Looking up update3.FreeBSD.org mirrors... none found.
Fetching metadata signature for 9.2-RELEASE from update3.FreeBSD.org... done.
Fetching metadata index... done.
Inspecting system... done.
/boot/kernel/linker.hints has SHA256 hash b0cc18fa3c52568d8b6fa814044e1dc536ca57d4ceee815f38dc80fa140eeca1, but should have SHA256 hash 1027485d3bbea91931b1289c751d8530c33b67f562376237d39085133096bcfd.
/boot/kernel/zfs.ko has SHA256 hash 507b234cd4643e8d4ac4dfa28c56747c86f1f536a3b7ef5dff6abc45c015335c, but should have SHA256 hash 5af7feb5541a3874450cbeecccca9f69b0351f56cf45cb701cc0a057becb3b4f.
/etc/crontab has SHA256 hash 96cd2e3c7c7d423f0deb0deb57e66bd1269cd4fe2ccf42cce880ee0c0a4d4fb4, but should have SHA256 hash da4b2db5e7b40015da2b162a238b6a588766e988111ef9f43d7ecae4a04c9436.
以下省略
たしかに/boot/kernel/zfs.koが不一致だと言われました。
/etc/以下の、たしかに自分で書き換えたぞ、というファイルまで、どうしても不一致だといわれてしまいますが・・・まあ、freebsd-update IDS、知っていると便利かもしれません。自分で、kernel reconfigしている人、stableやcurrentをおっかけている人では、使えませんが。
置き換わっていたファイルのSHA256から、「実はそれはFreeBSD 10-RELEASEのzfs.koだ」とかわかるんじゃないかと思ったのですが、まあいいか、と放置しました。
それにしても気持ち悪いです。
0 件のコメント:
コメントを投稿