在 virt-manager 中实现主机和虚拟机之间的文件夹共享,主要有以下几种方法,具体选择取决于虚拟机的操作系统和需求:
适用场景:Linux 主机 + Linux 客户机(需内核 ≥5.4)
优势:高性能、原生支持、无需网络配置。
主机端准备:
bash
grep -i virtiofs /boot/config-$(uname -r)
/path/to/share
)。配置虚拟机 XML:
<devices>
段添加以下内容:
xml
<filesystem type='mount' accessmode='passthrough'>
<driver type='virtiofs'/>
<source dir='/path/to/share'/>
<target dir='shared_folder'/>
</filesystem>
客户机挂载:
bash
mkdir -p /mnt/share
mount -t virtiofs shared_folder /mnt/share
/etc/fstab
:
bash
shared_folder /mnt/share virtiofs rw,nofail 0 0
适用场景:支持 Plan 9 协议的客户机(如 Linux、某些 Windows 版本)。
主机端配置:
/path/to/share
)。修改虚拟机 XML:
<devices>
段添加:
xml
<filesystem type='mount' accessmode='mapped'>
<source dir='/path/to/share'/>
<target dir='shared_folder'/>
</filesystem>
客户机操作:
bash
mkdir /mnt/share
mount -t 9p -o trans=virtio shared_folder /mnt/share
virtio-win
驱动中的 9P 支持。适用场景:需要跨操作系统(如 Windows 客户机)或网络共享。
主机端配置 Samba/NFS:
bash
sudo apt install samba
sudo nano /etc/samba/smb.conf
添加配置:
ini
[share]
path = /path/to/share
browseable = yes
read only = no
guest ok = yes
重启服务:
bash
sudo systemctl restart smbd
客户机访问:
bash
sudo mount -t cifs //主机IP/share /mnt/share -o guest
\\主机IP\share
。适用场景:使用 SPICE 协议且客户机为 Windows。
主机端:确保虚拟机配置中启用 SPICE WebDAV:
<graphics type='spice'>
<listen type='none'/>
<channel name='org.spice-space.webdav.0' mode='secure'/>
</graphics>
客户机:安装 spice-webdavd
并访问映射的网络驱动器。
chmod 777 /path/to/share
临时测试)。bash
sudo semanage fcontext -a -t virtiofs_t "/path/to/share(/.*)?"
sudo restorecon -Rv /path/to/share
根据实际需求选择最适合的方案即可!