FreeBSD QandA 1334

FreeBSD QandA

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


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