在 virt-manager 的主机和客户机之间共享文件夹
在本指南中，你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。
virt-manager 文件夹共享
在本指南中，你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。
![](/data/attachment/album/202301/23/163636dm5j1wrsga95xgrd.jpg)



> 
> 在本指南中，你将学习如何在 virt-manager 的 KVM、QEMU 和 libvirt 的主机和客户机之间共享文件夹。
> 
> 
> 


[virt-manager](https://virt-manager.org/) 应用或软件包使用 [libvirt](https://libvirt.org/manpages/libvirtd.html) 库来提供虚拟机管理服务。它有一个桌面界面，有助于创建、删除和管理多个虚拟机。


virt-manager 桌面界面及其组件为各种个人和商业场景提供了灵活的虚拟机管理服务。它是一个自由开源的应用，主要用于 KVM 虚拟机。然而，它也可以支持其他管理程序，如 Xen 和 LXC。


在之前的文章中，我解释了 [如何使用 virt-manager 创建虚拟机](https://www.debugpoint.com/virt-manager/)。这篇文章介绍了如何在客户机和主机之间无缝访问文件和文件夹。


### 关于 virtiofs 的说明


共享文件和文件夹是由名为 virtiofs 的 libvirt 共享文件系统提供的。它提供了访问主机上的目录树的所有功能和参数。由于大多数 virt-manager 虚拟机的配置都被翻译成 XML，所以共享文件/文件夹也可以通过 XML 文件来指定。


### 在 virt-manager中共享文件夹


首先，确保你的客户机关闭了电源。在 virt-manager GUI 中，选择虚拟机，点击“<ruby> 打开 <rt>  Open </rt></ruby>”，弹出控制台设置。


![打开设置](/data/attachment/album/202301/23/163743zt75s5iixx99px8s.jpg)


点击工具条上显示虚拟硬件细节的图标。然后点击左边面板上的“<ruby> 内存 <rt>  Memory </rt></ruby>”。


选择选项 “<ruby> 启用共享内存 <rt>  Enable shared memory </rt></ruby>”。点击应用。


![启用共享内存选项](/data/attachment/album/202301/23/163748pximgcwy22iydasi.jpg)


然后点击底部的 “<ruby> 添加硬件 <rt>  Add hardware </rt></ruby>”。


![点击添加硬件](/data/attachment/album/202301/23/163755h0hf3l0mcafrmim0.jpg)


在添加新硬件的窗口中，从左边的面板上选择 “<ruby> 文件系统 <rt>  File system </rt></ruby>”。


然后在 “<ruby> 细节 <rt>  Details </rt></ruby>” 标签中选择 “<ruby> 驱动程序 <rt>  Driver </rt></ruby>” 为 “virtiofs”。点击 “<ruby> 浏览 <rt>  Browse </rt></ruby> > <ruby> 浏览本地 <rt>  browse local </rt></ruby>”，**选择你想在客户机内访问的主机路径**。


在目标路径中，输入你想要的任何名字。这只是一个文件标签，将在挂载时使用。


所以，如果我想访问 `Pictures/Screenshots` 文件夹（`/home/debugpoint/Pictures/Screenshots`），示例设置可以是这样：


![添加一个新的文件系统硬件](/data/attachment/album/202301/23/163802w9ucph989b9bmch6.jpg)


下面是上述配置的 XML 设置。你可以在 XML 标签中找到它。



```
<filesystem type="mount" accessmode="passthrough">
  <driver type="virtiofs"/>
  <binary path="/usr/libexec/virtiofsd"/>
  <source dir="/home/debugpoint/Pictures/Screenshots"/>
  <target dir="mount_tag_pictures"/>
  <alias name="fs1"/>
  <address type="pci" domain="0x0000" bus="0x08" slot="0x00" function="0x0"/>
</filesystem>

```

点击 “<ruby> 完成 <rt>  Finish </rt></ruby>”。在 virt-manager 主窗口中，右键点击虚拟机，点击运行，启动虚拟机。确保点击“<ruby> 显示图形控制台 <rt>  show the graphical console </rt></ruby>”（如果虚拟机没有显示，点击工具条上的监视器图标）。


在客户机中，创建一个你想挂载主机文件夹的文件夹。在这个例子中，我使用了 `/mnt/pictures`。



```
sudo mkdir /mnt/pictures

```

最后，使用你在上述步骤中创建的标签将主机文件夹挂载到这个新文件夹。使用下面的命令在终端做这件事。确保根据你的系统改变下面命令中的标签和文件夹名称。



```
sudo mount -t virtiofs mount_tag_pictures /mnt/pictures

```

现在你可以在 virt-manager 中的主机和客户机之间的无缝地浏览文件夹和添加/删除项目。


![从 virt-manager 客户机访问主机文件](/data/attachment/album/202301/23/163813o65cqgw5g6wt7b9a.jpg)


### 总结


我希望这个方案能帮助你从客户机上访问主机文件和文件夹。记住，你的用户 ID，也就是用来启动 virt-manager 应用的用户，应该有同样的权限来访问主机文件夹。


如果你遇到任何错误，上述指南帮助了你，请在下面留言。


* [参考](https://libvirt.org/kbase/virtiofs.html)




---


via: <https://www.debugpoint.com/share-folder-virt-manager/>


作者：[Arindam](https://www.debugpoint.com/author/admin1/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

