L

Lararu.Blog

Make It Happen.

  • 首页
  • DEVOPS
  • Python-Dev
  • Docker
  • 关于
Home PVE的LXC配置
文章

PVE的LXC配置

Posted 2025-02-26 Updated 2025-06- 13
By Administrator
8~10 min read

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

lxc 映射主机文件夹到虚拟机

# pct set 201 制定容器id
# MoutPoint挂载点 -mp0 后面可以继续mp1~mp100
# pve 宿主机器文件夹路径 /mnt/sda/AppData
# 对应容器虚拟机内的挂载路径 mp=/DATA/AppDatabash
pct set 201 -mp0 /mnt/sda/AppData,mp=/DATA/AppData

# 第二种办法
nano /etc/pve/lxc/100.conf #100是对应的容器ID

mp1: /mnt/sda/AppData,mp=/DATA/AppData

License:  CC BY 4.0
Share

Further Reading

OLDER

docker 部署jellyfin

NEWER

docker部署umami

Recently Updated

  • 部署自动化MCP Chrome
  • PVE-安装群晖
  • docker部署openlist
  • docker部署superset
  • Mac OS 系统优化

Trending Tags

Python-dev Ubuntu Database PVE DevOps Docker Docker-compose

Contents

©2025 Lararu.Blog. Some rights reserved.

Using the Halo theme Chirpy