TranslateProject/published/202307/20230602.1 ⭐️⭐️ Share Folder Between Windows Guest and Linux Host in KVM using virtiofs.md
2023-07-31 22:27:30 +08:00

194 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[#]: subject: "Share Folder Between Windows Guest and Linux Host in KVM using virtiofs"
[#]: via: "https://www.debugpoint.com/kvm-share-folder-windows-guest/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-16023-1.html"
如何在 Linux 主机和 KVM 中的 Windows 客户机之间共享文件夹
======
![][0]
> 在本指南中,你将了解如何在 Linux 主机(例如使用 KVM 的 Fedora、Ubuntu 或 Linux Mint下运行的 Windows 客户机之间共享文件夹。
[virt-manager][1] 应用(带有 [libvirt][2])和软件包提供了一组灵活的工具来管理 Linux 中的虚拟机。它是自由开源的,用于 KVM 虚拟机和其他虚拟机管理程序。
在上一篇文章中,我解释了 [如何在 Linux 客户机和 Linux 主机之间共享文件夹][3]。然而,当你尝试使用 Windows 客户机和 Linux 主机创建共享文件夹时,这是一个有点困难和复杂的过程。因为两种操作系统的工作方式不同,需要进行大量配置。
按照下面提到的说明在 Windows 客户机和 Linux 主机之间共享文件夹。
### 关于 virtiofs 的说明
共享文件和文件夹由名为 virtiofs 的 libvirt 共享文件系统提供支持。它提供了访问主机上目录树的所有功能和参数。由于大多数 virt-manager 虚拟机配置都会转换为 XML因此共享文件/文件夹也可以由 XML 文件指定。
注意:如果你正在寻求在**两台 Linux 计算机**(客户机和主机)之间使用 KVM 进行文件共享,请 [阅读此文][3]。
### 使用 KVM 在 Windows 客户机和 Linux 主机之间共享文件夹
以下说明假设你已在任何 Linux 主机的 virt-manager 中安装了 Windows。如果没有你可以阅读有关如何在 Linux 中安装 Windows 的完整指南。
#### 在 virt-manager 中设置挂载标签
首先,确保你的客户虚拟机已关闭。从 virt-manager GUI 中,选择虚拟机并单击“<ruby>打开<rt>Open</rt></ruby>”以调出控制台设置。
![打开控制台设置][4]
单击工具栏中显示虚拟硬件详细信息的图标。然后单击左侧面板上的“<ruby>内存<rt>Memory</rt></ruby>”。
选择选项“<ruby>启用共享内存<rt>Enable shared memory</rt></ruby>”。单击“<ruby>应用<rt>Apply</rt></ruby>”。
确保 XML 在 XML 选项卡中显示 `<access mode="shared"/>`,如下所示。
```
<memoryBacking>
<source type="memfd"/>
<access mode="shared"/>
</memoryBacking>
```
![启用共享内存][5]
单击底部的“<ruby>添加硬件<rt>Add hardware</rt></ruby>”。
从添加新硬件窗口的左侧面板中选择“<ruby>文件系统<rt>Filesystem</rt></ruby>”。
然后在详细信息选项卡中选择 “<ruby>驱动<rt>Driver</rt></ruby>” 为 “virtiofs”。单击“<ruby>浏览<rt>browse</rt></ruby> > <ruby>浏览本地<rt>browse local</rt></ruby>”并从 Linux 系统中**选择主机路径**。
在“<ruby>目标路径<rt>Target path</rt></ruby>”中,输入你想要的任何名称。它只是一个文件标签,将在挂载过程中使用。目标路径中的此名称将作为 Windows 中的驱动器挂载,即资源管理器中的我的电脑。
我已添加 “linux_pictures” 作为目标挂载标签。
因此,如果我想访问图片文件夹(`/home/debugpoint/Pictures`),示例设置可能如下:
![为 Windows 添加文件系统挂载][6]
单击“<ruby>完成<rt>Finish</rt></ruby>”。
上述配置的 XML 设置如下。你可以在 XML 选项卡中找到它。
```
<filesystem type="mount" accessmode="passthrough">
<driver type="virtiofs"/>
<source dir="/home/debugpoint/Pictures"/>
<target dir="linux_pictures"/>
<address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
</filesystem>
```
在 virt-manager 主窗口中,右键单击 Windows 虚拟机,然后单击“<ruby>运行<rt>Run</rt></ruby>”启动虚拟机。如果未显示虚拟机,请单击“显示图形控制台”(工具栏中的监视器图标)。
#### 设置 WinFSP 适用于 Windows 的 FUSE
确保 Windows 虚拟机(客户机)正在运行。
首先,我们需要安装 WinFSPWindows File System Proxy FUSE for Windows。这使你能够毫无困难地挂载任何类 UNIX 文件系统。
从客户 Windows 计算机打开 WinFSP 的 GitHub 页面。
> **[下载 WinFSP 安装程序][7]**
下载 WinFSP .msi 安装程序。
在 Windows 虚拟机上安装软件包。安装软件包时请确保选择 “Core”。完成安装。
![WinFSP 设置][8]
#### 创建 VirtIO-FS 服务
进入 `stable-virtio` 文件夹,从以下地址下载 `virtio-win-guest-tools.exe`
> **[下载 virtio-win-guest-tools][9]**
![下载客户机工具][10]
在 Windows 虚拟机上安装软件包。
![Virtio-Win-driver 安装][11]
安装完成后,**重启** Windows 虚拟机。
重启后,在开始菜单中搜索打开“设备管理器”。
进入系统设备并查找 “VirtIO FS 设备”。它应该被识别并且驱动程序应该由 Red Hat 签名。
**注意**:(可选)如果你看到感叹号,即未检测到驱动程序,请按照 [此处][12] 说明下载 ISO 文件、安装它并手动检测驱动程序。
![Make sure the Virt IO driver is signed and installed][13]
打开开始菜单并搜索“服务”。
向下滚动找到 “VirtIO-FS Service”。右键单击并单击“开始”启动该服务。
或者,你可以以管理员身份从 PowerShell/命令提示符运行以下命令来启动服务。
```
sc create VirtioFsSvc binpath="C:\Program Files\Virtio-Win\VioFS\virtiofs.exe" start=auto depend="WinFsp.Launcher/VirtioFsDrv" DisplayName="Virtio FS Service"
```
```
sc start VirtioFsSvc
```
![启动 Virt IO 服务][14]
服务启动后,打开资源管理器,你应该看到你在上面第一步中创建的挂载标签,该标签应映射为 Z 驱动器。见下图。
![挂载标签在 Windows 中映射为 Z 驱动器][15]
你现在可以根据需要使用修改后的权限访问整个 Linux 文件夹。
以下是在 Linux Mint 和 Windows 客户虚拟机中访问的同一文件夹的并排比较。
![访问和共享 Windows 客户机和 Linux 主机中的文件夹][16]
### 总结
我希望你现在能够在 Windows 客户机和 Linux 主机系统之间共享文件夹。本文在 Linux Mint 中测试了上述方法。它应该也适用于 Ubuntu、Fedora。
如果上述方法有效,请在下面发表评论以造福他人。
### 参考
- [https://virtio-fs.gitlab.io/howto-windows.html][12]
- [https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/][17]
- [https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md][18]
- [https://github.com/virtio-win/kvm-guest-drivers-windows/issues/473][19]
*题图MJ/91c30453-5939-4368-b885-c4cb84e732bf*
--------------------------------------------------------------------------------
via: https://www.debugpoint.com/kvm-share-folder-windows-guest/
作者:[Arindam][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed/
[1]: https://virt-manager.org/
[2]: https://libvirt.org/manpages/libvirtd.html
[3]: https://www.debugpoint.com/share-folder-virt-manager/
[4]: https://www.debugpoint.com/wp-content/uploads/2023/06/Open-the-console-settings.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2023/06/Enable-shared-memory.jpg
[6]: https://www.debugpoint.com/wp-content/uploads/2023/06/Add-a-file-system-mount-for-windows.jpg
[7]: https://github.com/winfsp/winfsp/releases/
[8]: https://www.debugpoint.com/wp-content/uploads/2023/06/WinFSP-set-up.jpg
[9]: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/
[10]: https://www.debugpoint.com/wp-content/uploads/2023/06/Download-guest-tools.jpg
[11]: https://www.debugpoint.com/wp-content/uploads/2023/06/Virtio-Win-driver-installation.jpg
[12]: https://virtio-fs.gitlab.io/howto-windows.html
[13]: https://www.debugpoint.com/wp-content/uploads/2023/06/Make-sure-the-Virt-IO-driver-is-signed-and-installed.jpg
[14]: https://www.debugpoint.com/wp-content/uploads/2023/06/Start-the-Virt-IO-Service.jpg
[15]: https://www.debugpoint.com/wp-content/uploads/2023/06/The-mount-tag-is-mapped-as-Z-drive-in-windows.jpg
[16]: https://www.debugpoint.com/wp-content/uploads/2023/06/Access-and-share-folder-in-Windows-guest-and-Linux-host-2048x1280.jpg
[17]: https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/
[18]: https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md
[19]: https://github.com/virtio-win/kvm-guest-drivers-windows/issues/473
[0]: https://img.linux.net.cn/data/attachment/album/202307/22/155908ypin2xpzoxsrsx4n.jpg