我正在尝试设置非特权 LXC 容器,如Debian 维基在 Jessie Debian 物理服务器(4.9.135 内核)上。因此,我想启用userns
命名空间:
sysctl kernel.unprivileged_userns_clone=1
sysctl: cannot stat /proc/sys/kernel/unprivileged_userns_clone: No such file or directory
但是,此内核已经编译了用户命名空间支持,如下所示:
zgrep CONFIG_USER /proc/config.gz
CONFIG_USER_NS=y
我已经运行了lxc-checkconfig
显示enabled
所有项目的程序,除了checkpoint restore: missing
似乎与用户命名空间无关的程序:
--- Namespaces ---
User namespace: enabled
--- Checkpoint/Restore ---
checkpoint restore: missing
谷歌搜索对理解此错误没有多大帮助...有人能帮我解决这个问题吗?如果缺少任何信息,请不要犹豫...
答案1
Debian wiki 中提到的 sysctl 在 Linux 内核中并不存在。
它提供Debian 内核中由 Debian 维护的补丁明确目的是禁用用户命名空间,直到通过设置 sysctl 明确启用它们。
这个 Debian 专用补丁已经拒绝由 Linux 内核开发人员编写。
由于您没有使用 Debian 提供的内核,因此用户命名空间始终处于启用状态,您无需设置 sysctl 来启用它们。您可以直接跳过此步骤。
对于检查点/恢复,请安装 criu 并运行criu check
。它会告诉您还缺少什么(如果有的话)。