Как включить пространство имен Linux в системе на основе ядра 2.6.38 и initd?

Я хочу запустить LXC 2.0 на ядре linux 2.6.38 и init.d, независимо от того, являются ли обязательными как версия ядра, так и 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 к пространству имен?


person teotanin    schedule 13.09.2017    source источник


Ответы (1)


редактировать: неправильно прочитанный вопрос, исправление:

кажется, есть - https://cateee.net/lkddb/web-lkddb/PID_NS.html недостаточно, возможно, требуется еще один вариант. (КОНФИГ_ЭКСПЕРИМЕНТАЛЬНО?)

Я помню, что где-то видел руководство по Debian Squeeze (линия ядра 6, 2.6) с контейнерами lxc, так что это должно быть выполнимо, возможно, попробуйте взять оттуда Kconfig и сравнить.

Я также нашел этот набор исправлений, попробуйте и сравните: http://lxc.sourceforge.net/patches/linux/2.6.38/2.6.38.2-lxc1/patches/

Кроме того, учитывая старый lxc (v1), я бы не ожидал, что совместимость с ядрами от ~ 2009 будет иметь высокий (если вообще) приоритет — так что есть вероятность, что с lxd с таким древним ядром будет гораздо больше предостережений и ловушек.

person frater_sourcecode    schedule 12.12.2017