PVE使用lxc.mount.entry,让LXC容器共享宿主机目录

环境PVE 8.1.3(x86_64),8.1.7(arm64)均测试成功,无需编译更换内核了!
LXC可以用,虚拟机不行,虚拟机可以用 9p的方法,参考我的这篇文章,PVE使用9p挂载,让虚拟机共享宿主机目录

该方法不依赖网络,即便没有网卡都可以,也不会因为IP变化导致挂载失效

第1步,LXC开机时,创建挂载点目录

在LXC开机状态,在LXC中先创建挂载点,改成你的。必须要先创建好这个挂载点

mkdir /mnt/mergerfs1

第2步,LXC容器关机,修改LXC配置文件

将LXC容器关机

在PVE宿主机上,编辑LXC配置文件,配置文件位置是 /etc/pve/lxc/12001.conf,其中12001是我的LXC-ID,改成你的

使用nano vi等文本编辑工具编辑该文件,在文件开始位置加入以下代码,保存并退出。

lxc.mount.entry: /srv/mergerfs/mergerfs1 mnt/mergerfs1 none rw,bind 0 0
  • /srv/mergerfs/mergerfs1 是PVE宿主机上要共享的目录
  • mnt/mergerfs1 是刚才在LXC中创建的目录 /mnt/mergerfs1去掉开头的 /得到的
  • 以上改成你自己的

image-20240511200549206

第3步,LXC开机,查看是否挂载成功

将LXC容器开机,查看是否挂载成功,命令

df -hT #查看挂载信息
ls -lah /mnt/mergerfs1 #查看共享过来的文件目录

你这里类型和我显示的不一样没关系,实际能用就行

image-20240511200421475


还有一种方法:

https://pve-doc-cn.readthedocs.io/zh-cn/latest/chapter_pct/Container_Settings.html#id8