«前の日記(2013-04-02) 最新 次の日記(2013-04-15)» 編集

meta's blog - The Power To Serve

筆者について

FreeBSDを通じてOSSにささかな貢献を。

OSS活動をご支援いただける方を募集しています


2013-04-03 kern/172952

FreeBSD 9.1-RELEASE ZFS root 環境で reboot すると All buffers synced. で固まる?

表題の通り。stable ブランチで既に修正されているようなのでカーネルだけ 9-STABLE に上げてみたら発生しなくなった。

リモートから reboot して帰ってこないと結構困るので助かった。

特にいじってない GENERIC カーネルなのでサクッとソースツリーを更新して、ツールチェーン作って、カーネル作って、新しいカーネルで再起動。

# svnup -h svn0.us-west.freebsd.org -b base/stable/9 -l /usr/src
# cd /usr/src
# make kernel-toolchain
# make buildkernel
# make installkernel

installkernel のところでなんか言われた。

ERROR: Required auditdistd user is missing, see /usr/src/UPDATING.

UPDATING の通りに mergemaster -p して auditdistd のユーザを作ると installkernel できた。

20121218:
        With the addition of auditdistd(8), a new auditdistd user is now
        depended on during installworld.  "mergemaster -p" can be used to add
        the user prior to installworld, as documented in the handbook.

新しいカーネルをインストールしたので reboot するも、この時点ではまだ古いカーネルで起動していたのでまた All buffers synced. の後で固まる。ここまでは想定通り。新しいカーネルで起動したことを確認して、もう1回 reboot して固まらないことを確認する!今度は固まらなかった。めでたしめでたし。

$ uname -v
FreeBSD 9.1-STABLE #3: Thu Apr  4 02:45:29 JST 2013     root@icepick.vmeta.jp:/usr/obj/usr/src/sys/GENERIC
$ sudo shutdown -r now

IPFIREWALL_FORWARD のオプションが廃止されデフォルトでオンになっていた

カーネルネタをもうひとつ。All buffers synced. の対応のために /usr/src/UPDATING を読んでいて発見しました。

20121102:
        The IPFIREWALL_FORWARD kernel option has been removed. Its
        functionality now turned on by default.

ipfw の forward ルールを使用するためには IPFIREWALL_FORWARD をオンにしてカーネルを再構築する必要がありましたが、9.1-RELEASE の1ヶ月ほど前にデフォルトでオンになるように変更されたみたいです。

地味といえば地味ですがうれしい変更です。この仕様変更により FreeBSD で動作するネットワーク利用者認証ゲートウェイシステム Opengate などを導入するにあたって、カーネルの再構築が不要になり GENERIC カーネルがそのまま使えるようになります。

squid で透過型プロキシを構築するときなどでも、GENERIC カーネルがそのまま使えます。

本日のツッコミ(全1件) [ツッコミを入れる]
Σ meta (2013-05-09 04:19)

カーネルだけを 9-STABLE に上げたものの、カーネルと world のバージョンがずれていると nvidia-driver とか virtualbox-ose-kmod とかがビルドできなかったり、いろいろ不都合があるので結局 world も STABLE にしてしまいました。