PVE的LXC维护
pve配置lxc
/etc/pve/lxc/110.conf
# 文件末端加入内容
# unprivileged: 0表示容器将在特权模式下运行,即容器内的进程将具有与主机相同的权限
# lxc.apparmor.profile: unconfined 表示容器内的进程将不受任何 AppArmor 限制
# lxc.cap.drop: 用于指定容器内进程的能力限制,允许进程执行一些特定的操作,例如修改系统时间、挂载文件系统等
# lxc.apparmor.profile: unconfined:该配置指定了 AppArmor(应用程序安全性配置框架)的配置文件名称,这里设置为 “unconfined”,用于允许容器内的进程具有更高的系统权限
# lxc.cgroup.devices.allow: a: 允许容器内的进程访问所有的 cgroup 设备。
# lxc.cap.drop: 此配置项为空,容器内的进程将继承主机系统的默认能力设置。
unprivileged: 0
lxc.apparmor.profile: unconfined
lxc.cap.drop:
显卡直通
# 查看设备
lspci | grep VGA
# 00:02.0 VGA compatible controller: Intel Corporation JasperLake [UHD Graphics] (rev 01)
# 查看驱动
ls /dev/dri/
# by-path card0 renderD128
追加内容
cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
# 解释
lxc.cgroup2.devices.allow: c 226:0 rwm 和 lxc.cgroup2.devices.allow: c 226:128 rwm: 允许容器内的进程对设备号为 226:0 和 226:128 的字符设备节点拥有读、写和映射(rwm)的权限。用于允许容器内的进程访问特定的设备,如图形加速设备。
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file 和 lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file:将主机系统上的两个设备节点 /dev/dri/card0 和 /dev/dri/renderD128 挂载到容器内的相同位置,用于允许容器内的应用程序访问图形硬件加速功能,以便执行图形相关的任务
参考资料:
https://blog.hellowood.dev/posts/%E5%9C%A8pve%E7%9A%84lxc%E5%AE%B9%E5%99%A8%E4%B8%AD%E7%9B%B4%E9%80%9A%E6%A0%B8%E5%BF%83%E6%98%BE%E5%8D%A1/
追加配置添加
lxc.apparmor.profile: unconfined # 表示容器内的进程将不受任何 AppArmor 限制
lxc.mount.auto: cgroup:rw
lxc.mount.auto: proc:rw
lxc.mount.auto: sys:rw
lxc.cap.drop: # 用于指定容器内进程的能力限制,允许进程执行一些特定的操作,例如修改系统时间、挂载文件系统等
lxc.cgroup.devices.allow: a
参考资料:
https://www.cnblogs.com/airoot/p/18722987
挂在raw文件
# 1. 查找一个未使用的回环设备,并将 vm-800-disk-0.raw 文件映射到该设备
# `--find` 自动选择一个未使用的回环设备(如 /dev/loop0)
# `--show` 输出分配的回环设备路径,方便后续操作
losetup --find --show vm-800-disk-0.raw
# 2. 列出回环设备的分区信息
# 使用 fdisk -l 检查 /dev/loop0 的分区表,查看是否存在分区以及分区的详细信息
# 如果 vm-800-disk-0.raw 是一个完整的磁盘镜像文件(包含分区表),这里会显示分区信息
fdisk -l /dev/loop0
# 3. 检查回环设备的文件系统类型
# 使用 file -s 检查 /dev/loop0 的文件系统类型
# 这个命令会输出设备的内容类型,例如 "Linux filesystem" 或 "data" 等
file -s /dev/loop0
# 4. 将回环设备挂载到 /mnt/temp 目录
# 假设 /dev/loop0 是一个格式化为 ext4 的文件系统,将其挂载到 /mnt/temp 目录
# 注意:如果 /dev/loop0 是一个分区表,而不是单一文件系统,可能需要挂载分区(如 /dev/loop0p1)
mount -t ext4 /dev/loop0 /mnt/temp
卸载挂在点并释放回环设备
# 卸载挂载点
umount /mnt/temp
# 释放回环设备
losetup -d /dev/loop0
License:
CC BY 4.0