2017-09-13 6 views
0

カーネルバージョンと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を接続するにはどうすればいいですか?

答えて

0

編集:誤読質問、訂正:

それが持っているようだ - https://cateee.net/lkddb/web-lkddb/PID_NS.htmlが十分ではありませんが、おそらく必要な他のオプションがあります。 (CONFIG_EXPERIMENTAL?)

私はどこかのlxcコンテナでDebian Squeeze(6、2.6カーネルライン)のhowtoを見ていますので、実行可能にする必要があります。そこからKconfigを取得して比較してみてください。

私はまた、このパッチセットを見つけ、多分試してみて、比較します http://lxc.sourceforge.net/patches/linux/2.6.38/2.6.38.2-lxc1/patches/

をまた、古いLXC(V1)、私は〜2009からカーネルとの互換性が高いだろう期待していない(すべてであれば検討します)priority - そういう古代のカーネルには、もっと多くの警告とトラップがあるでしょう。

関連する問題