
摘要在 Ubuntu 虚拟机中安装 open-vm-tools 后Windows 与 Ubuntu 之间的复制粘贴功能可能仍然失效。本文提供一种无需卸载重装的解决方案通过手动启动用户态 vmtoolsd 进程恢复剪贴板共享并创建 systemd 用户服务实现开机自启彻底解决复制粘贴问题。注意首先确保 Ubuntu 已存在 open-vm-tools 和 open-vm-tools-desktop 两个工具再进行下面的步骤。一、解决不能 Windows 与 Ubuntu 之间内容的复制粘贴1、杀掉可能残留的进程让桌面组件重新加载sudo killall -q vmtoolsd2、重启open-vm-tools主服务器sudo systemctl restart open-vm-tools3、检查open-vm-tools主服务器状态sudo systemctl status open-vm-tools如果看到active (running)且没有红色的FAILED或error字样说明 open-vm-tools 服务器运行正常。4、使用ps命令查询vmtoolsd进程是否在运行。ps aux | grep vmtoolsd执行命令之后应该会看到两个进程一个 root一个 zysk用户名这个进程就是桌面剪切板组件。下图是我输入命令之后的输出从图中可以看出只有一个 root 进程在运行没有用户态的vmtoolsd进程所以就导致复制粘贴用不了。5、在终端执行下面命令就会输出下面图片的内容。/usr/bin/vmtoolsd -n vmusr打开一个新的终端重新输入ps aux | grep vmtoolsd命令就会输出下图内容可以看到现在已经存在两个vmtoolsd进程一个是 root 用户一个 zysk 用户所以现在就可以测试复制粘贴功能了。6、当前终端不要关闭重新打开一个终端或者文本文件测试 Windows 与 Ubuntu 之间的内容复制粘贴。如果可以复制粘贴下面的步骤就是设置每次系统重启自动加载这个进程不用每次手动去运行这个进程。二、解决系统重启自动加载桌面剪切板组件执行下面操作时需要将执行 /usr/bin/vmtoolsd -n vmusr 命令的终端进程退出防止输入下面命令出现报错。1、创建用户级systemd服务目录如果不存在输入下面命令mkdir -p ~/.config/systemd/user2、创建服务器文件vim ~/.config/systemd/user/vmtoolsd-user.service3、在vmtoolsd-user.service文件中输入以下内容之后保存退出。[Unit] DescriptionVMware Tools User Service (Clipboard/DnD) Afternetwork.target [Service] Typesimple ExecStart/usr/bin/vmtoolsd -n vmusr Restartalways RestartSec3 [Install] WantedBydefault.target4、重新加载用户级systemd配置输入下面命令systemctl --user daemon-reload5、启用服务开机自启输入下面命令systemctl --user enable vmtoolsd-user.service6、立即启动服务输入下面命令systemctl --user start vmtoolsd-user.service7、检查服务状态输入下面命令如果看到active (running)且没有红色的FAILED或error字样说明 vmtoolsd-user.service 服务器运行正常。systemctl --user status vmtoolsd-user.service8、重新使用ps命令查看进程输入下面命令可以看到有两个vmtoolsd进程在运行。ps aux | grep vmtoolsd9、重启Ubuntu输入下面命令sudo reboot10、重启完成之后就可以验证 Windows 与 Ubuntu 之间内容的复制粘贴功能了。至此Ubuntu 安装 open-vm-tools 和 open-vm-tools-desktop 后Windows 与 Ubuntu 之间还是不能复制粘贴的问题已得到解决。感谢我可爱帅气的铁子们有误的地方欢迎铁子们提出来发在评论区。