如何在 KVM 中将文件从主机操作系统发送/上传到来宾操作系统?(不是文件夹共享)

如何在 KVM 中将文件从主机操作系统发送/上传到来宾操作系统?(不是文件夹共享)

我必须为在 KVM 虚拟机管理程序之上运行的来宾操作系统提供一个配置文件。

我已经阅读过有关 KVM 中主机和来宾之间具有“qemu”和 9P virtio 支持的文件夹共享选项的信息。我想了解任何可以帮助从主机到访客进行一次性文件传输的简单程序。

请告诉我,如何在客户操作系统运行时传输文件,以及在客户操作系统开始运行时使文件可供客户操作系统使用的可能方法(例如打包文件并在可能的情况下与磁盘映像集成)。

主机操作系统将是linux。

答案1

只是想到了两种不同的方法:

  • 通过网络传输文件。例如,您可以在主机上运行 httpd 并使用任何 Web 浏览器或wget/curl下载文件。可能是最简单和方便的。
  • 使用要传输的文件在主机上构建 ISO 映像。然后将其附加到访客的 CD 驱动器。

    genisoimage -o image.iso -r /path/to/dir
    virsh attach-disk guest image.iso hdc --driver file --type cdrom --mode readonly
    
    • 您可以使用mkisofs代替genisoimage.
    • 您可以使用 GUI(例如virt-manager,而不是virshCUI)将 ISO 映像附加到来宾。
    • 您需要事先创建一个虚拟机,提供该虚拟机的 ID 作为guest。您可以通过查看现有虚拟机virsh list --all

答案2

在启动来宾之前执行此操作的另一种简单方法是简单地将来宾文件系统安装在主机上,请参阅这里。然后您只需将文件复制到已安装的文件系统即可。例如,对于 QCOW2 图像,您可以执行以下操作:

sudo modprobe nbd max_part=63
sudo qemu-nbd -c /dev/nbd0 <image_filename>.cow

然后您可以通过在图形文件管理器中打开它或使用命令来安装它mount

答案3

另一种方法是使用 guestmount 实用程序

  1. 关闭访客

  2. 挂载访客磁盘 guestmount -a ~/win10.vdi -m /dev/sda3 /mnt

  3. 编辑 /mnt 中的 guest 文件

  4. 启动访客

答案4

另一种方法是使用 USB 闪存驱动器。

虚拟机管理器 > 虚拟机 > 重定向 USB 设备

相关内容