カーネルバージョンとinitdの両方が必須であるかどうかにかかわらず、linuxカーネル2.6.38とinit.dでLXC 2.0を実行したい。カーネル2.6.38とinitdに基づいてシステムでLinux名前空間を有効にするには?
以下のように名前空間をサポートするカーネルを再コンパイルしました。
# Kernel parameters
CONFIG_NAMESPACES=y
CONFIG_CGROUP_NS=y
CONFIG_UTS_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y
[[email protected] ~]# CONFIG=$(pwd)/.config lxc-checkconfig
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
newuidmap is not installed
newgidmap is not installed
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: missing
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled
lxc-start -n ts1 --logfile=ts1.log
で次の問題が発生するまで、すべて正常に実行されます。
lxc_start - start.c:preserve_ns:138 - No such file or directory - Kernel does not support attaching to namespaces.
LXC/start.c:138は私の親プロセスが/proc/<PID>/ns
フォルダを持っていないと私は確認したときに、それもinitdを含む、システム内のすべてのプロセスのために本当だったと述べています。
私はinitdが名前空間を最初のプロセスとして考慮していないと仮定します。
名前空間でinitdを接続するにはどうすればいいですか?