Q. boot -v などで起動すると、起動メッセージの最初の部分が、dmesg にも
/var/log/messages にも残っていないのですが。
A. dmesg で表示されるメッセージは、カーネルがメッセージバッファに貯めて
いるものです。このサイズは決まっており、起動時のメッセージが長すぎると
バッファに入り切らず、先頭部分が表示されなくなります。
また、/var/log/messages には、マルチユーザーモードに入って syslogd が
起動した時に、カーネルのメッセージバッファを読んで書き込まれます。
その時点でバッファがあふれてしまっているので、これも dmesg と同様に
先頭部分が記録されないわけです。
このバッファのサイズは /usr/src/sys/sys/msgbuf.h で
#define MSGBUF_SIZE 8192
と指定されています。
バッファを増やすには、MSGBUF_SIZE というオプションを指定して
カーネルの再構築をします。LINTによると、
# Size of the kernel message buffer. Should be N * pagesize.
options "MSGBUF_SIZE=40960"
のように指定します。この場合はデフォルトの 5倍の容量になるわけです。
i386アーキテクチャではページサイズは普通は 4096 バイトとなっています
ので、4096の倍数で指定してください。
カーネルの再構築の方法は
<URL:http://www.jp.FreeBSD.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/kernelconfig-building.html>
を参照してください。
なお、MSGBUF_SIZE が使えるのは 2.2.7 以降のバージョンです。
グループ名: boot-message