我已经使用 Fedora 34 新配置了 Linode 实例。我唯一在其上安装的是 libcgroup。cgconfig
服务启动正常并且没有错误,但子系统不工作。
当我执行 lscgroup 命令时出现以下错误。
[root@localhost ~]# sudo lscgroup
cgroups can't be listed: Cgroup is not mounted
进一步讨论该主题,当我执行lssubsys -am
命令时,我得到以下内容
cpu
cpuacct
blkio
memory
devices
freezer
net_cls
perf_event
net_prio
hugetlb
pids
misc
谁能帮我解决这个问题?
答案1
回答我自己的问题。经过 4 天的苦思冥想,我终于找到了解决方案。实际问题是 Fedora 和其他 Linux 系统通常默认从 CGroup v1 移至 v2 作为统一子系统。所以在我的情况下,我试图设置 CGroup V1 控制器,而我的 Fedora 34 OS 正在运行 CGroup V2,这导致我的 CGConfig 服务在重新启动时崩溃。解决方案是移至 CGroup V1,为此运行以下命令
使用 sed 将 systemd.unified_cgroup_hierarchy=0 添加到默认 GRUB 配置。
sudo sed -i '/^GRUB_CMDLINE_LINUX/ s/"$/ systemd.unified_cgroup_hierarchy=0"/' /etc/default/grub
现在重建您的 GRUB 配置。
如果您使用 BIOS 启动那么就是这个。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
如果您正在运行 EFI,那么就是这个。
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
现在重新启动并确保Docker可以启动!
原始解决方案发布在此博客上。