如何将内容从主机复制并粘贴到KVM虚拟机中?

我有一个使用Virtual Machine Manager创建的QEMU/KVM虚拟机。
我希望能够在主机上复制文本并粘贴到客户机中,反之亦然。
如何在主机和客户机之间共享剪贴板?

1相关链接:https://unix.stackexchange.com/questions/109117/virt-manager-copy-paste-functionality-to-the-vm - Ciro Santilli OurBigBook.com
1这是一种DIY解决方案,我只是在我的虚拟机上使用netcat打开了一个端口,无论我发送什么内容,都会出现在我的虚拟机的netcat监听器上。 - Haleem Yousef
4个回答

解决方案很简单。只需在客户虚拟机中安装spice-vdagent包即可:
sudo apt install spice-vdagent

剪贴板会自动共享 - 我们可以在主机和客户机之间进行复制和粘贴。

1有没有类似于 spice-vdagent 的东西可以用于 Windows 客户机(在 Linux 主机上)? - Bengt Olsson
3@BengtOlsson https://www.spice-space.org/download/binaries/spice-guest-tools/ - timelf123
3你可以通过ssh与客户(kvm)简单地连接,并且在主机的终端上有可用的剪贴板。 - imdzeeshan
2如何在Windows上进行操作? - MUY Belgium
5@MUYBelgium 对于Windows客户端,请尝试使用此链接。如需更多信息,请访问此处链接,并查看Windows二进制文件部分。 - Kong Chun Ho
5在命令行界面对我不起作用。 - Pavel Niedoba
16不得不重新启动客户端才能使其正常工作。 - Philippe Gachoud
我无法使用这个确切的设置使其工作:https://askubuntu.com/questions/884534/how-to-run-ubuntu-desktop-on-qemu/1046792#1046792 - Ciro Santilli OurBigBook.com
不工作... - 71GA
在MacOS主机上无法工作。 - 17xande
还需要启动和启用 systemctl start spice-vdagentd systemctl enable spice-vdagentd - Bill McGonigle
spice-vdagent是否应该与客户端的CLI(无GUI)一起工作?我猜不会,因为MAN页面声称它是一个“X11会话代理”。 - user643011

对于我的Linux Mint 18.2 Sonya机器{{link1:timelf123 提供了答案}}:

  • 在我的Windows客户机(Windows 7)中下载并安装{{link2:spice-guest-tools-latest.exe}}。
  • 在此之前,在我的QEMU/KVM 虚拟机管理器中,我必须将客户机的显示切换到Spice
  • 在此之前,回到我的Linux主机上,我必须启动Synaptic软件包管理器并安装gir1.2-spice-client-gtk-3.0

1抱歉。这就是全部内容。"“timelf123的链接”是他(timelf123)对上一个回答中的评论的引用。我明白那不太清楚。事后看来,或许我应该留下评论而不是给出答案。 - user435822
1非常感谢您的澄清!我直接将链接包含在您的回答中,以使其更加清晰明了。 - Melebius

如果有人问 - 如果是Ubuntu服务器或类似的系统怎么办?
别绕圈子了 - 在虚拟机上安装openssh-server,当你通过ssh登录时,将内容复制粘贴到你喜欢的终端中。

虽然这可能不是直接回答问题的方法,但如果您可以通过ssh从您喜欢的终端所在的网络连接到主机,这是一个可行的选择。另外,如果使用virt-viewer,似乎需要运行X服务器才能通过SPICE工作剪贴板,但如果安装了spice-vdagent,则应该可以在virt-manager中正常工作。 - Vincent Gerris
1这是一种“超越常规思维”的方式,尽管它没有直接回答问题,但如果访客是一台Linux类型的机器,这是最好的答案。之前这个答案被踩了,但我觉得有点过于苛刻。 - ISparkes

在2021年,qemu使用qemu-vdagent chardev来进行复制和粘贴操作,默认情况下会关闭剪贴板功能,因此仅仅在客户操作系统中安装spice-vdagent软件包是无法解决问题的。
2021年的解决方案是:
安装`spice-vdagent`软件包,就像前面的回答所说的那样。
确保qemu支持spice(在`./configure`选项中使用`--enable-spice --enable-spice-protocol`)。
使用以下命令启动qemu:
``` qemu-system-x86_64 [ ... ] \ -chardev qemu-vdagent,id=ch1,name=vdagent,clipboard=on \ -device virtio-serial-pci \ -device virtserialport,chardev=ch1,id=ch1,name=com.redhat.spice.0 ```
附注:我的qemu有一个副作用,即由于vdagent的存在,鼠标移动更加流畅。

参考:https://www.kraxel.org/blog/2021/05/qemu-cut-paste/


2不适用于我..无效的参数'clipboard' - cesarpachon
是的,clipboard 参数无效。这可能是因为未启用 Spice 功能。 - fsevenm
我不明白第二步,也没有在你的参考资料中看到关于第二步的提及。你能解释一下吗? - João Pimentel Ferreira
1@João Pimentel Ferreira:谢谢你的提问。我自己从源代码构建了qemu。我的答案中第2步提到了构建qemu以支持spice的参数。这些参数写在一个名为`configure'的配置文件中,该文件由Makefile使用。因为它位于当前文件夹中,所以指定了路径"./"。关于configure脚本的详细信息可以在这里找到:https://www.gnu.org/prep/standards/html_node/Configuration.html - zzzhhh