Hyper-V 的增强会话能不能自己开?


可以

啥?

微软买系统送了一个虚拟机平台叫Hyper-V, 其实这个东西跑起来性能比VirtualBox 啥的快, 还有docker支持. 但是问题在于, 很多必要的功能, 比如共享剪贴板, USB设备, 都需要Hyper-V的增强回话模式才能用.

其实用过之后你会发现, 这个增强会话模式其实就是用远程桌面的方式连接到虚拟机. 也就是要用到RDP协议来连接. 这对于Windows虚拟机当然是很香的, 但是对于Linux就很痛苦.

微软在Hyper-V管理器的”快速创建”这个栏目中是给了一些常用的镜像, 比如Ubuntu 18.04的镜像, 帮你配好了xrdp, 可以用来跟Linux进行RDP协议的链接. 人家给你配好了, 你直接用就可以了.

当然也不是没有别的问题. 下载太慢了. 而且是预配好的, 你自己可以定制的东西不多. 所以我自己研究了一下, 其实你自己装的ubuntu系统, 也是可以配置的, 而且人家微软也帮你写好了脚本, 就是有些地方跑起来不太灵光, 得自己弄一下就好了.

搞!

首先找到微软这个VM-tool的git仓库, 里面有我们想要的配置脚本. 在这儿.

我们现在假定你装好了Ubuntu, 1804版本, 注意不管是18.04.2, 18.04.3, 18.04.4他们都不一样, 只不过大概可以通用. 其实后面的版本也差不多, 因为桌面环境没什么太大变化. 唯独就是16.04和18.04的桌面环境换了, 所以会有所区别.

现在你可以用你熟悉的git把它的脚本clone下来

git clone https://github.com/microsoft/linux-vm-tools

然后就是跑一遍linux-vm-tools/18.04/instal.sh这个脚本, 跑之前记得先给它加个运行的权限:

sudo chmod +x ./install.sh
sudo ./install.sh

这时候微软已经觉得OK了, 但其实还不行, 你看到它让你先重启一轮, 你就先重启

reboot

然后再跑一次

sudo ./install.sh

然后再关机

shutdown now

现在你可以用powershell设定一下给这个虚拟机用上增强会话的RDP协议了:

用Powershell(管理员)跑一下:

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

这个时候, 按道理你可以用上增强会话了, 但其实还不行, 根据这篇文章, 你还是会遇到登录不了的问题.

这个时候你需要这样:

先装一个依赖:

sudo apt-get install xserver-xorg-core

再补上这个依赖挤掉的一些包, 因为据说这个依赖安装上去的时候会导致有些包被挤掉, 然后会导致鼠标用不了, 然鹅我并没有遇到这个问题, 还是装上吧.

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

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

apt-get install xorgxrdp

现在你终于可以愉快地用增强会话来连接了.