最近 aufs を使って Web サイトのドラフトを作成する(記事)ようにしているが、使っていて1つ不具合が出てきた。 今の設定だと、ブランチ側(今回の使い方だと公開ディレクトリツリー)のファイルを直接変更しても、aufs のキャッシュによりマウントしたディレクトリ側ではその変更されたファイルではなく、変更される前のファイルが見えてしまう。 これはちょっと不便。
マニュアルを見るとマウント時のオプションで udba=inotify を指定して inotify を使うようにすれば良いとのこと。
早速指定してみたがマウント時にエラー。 どうやら udba=inotify を使えるようにモジュールをコンパイルしていなかったようだ。
aufs のマニュアルを見ると CONFIG_INOTIFY と CONFIG_AUFS_UDBA_INOTIFY を有効にする必要があるとある。前者は Linux kernel ビルド時に指定済み。
後者を有効にして aufs を作り直す必要がある。
module-assistant だと設定の仕方がわからないので、aufs.tar.gz2 展開して直接 make-kpkg modules_image でビルドするようにした。
aufs.tar.gz2 を展開後、debian/conf.mk を編集して
とし、後は普通に make-kpkg を使う。 マニュアルとは設定名/マクロ名が違うので、ちょっとはまったがこれで udba=inotify を使えるようになった。
前回のマウント方法をちょっと修正して以下のようにする。
mount -v -t aufs -o br:/home/naney/draft.naney.org=rw:/home/naney/www.naney.org=ro,udba=inotify none /home/naney/next.naney.org
これで /home/naney/www.naney.org 以下を修正すると、すぐさま /home/naney/next.naney.org の方でも反映されるようになった。
メデタシメデタシ。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。
※内容は個人的見解であり所属組織とは関係ありません。