2017-09-13 95 views
0

我想在Linux內核2.6.38和init.d上運行LXC 2.0,無論是內核版本還是initd都是必需的。如何在基於內核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?)

我記得看到HOWTO Debian的擠壓(6,2.6內核線)與LXC容器的地方,所以它應該是可行的,也許嘗試,並從那裏攫取的Kconfig和比較。

我也發現這個補丁集,嘗試,也許比較:同樣 http://lxc.sourceforge.net/patches/linux/2.6.38/2.6.38.2-lxc1/patches/

,考慮老LXC(V1),我不希望從年〜2009年核心的兼容性會很高(如果有的話)優先 - 所以很有可能會有更多的警告和陷阱與lxd與這種古老的內核。

相關問題