我用 Fedora 34 新配置了 Linode 實例。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
回答我自己的問題。經過四天的努力,我找到了解決方案。實際問題是 Fedora 特有的,其他 Linux 系統通常已預設從 CGroup v1 遷移到 v2 作為統一子系統。在我的例子中,我試圖設定 CGroup V1 控制器,而我的 Fedora 34 作業系統正在運行 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 可以啟動!
最初的解決方案發佈在這個部落格上。