在我的几个装有 Ubuntu 22.04 的系统上,/sys/fs/cgroup
安装方式如下:
$ mount|grep cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime)
在其他系统上它看起来像这样:
$ mount|grep cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
我想知道是什么原因导致某些系统缺少nsdelegate
挂载选项(和memory_recursiveprot
)以及如何重新添加它。
该选项自 Linux 4.something 开始可用,并由 systemd 自动使用systemd 235Ubuntu 22.04 当然使用了更新的版本,因此据我所知,应该会自动使用此选项。如果我在 askubuntu 上搜索,我也收到使用 22.04 的用户的帖子,他们启用了此选项。所以我相信它应该是默认选项,但在我的某些系统上有些东西禁用了它,但我不知道是什么。
有和没有的系统都是从官方 Ubuntu 云映像启动的服务器虚拟机(无 GUI)。两者都使用 Ubuntu 内核 5.15.0-79-generic 和 systemd 249.11-0ubuntu3.9。这两个系统都没有安装 Docker 或 Podman 等容器软件。
我从未明确配置过这方面的任何东西,而且我确实拥有具有统一层次结构的标准 cgroup 设置(仅限 cgroupsv2,没有传统或混合),这可以从 mount 输出中看到。我尝试 grepping 和cgroup2
in nsdelegate
,/etc
但除了 之外没有找到任何东西/etc/mtab
。内核命令行是BOOT_IMAGE=/boot/vmlinuz-5.15.0-79-generic root=UUID=b7781a48-a7ce-4094-b5a6-00bf8cb6803d ro console=tty1 console=ttyS0
。
我目前的假设是 systemdcgroup2
可以正常挂载nsdelegate
,但其他一些软件却不用 重新挂载它。这必须在启动期间发生,因为第一次登录时该选项会立即消失。但如何了解更多信息?