我在 Ubuntu 19.10 主机上运行了一组 KVM 机器。这组机器包括 Linux 和 Windows 客户机,它们都存在这个问题:
复制Ctrl+C
仅每隔一次有效。也就是说,在 KVM 客户机中,我选择网页上的一些文本,点击Ctrl+C
,将光标放在文本区域中,点击Ctrl+V
。有一次成功,另一次失败。完全一致的交替。Linux 和 Windows 客户机均如此。
现在,最有趣的部分是,只有当客户机配置为使用 Spice 作为显示协议时,才会发生此问题。如果我将其更改为 VNC,则复制粘贴(在客户机内)可以完美运行。(请注意,此时我不太在意客户机和主机之间的复制粘贴,因此我可以切换到 VNC 并感到高兴,但我无论如何都在挖掘这一点。)
搜索发现人们确实遇到了这个问题,尽管没有明确迹象表明它与 Spice 有关:
- 复制和粘贴仅在第二次尝试时有效
- https://www.virtualbox.org/ticket/14964
- https://social.technet.microsoft.com/Forums/en-US/f4eba5af-ca1f-4296-8cca-a70140e4f66b/copy-paste-doesnt-work-first-time-but-works-on-2nd-try
因此,就我而言,这个问题与 Spice 的关系很明显。有什么方法可以调试/调整 Spice 以找到问题的根源吗?
更新
我刚刚在 18.04 和 19.04 主机上测试了这个问题。剪贴板复制故障(类似于上述故障)在客户机中也会发生,但是仅有的当至少有 2 个客户机正在运行时 — 就好像 Spice 遇到了某种竞争条件,试图管理所有正在运行的客户机之间的剪贴板。暂停除一个客户机之外的所有客户机就足以让剪贴板在其中正常工作。相比之下,在 19.10 中,即使只有一奔跑嘉宾。
答案1
virt-viewer 版本 9.0 有一个启用/禁用剪贴板共享的选项,可以随时从设置中打开/关闭它,这解决了这个问题,但最新的 Ubuntu 版本有 7.0 版本,Ubuntu 18.04 有 6.0 版本
解决此问题的一种方法是反向移植这次提交并从头开始重建 virt-viewer 包
步骤如下:
sudo apt build-dep virt-viewer
apt source virt-viewer
cd virt-viewer-7.0 # or virt-viewer-7.0
下载并应用此补丁,但它与当前的 ubuntu 版本有一些冲突,这是已解决冲突的同一补丁:
wget https://pastebin.com/raw/yNNp40D9 -O cliboard-patch.diff
patch -p1< cliboard-patch.diff
您可能需要根据您的 ubuntu/distor 版本解决一些冲突 在那之后:
./configure --prefix=/usr
make
在 ./src/remote-viewer 测试新编译的文件,您必须从“文件”菜单 >“首选项”禁用剪贴板共享
如果有效,请将其安装在您的文件系统上
sudo make install