FreeBSD QandA 1616

FreeBSD QandA

Q. system の状態をみるコマンドでつぎのようなエラーが発生してしまう。
     % swapinfo
     swapinfo: undefined symbol: _numvnodes
     % pstat
     pstat: undefined symbol: _numvnodes
     % top
     top: nlist failed

A. FreeBSD の version を 3.x-RELEASE から 4.0-RELEASE 以降に
   upgradeしましたか?
   3.x-RELEASE では、kernel の symbol table は /etc/rc のなかで
   kvm_mkdb(8) によって /var/db/kvm_kernel.db につくられ、
   これらコマンドの実行時には参照されていました。

   4.0-RELEASE 以降、/etc/rc で、kvm_mkdb を行わなくなり kernel を読み
   込むのに /boot/loader を使用しないと、symbol table が、参照できないため
   _numvnodes のような kernel 内の static に宣言された変数が参照できなくて、
   このようなエラーとなります。

   /boot.config の中に "kernel" 等と記述していると、直接 kernel を load する
   ことになりますので、上記のような現象が発生します。/boot.config を空とするか、
   消去するなどして、/boot/loader が、kernel を load するようにすることで、
   これらのコマンドが使えるようになります。

   3.x-RELEASE の時に、/boot.config に /kernel などと記述していて、
   4.0-RELEASE 以降に upgrade した時に発覚するようです。

同一グループへのリンク

グループ名: boot-config


間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。