【发布时间】:2017-09-13 22:20:16
【问题描述】:
我想在 linux 内核 2.6.38 和 init.d 上运行 LXC 2.0,无论内核版本和 initd 是否都是必需的。
我已经重新编译了支持命名空间的内核,如下所示。
# 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
[root@ts ~]# 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 附加到命名空间?
【问题讨论】:
标签: linux linux-kernel init lxc linux-namespaces