続・lxcが起動しない。¶
Upstreamのバージョンが0.6.3から0.6.4になったということで、先ほどlxc-debianで作成したコンテナが起動しなかったが、そもそもスクリプトの内容が変わっているのではないかと思い、確認してみたらやっぱり。
--- lxc-debian 2009-10-30 17:58:20.000000000 +0900
+++ lxc-debian-new 2010-01-12 10:15:14.000000000 +0900
@@ -136,7 +136,6 @@
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.mtu = $MTU
-lxc.mount = $TMPMNTFILE
lxc.rootfs = $ROOTFS
lxc.cgroup.devices.deny = a
# /dev/null and zero
@@ -155,14 +154,17 @@
# rtc
lxc.cgroup.devices.allow = c 254:0 rwm
EOF
+
+ if [ ! -z "$TMPMNTFILE" ]; then
+ cat $TMPMNTFILE >> $CONFFILE
+ fi
}
write_lxc_mounts() {
- TMPMNTFILE=$(mktemp lxc.XXXXXXXXXX)
-
if [ ! -z "$MNTFILE" ]; then
- cp $MNTFILE $TMPMNTFILE
+ TMPMNTFILE=$(mktemp lxc.$NAME.XXXXXXXXXX)
+ sed -e 's/^\(.*\)/lxc.mount.entry=&/' $MNTFILE >$TMPMNTFILE
fi
}
新しいスクリプトでコンテナを作成しなおしてみたらあっさり起動した。旧バージョンで作成したコンテナと、新バージョンで作成したコンテナの違いは、/var/lib/lxc/ディレクトリ以下の構成が明らかに違う。新しい方は、configファイルしかない。
$ ls -l /var/lib/lxc/{hoge,foo}
/var/lib/lxc/foo:
合計 4
-rw-r--r-- 1 root root 683 2010-01-12 10:18 config
/var/lib/lxc/hoge:
合計 40
-rw-r--r-- 1 root root 283 2009-12-04 18:12 cgroup
-rw------- 1 root root 712 2009-12-04 18:12 config
-rw------- 1 root root 74 2009-12-04 18:12 fstab
-rw------- 1 root root 5 2010-01-04 09:23 init
drwxr-xr-x 3 root root 4096 2009-12-04 18:12 network
lrwxrwxrwx 1 root root 22 2010-01-04 09:23 nsgroup -> /var/local/cgroup/hoge
-rwxr-xr-x 1 root root 6 2009-12-04 18:12 pts
drwxr-xr-x 2 root root 4096 2009-12-04 18:12 rootfs
-rw------- 1 root root 7 2010-01-12 09:13 state
-rwxr-xr-x 1 root root 3 2009-12-04 18:12 tty
-rwxr-xr-x 1 root root 6 2009-12-04 18:12 utsname
configファイルの内容の違いは以下。lxc.mountパラメータが無くなっている。
$ sudo diff -u /var/lib/lxc/{hoge,foo}/config
--- /var/lib/lxc/hoge/config 2009-12-04 18:12:13.000000000 +0900
+++ /var/lib/lxc/foo/config 2010-01-12 10:18:34.000000000 +0900
@@ -1,4 +1,4 @@
-lxc.utsname = hoge
+lxc.utsname = foo
lxc.tty = 4
lxc.pts = 1024
lxc.network.type = veth
@@ -6,8 +6,7 @@
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.mtu = 1500
-lxc.mount = lxc.QFWBT5fvhU
-lxc.rootfs = ./rootfs.hoge
+lxc.rootfs = ./rootfs.foo
lxc.cgroup.devices.deny = a
# /dev/null and zero
lxc.cgroup.devices.allow = c 1:3 rwm
他のファイル、というか情報はどこへ行ったのか?