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