我必须为在 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
,而不是virsh
CUI)将 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 实用程序
关闭访客
挂载访客磁盘
guestmount -a ~/win10.vdi -m /dev/sda3 /mnt
编辑 /mnt 中的 guest 文件
启动访客
答案4
另一种方法是使用 USB 闪存驱动器。
虚拟机管理器 > 虚拟机 > 重定向 USB 设备