在 Alpine Linux 中创建虚拟机时 Cgroup 挂在失败的现象

现象:

在 Alpine Linux 中部署 LXD或者incus 服务后,创建 容器或者虚拟机时提示 实例启动失败、退出代码为1:

查询启动日志后,发现是 cgroup 挂载失败导致了 container 拉起失败。

原因分析:

从启动日志上看,是 cgroup 挂载失败导致了 container setup 失败。

此时查看发现目标实例创建成功了、只是 start 失败。

这是便可以排除 image 的可用性和有效性问题了,应该是 host-OS 中的 cgroup 驱动与 guest-OS中cgroup 驱动的冲突或者不兼容。

已知本次使用的 image版本是 Debian-12,kernel 是 6 系列的 LTS,默认应该直接启用了 cgroup-V2。

可以考虑直接查看 host-OS中的 cgroup驱动状况:

通过上文输出可知,host-OS中安装的也是 cgroup-V2 。

此时应该考虑是不是 host-OS中的 cgroup 配置了 混合 模式:

从以上输出中看,可知 host-OS中的 cgroup 是支持 混合模式配置的,且注销了直接启用 cgroup-V2 。

此时尝试通过手工卸载 cgroup 的 systemd 挂载点后、重新拉起一个 实例:

验证发现的确是 cgroup 不兼容导致的 实例 拉起失败。

解决办法:

host-OS启动时先卸载 cgroup 默认挂载的 systemd ,由 LXC 创建实例时自动选择所需挂载的cgroup驱动版本:

相关推荐
人生苦短,菜的抠脚8 分钟前
Linux 内核IIO sensor驱动
linux·驱动开发
jz_ddk20 分钟前
[LVGL] 从0开始,学LVGL:进阶应用与项目实战(上)
linux·信息可视化·嵌入式·gui·lvgl·界面设计
望获linux44 分钟前
【实时Linux实战系列】Linux 内核的实时组调度(Real-Time Group Scheduling)
java·linux·服务器·前端·数据库·人工智能·深度学习
MC丶科1 小时前
【SpringBoot常见报错与解决方案】端口被占用?Spring Boot 修改端口号的 3 种方法,第 3 种 90% 的人不知道!
java·linux·spring boot
江公望1 小时前
ubuntu kylin(优麒麟)和标准ubuntu的区别浅谈
linux·服务器·ubuntu·kylin
Lynnxiaowen1 小时前
今天我们开始学习python语句和模块
linux·运维·开发语言·python·学习
vue学习1 小时前
docker 运行容器限制内存、限制磁盘 IO
运维·docker·容器
生态笔记2 小时前
PPT宏代码
linux·服务器·powerpoint
mucheni2 小时前
迅为RK3588开发板Ubuntu 系统开发ubuntu终端密码登录
linux·运维·ubuntu
skywoodsky2 小时前
Ubuntu 24.04环境下的挂起转休眠
linux