第 20 章 在主机及其虚拟机间共享文件
您可能需要在主机系统和其运行的虚拟机(VM)之间共享数据。要快速高效地完成此操作,您可以使用 virtio 文件系统(virtiofs)。
20.1. 使用 virtiofs 在主机及其虚拟机之间共享文件 复制链接链接已复制到粘贴板!
通过使用 virtio 文件系统(virtiofs),您可以在主机和虚拟机(VM)之间共享文件,作为与本地文件系统结构相同的目录树。
20.1.1. 使用命令行在主机和 Windows 虚拟机间共享文件 复制链接链接已复制到粘贴板!
当使用 RHEL 10 作为 hypervisor 时,您可以使用 virtiofs 功能以及 virtio-win 软件包在主机系统和 Windows 虚拟机(VM)之间高效地共享文件。
您可以使用 命令和 virtiofs.exe-i 参数在 Windows 虚拟机上以区分大小写的模式运行 virtiofs 服务。
先决条件
要与虚拟机共享的目录。如果您不想共享任何现有目录,请创建一个新目录,例如: shared-files。
mkdir /root/shared-files
# mkdir /root/shared-filesCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
您已将
virtio驱动程序安装介质附加到虚拟机。 -
您已将
virtio驱动程序安装介质附加到虚拟机。 -
您已在 Windows 虚拟机上安装了
virtio-win软件包。如需更多信息,请参阅在 Windows 客户端中安装 virtio 驱动程序。
流程
对于您要与虚拟机共享的主机的每个目录,请在虚拟机 XML 配置中将其设置为 virtiofs 文件系统。
打开预期虚拟机的 XML 配置。
virsh edit vm-name
# virsh edit vm-nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在虚拟机 XML 配置的
<devices>部分添加类似于以下内容的条目。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 本例设置主机上的
/root/shared-files目录,使其作为host-file-share呈现给虚拟机。
为虚拟机设置共享内存。为此,请将共享内存支持添回到 XML 配置的
<domain>部分:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 引导虚拟机。
virsh start vm-name
# virsh start vm-nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Windows 虚拟机上,安装 WinFsp。为此,请挂载
virtio-winISO 镜像,启动winfspMSI 安装程序,并按照提示进行操作。在安装向导的 Custom Setup 窗口中,选择您要在虚拟机上安装的功能。
启动 virtiofs 服务:
sc start VirtioFsSvc
# sc start VirtioFsSvcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进入 This PC:
File Explorer
This PC 如果正确配置,则
virtiofs可以在 Windows 虚拟机上作为以Z:开始的第一个可用驱动器符提供,然后是后向。例如,my_viofs (Z:)。重要您必须在每次虚拟机重启后重启
virtiofs服务来访问共享目录。可选:要设置额外的
virtiofs实例:停止
virtiofs服务:sc stop VirtioFsSvc sc config VirtioFsSvc start=demand
# sc stop VirtioFsSvc # sc config VirtioFsSvc start=demandCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 WinFSP.Launcher 服务以设置多个 virtiofs 实例:
"C:\Program Files (x86)\WinFsp\bin\fsreg.bat" virtiofs "<path to the binary>\virtiofs.exe" "-t %1 -m %2"
# "C:\Program Files (x86)\WinFsp\bin\fsreg.bat" virtiofs "<path to the binary>\virtiofs.exe" "-t %1 -m %2"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
virtiofs实例挂载到驱动器中。例如,要将带有标签
mount_tag0的virtiofs挂载到Y:驱动器:"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" start virtiofs viofsY mount_tag0 Y:
"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" start virtiofs viofsY mount_tag0 Y:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
重复上述步骤,挂载所有
virtiofs实例。 卸载
virtiofs实例:"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" stop virtiofs viofsY
"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" stop virtiofs viofsYCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
在 Windows 虚拟机上,导航到 This PC:
File Explorer
This PC -
如果您在设置
virtiofs服务时没有指定挂载点,它将使用以z:开头的第一个可用驱动器符,然后后向。 -
如果您设置了多个
virtiofs实例,它们将显示为带有您分配给实例的字母的驱动器。
-
如果您在设置