如何在 Linux 主机和 KVM 中的 Windows 客户机之间共享文件夹

系统 Linux
在本指南中,你将了解如何在 Linux 主机(例如使用 KVM 的 Fedora、Ubuntu 或 Linux Mint)下运行的 Windows 客户机之间共享文件夹。

virt-manager 应用(带有 libvirt)和软件包提供了一组灵活的工具来管理 Linux 中的虚拟机。它是自由开源的,用于 KVM 虚拟机和其他虚拟机管理程序。

在上一篇文章中,我解释了 如何在 Linux 客户机和 Linux 主机之间共享文件夹。然而,当你尝试使用 Windows 客户机和 Linux 主机创建共享文件夹时,这是一个有点困难和复杂的过程。因为两种操作系统的工作方式不同,需要进行大量配置。

按照下面提到的说明在 Windows 客户机和 Linux 主机之间共享文件夹。

关于 virtiofs 的说明

共享文件和文件夹由名为 virtiofs 的 libvirt 共享文件系统提供支持。它提供了访问主机上目录树的所有功能和参数。由于大多数 virt-manager 虚拟机配置都会转换为 XML,因此共享文件/文件夹也可以由 XML 文件指定。

注意:如果你正在寻求在两台 Linux 计算机(客户机和主机)之间使用 KVM 进行文件共享,请 阅读此文

使用 KVM 在 Windows 客户机和 Linux 主机之间共享文件夹

以下说明假设你已在任何 Linux 主机的 virt-manager 中安装了 Windows。如果没有,你可以阅读有关如何在 Linux 中安装 Windows 的完整指南。

在 virt-manager 中设置挂载标签

首先,确保你的客户虚拟机已关闭。从 virt-manager GUI 中,选择虚拟机并单击“打开Open”以调出控制台设置。

打开控制台设置打开控制台设置

单击工具栏中显示虚拟硬件详细信息的图标。然后单击左侧面板上的“内存Memory”。

选择选项“启用共享内存Enable shared memory”。单击“应用Apply”。

确保 XML 在 XML 选项卡中显示 <access mode="shared"/>,如下所示。

<memoryBacking>
    <source type="memfd"/>
    <access mode="shared"/>
  </memoryBacking>

启用共享内存启用共享内存

单击底部的“添加硬件Add hardware”。

从添加新硬件窗口的左侧面板中选择“文件系统Filesystem”。

然后在详细信息选项卡中选择 “驱动Driver” 为 “virtiofs”。单击“浏览browse > 浏览本地browse local”并从 Linux 系统中选择主机路径

在“目标路径Target path”中,输入你想要的任何名称。它只是一个文件标签,将在挂载过程中使用。目标路径中的此名称将作为 Windows 中的驱动器挂载,即资源管理器中的我的电脑。

我已添加 “linux_pictures” 作为目标挂载标签。

因此,如果我想访问图片文件夹(/home/debugpoint/Pictures),示例设置可能如下:

为 Windows 添加文件系统挂载为 Windows 添加文件系统挂载

单击“完成Finish”。

上述配置的 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 虚拟机,然后单击“运行Run”启动虚拟机。如果未显示虚拟机,请单击“显示图形控制台”(工具栏中的监视器图标)。

设置 WinFSP – 适用于 Windows 的 FUSE

确保 Windows 虚拟机(客户机)正在运行。

首先,我们需要安装 WinFSP(Windows File System Proxy)– FUSE for Windows。这使你能够毫无困难地挂载任何类 UNIX 文件系统。

从客户 Windows 计算机打开 WinFSP 的 GitHub 页面。

下载 WinFSP 安装程序

下载 WinFSP .msi 安装程序。

在 Windows 虚拟机上安装软件包。安装软件包时请确保选择 “Core”。完成安装。

WinFSP 设置WinFSP 设置

创建 VirtIO-FS 服务

进入 stable-virtio 文件夹,从以下地址下载 virtio-win-guest-tools.exe

下载 virtio-win-guest-tools

下载客户机工具下载客户机工具

在 Windows 虚拟机上安装软件包。

Virtio-Win-driver 安装Virtio-Win-driver 安装

安装完成后,重启 Windows 虚拟机。

重启后,在开始菜单中搜索打开“设备管理器”。

进入系统设备并查找 “VirtIO FS 设备”。它应该被识别并且驱动程序应该由 Red Hat 签名。

注意:(可选)如果你看到感叹号,即未检测到驱动程序,请按照 此处 说明下载 ISO 文件、安装它并手动检测驱动程序。

Make sure the Virt IO driver is signed and installedMake sure the Virt IO driver is signed and installed

打开开始菜单并搜索“服务”。

向下滚动找到 “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 服务启动 Virt IO 服务

服务启动后,打开资源管理器,你应该看到你在上面第一步中创建的挂载标签,该标签应映射为 Z 驱动器。见下图。

挂载标签在 Windows 中映射为 Z 驱动器挂载标签在 Windows 中映射为 Z 驱动器

你现在可以根据需要使用修改后的权限访问整个 Linux 文件夹。

以下是在 Linux Mint 和 Windows 客户虚拟机中访问的同一文件夹的并排比较。

访问和共享 Windows 客户机和 Linux 主机中的文件夹访问和共享 Windows 客户机和 Linux 主机中的文件夹

总结

我希望你现在能够在 Windows 客户机和 Linux 主机系统之间共享文件夹。本文在 Linux Mint 中测试了上述方法。它应该也适用于 Ubuntu、Fedora。

如果上述方法有效,请在下面发表评论以造福他人。

参考

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2023-01-28 21:31:03

系统运维

2022-07-21 11:31:28

UbuntuWindowsLinux

2018-06-26 08:55:35

LinuxWindows共享文件

2018-05-04 08:57:00

LinuxWindows共享文件

2022-05-03 10:08:53

WindowsLinux文件共享

2023-02-07 12:30:41

2017-03-02 15:01:22

客户机宿主机网络连接

2012-06-27 09:41:51

ibmdw

2019-07-08 08:59:41

Docker容器主机

2014-02-12 10:58:05

Linux文件夹文件权限

2018-01-24 15:35:22

Linux隐藏文件管理器

2019-12-30 14:06:42

Windows 10文件夹Windows

2018-11-05 10:55:39

2010-01-29 09:30:14

Linux瘦客户机

2011-08-02 09:38:58

ActiveDirec域控制器共享文件夹

2019-04-18 10:35:55

Windows 10重命名文件夹

2009-12-22 16:10:35

Linux客户机

2019-04-26 09:50:21

Linux压缩文件文件夹

2015-06-01 12:19:03

FedoraCentOSSamba

2022-11-16 16:28:21

点赞
收藏

51CTO技术栈公众号