使共享剪贴板适用于 qemu

使共享剪贴板适用于 qemu

共享剪贴板对我不起作用。如何修复它?

主机(Debian 破坏者)具有:

  • 标准系统实用程序
  • 乌夫沃(ufw 启用,拒绝传入,允许传出,拒绝路由)
  • apparmor-配置文件,apparmor-配置文件-额外
  • 斯特姆
  • xserver-xorg-core、xserver-xorg-input-libinput、xinit
  • xserver-xorg-视频-英特尔
  • 江万民
  • 虚拟管理器
  • /var、/tmp、/var/lib/dpkg、/home 挂载有 nodev、noexec、nosuid
  • xclip、x11-apps

我将 vm 用户(非 root)添加到 libvirt 组。

访客(Debian 破坏者)具有:

  • 标准系统实用程序
  • 乌夫沃(ufw 启用,拒绝传入,允许传出,拒绝路由)
  • apparmor-配置文件,apparmor-配置文件-额外
  • xserver-xorg-core、xserver-xorg-input-libinput、xinit
  • xserver-xorg-视频-qxl
  • 江万民
  • 香料vdagent
  • xclip、x11-apps

通过主机的 virt-manager,我将视频设置为“qxl”,将显示香料设置为“spice server”。这是“使用 virt-manager 启用 SPICE”部分中的说明:https://www.linux-kvm.org/page/SPICE

“显示虚拟硬件详细信息”中的“显示 Spice”硬件有以下设置:

Spice Server
------------
type: Spice server
Listen type: Address
Address: Localhost only
Port: [x] Auto (Port:5900)
TLS port: [x] Auto

由于重新启动虚拟机会神奇地使“网络”硬件消失,因此我使用 GUI 创建了另一个“网络”硬件。


不知何故,在来宾中,spice-vdagent 不会自动启动。我将其设置为自动启动,如下QEMU/KVM SPICE - 复制和粘贴功能适用于 Windows VM,但不适用于 Debian VM

但共享剪贴板仍然不起作用。


在 GUI 中,“Channel Spice”硬件显示“状态:已断开连接”。如何连接通道?

答案1

  • service spice-vdagent start与来宾中的 root 用户一起使用。
  • 启动X后(使用startx命令),在来宾中以非 root 用户spice-vdagent身份运行。x-terminal-emulator

在 virt-manager gui 中,“Channel Spice”和“Channel qemu-ga”仍然显示“State:disconnected”。但共享剪贴板有效。

使用ufw就可以了。

答案2

答案就在/usr/share/doc/spice-vdagent/README.md

您需要spice-vdagentd运行并运行一个spice-vdagentX11 会话。目前,剪贴板共享依赖于 X11 剪贴板,因此您可能需要 Wayland 的解决方法。

答案3

qemu需要使用一两个特殊的 make 标志进行编译以启用 SPICE 支持(可能已被弃用)。截至 2024 年,这些标志可能不是默认标志。

  • 乌班图
  • Debian -或许?virt-manager似乎已损坏并且不显示虚拟机属性,并且似乎不可能设置正确的qemu标志来启用香料通道,以便来宾可以与主机进行通信

因此,根据您的发行版,您可能需要:

  1. 从源代码编译 qemu 以便能够使用剪贴板(即使您尝试设置正确的 SPICE 通道并在来宾中安装 QEMU 半虚拟化工具和 SPICE 工具,并使用正确的命令行启动选项(或任何启动选项) virt-manager 正在幕后执行(ps aux?)),它不会工作;您可以通过检查servicesWindows 上的系统或 Linux 客户机上的同等系统来注意到,并可能确认 qemu vdagent 有错误或未尝试启动;如果通道配置错误或不可用,它将返回错误弹出窗口或在日志/标准输出中)。

如果它对某人有帮助...就我个人而言,在尝试解决此问题 18 小时后,我尝试迁移到 virtualbox 和 vmware。

  1. (Virtualbox 剪贴板已损坏,因此不起作用。)
  2. (Vmware 非常难以安装;实际的命令是vmplayer并且需要手动启动您的例如 gnome 或诸如此类的东西/usr/lib/policykit.../...agent才能第一次运行以接受 EULA。(然后,如果用户不是 OP 之前运行过 vmdk 映像,并且虚拟机显示陈旧的旧版本)快照数据或由于 vmx 字典错误而无法导入,我个人使用qemu-img从转换.vmdk.qcow2,然后.qcow2返回到.vmdk,并销毁了 vmdk 目录中除.vmx/.vmdx文件之外的所有其他内容...当然在进行备份之后...按顺序导入。))

当然你可以:

  1. 安装自定义剪贴板解决方案;用户空间程序可以通过网络同步剪贴板内容(在来宾上自动启动)。这种“疯狂的解决方案”(不是那么疯狂)可能是有道理的,因为三分之二的虚拟化解决方案已经破坏了“开箱即用”的剪贴板功能。但是,如果您不相信它具有良好的安全性,您可能希望设置防火墙规则以正确锁定它。此类程序并不多,建议它们可能超出了本堆栈交换的范围。

相关内容