Humanity

Edit the world by your favorite way

Linuxコンテナ内でautofsを起動させたけどなぜか刺さるので諦めた時のログ

ちょっと前のログ。
起動させたけどマウントできないとこまで行った。
ls /hoge とかやると刺さる。
サーバ環境だったし普通にNFSマウントしてればマウント先が復帰すれば自動的に復帰するのでautofsしてもあんま費用対効果が見込めないのでやめた。

環境

Debian squeeze

下のログ見なくてもたぶんこれで起動するまではいける

タイトルの通り刺さるけど。
誰か刺さる原因教えてください。

$ sudo rmmod autofs
$ sudo modprobe autofs4
$ echo 'lxc.cgroup.devices.allow = c 10:* rwm' | sudo tee /var/lib/lxc/<container>/config

右往左往 (当時の状況ログ)

Error: failed to load autofs4 module.
$ sudo service autofs start
Error: failed to load autofs4 module.

(initスクリプトがおかしいというページを見たので)
エラーを出してる部分のチェックがおかしいと思いアンコメント。

Error: autofs kernel module is loaded, autofs4 required
$ sudo service autofs start
Error: autofs kernel module is loaded, autofs4 required

エラーを出してる部分のチェックがおかしいと思いアンコメント。

rmmod, modprobe

bash-3.1# rmmod autofs
bash-3.1# modprobe autofs4
bash-3.1# sh /etc/rc.d/rc.autofs.new start
Starting automount: done.
bash-3.1#

Ok now it works. Let's see if it auto-umounts on this test machine without symlinks.
Hope default timeout isn't two days :^)

Autofs mounts, but doesn't umount

rmmodしてmodprobeしたら直ると聞いたのでそのまま実行。

LXC内なので/lib/modulesが空。bind mountする。

→成功したあとでbind mountやめても成功したので関係なさそう。

mknod: `/dev/autofs': Operation not permitted
$ sudo service autofs start
Starting automount: mknod: `/dev/autofs': Operation not permitted
/usr/sbin/automount already running.
done.

/dev/autofsを作ろうとするが権限がない。
LXCの設定ファイルでautofsのデバイスファイルを作るのを許可する。

/var/lib/lxc//config

lxc.cgroup.devices.allow = c 10:* rwm

10はautofsのメジャー番号。
/etc/init.d/autofsでmknodしてるので引数を見てわかった。

mknod [メジャー番号] [マイナー番号]

マイナー番号は機種ごとに違う。

起動できた
$ sudo service autofs start
Starting automount: done.

とりあえず起動はできた。

ls /data -> フリーズ

/etc/auto.master

/-    /etc/auto.direct

/etc/auto.direct

/autofs/hoge -fstype=nfs,ro,_netdev,mountproto=tcp --timeout=10 bokenas:/datavol

/autofs/hogeにマウントしてるのは/hogeだと別の意味になる?っぽいので。

/netにマウントする

(TODO: /netにNFSマウントする既存の設定が/etc/auto.masterにあったのであとで試す。)
試してない。