
Em vários dos meus sistemas com Ubuntu 22.04, /sys/fs/cgroup
está montado assim:
$ mount|grep cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime)
Em outros sistemas é assim:
$ mount|grep cgroup
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
Estou me perguntando o que causa a falta da nsdelegate
opção de montagem (e memory_recursiveprot
) em alguns sistemas e como adicioná-la novamente.
Esta opção está disponível desde o Linux 4.something e é usada pelo systemd automaticamente desdesistema 235. É claro que o Ubuntu 22.04 usa versões muito mais recentes, então AFAIK esta opção deve ser usada automaticamente. E se euprocure por ele no askubuntu, também recebo postagens de usuários com 22.04 que têm essa opção habilitada. Então acredito que deveria ser o padrão, e algo o desativa em alguns dos meus sistemas, mas não sei o quê.
Dos sistemas que possuem e dos que não possuem, ambos são VMs de servidor (sem GUI) inicializadas a partir da imagem oficial da nuvem do Ubuntu. Ambos usam o kernel Ubuntu 5.15.0-79-generic e systemd 249.11-0ubuntu3.9. Nenhum dos sistemas possui software contêiner como Docker ou Podman instalado.
Nunca configurei nada explicitamente a esse respeito e tenho a configuração padrão do cgroup com a hierarquia unificada (somente cgroupsv2, sem legado ou híbrido), como pode ser visto na saída da montagem. Tentei usar o grep for cgroup2
e nsdelegate
in /etc
, mas não encontrei nada, exceto /etc/mtab
. A linha de comando do kernel é BOOT_IMAGE=/boot/vmlinuz-5.15.0-79-generic root=UUID=b7781a48-a7ce-4094-b5a6-00bf8cb6803d ro console=tty1 console=ttyS0
.
Minha suposição atual é que o systemd é montado cgroup2
normalmente com nsdelegate
e, em seguida, algum outro software o remonta sem. Isso deve acontecer já durante a inicialização, pois a opção desaparece imediatamente no primeiro login. Mas como saber mais?