Hyper-V内的虚拟机复制粘贴

时间:2024-03-28 18:25:43

实践环境

物理机:Windows10教育版,操作系统版本 17763.914

虚拟机:Ubuntu18.04.3桌面版

在Hyper-V中的刚安装好Ubuntu虚拟机之后,会发现鼠标滑动很不顺畅,也不能向虚拟机中拖拽文件或者复制内容。在VMware中,可以通过安装VMware tools来使物理机和虚拟机之间达到更好的交互。在Hyper-V中,也有这样的工具。这款工具可以完成更好的鼠标交互,我的时间结果发现它可以在物理机和虚拟机之间复制粘贴(包括文字和文件),不支持在两者之间拖拽文件。这是一款Windows与XRDP合作开发的工具—— linux-vm-tools,安装过程如下

部分参考 https://techcommunity.microsoft.com/t5/Virtualization/Sneak-Peek-Taking-a-Spin-with-Enhanced-Linux-VMs/ba-p/382415

linux-vm-tools 工具地址

#Get the scripts from GitHub sudo apt-get update sudo apt install git git clone https://github.com/microsoft/linux-vm-tools

执行安装脚本

sudo bash ~/linux-vm-tools/ubuntu/18.04/install.sh # 安装vm-tools

或者
进入下载的文件下
cd ~/linux-vm-tools/ubuntu/18.04/
sudo chmod +x install.sh
sudo ./install.sh

重启

reboot

再安装一次

sudo bash ~/linux-vm-tools/ubuntu/18.04/install.sh

再次安装之后关机

sudo shutdown now

在主机上的Powershell提示符中,执行以下命令:

Set-VM -VMName '你的虚拟机名称' -EnhancedSessionTransportType HvSocket
设置完成之后可以通过以下命令查看是否设置成功
(Get-VM -VMName '你的虚拟机名称').EnhancedSessionTransportType

现在,再启动虚拟机时,就会出现控制虚拟机页面大小的选择,选择之后可以进行连接,选择已xrog进行连接。按上面的教程是可以连接了,但是我这里出现了问题。

Hyper-V内的虚拟机复制粘贴

参考这篇文章找到了解决方案,首先点击下图的图标切换到 基本模式,这样就还能进入虚拟机。

Hyper-V内的虚拟机复制粘贴

安装缺少的依赖项

sudo apt-get install xserver-xorg-core

上述命令会删除一些系统需要的软件包,可能会导致虚拟机鼠标不可用,使用以下命令安装回来

sudo apt-get -y install xserver-xorg-input-all

安装缺少的依赖项之后,需要手动安装xorgxrdp软件包以恢复xRDP功能

apt-get install xorgxrdp

完成之后便能在Hyper-V管理器中通过增强会话的方式以xrog连接虚拟机,但是!不能通过root进行连接。以root用户进行登录连接连接之后秒断,就像登录成功立马注销了一样。这篇文章中提到新建的管理员用户可以实现登录,但是原本的root还是不行。不过倒是不影响使用,可以在非root用户中通过su的方式进入root模式下。

另外

注销当前用户可以退出增强会话的连接

要改变虚拟机全屏下的大小的话,这篇文章给出了一种解决方案,但是在我的环境下只能在最开始连接的时候设置虚拟机屏幕分辨率。

Hyper-V内的虚拟机复制粘贴

设置为物理机的分辨率可以实现虚拟机全屏。

Hyper-V内的虚拟机复制粘贴

我这里还遇到了另外一个问题,使用 增强会话 模式连接是要求系统处于没有用户登录的状态的,我不知道什么时候设置了某个用户的开机自动登录,导致了以增强会话模式无法连接,这里就需要取消指定用户的自动登录。

sudo vim /etc/gdm3/custom.conf

找到 AutomaticLoginEnableAutomaticLogin 两个参数,确定后者是你的用户名,将前者设置为 False即可取消了该用户开机自动登录

Hyper-V内的虚拟机复制粘贴