实现的效果:
- xUbuntu运行正常
- 增强会话(enhanced session)功能正常
- 共享文件夹
install.sh可以去https://github.com/microsoft/linux-vm-tools/pulls看看,官方没有维护的脚本有爱好者提供了修改版。
安装Ubuntu
镜像是xUbuntu 2004LTS桌面版。
第一步,创建虚拟机。
打开Hyper-V管理器,新建一个“虚拟机”:
在“指定代数”步骤,要选择第二代。“配置网络”建议选择未连接,避免Ubuntu安装中下载文件(非常慢)。“安装选项”选上之前下载好的iso。
完成新建之后不要急着开机,选中刚新建的虚拟机,点击右侧“设置”,选择“安全”,关掉安全启动。
现在可以开启虚拟机,双击小画面打开图形界面,按正常步骤安装Ubuntu。
共享文件夹
为什么要做这一步:增强会话脚本是放在githubusercontent上的,但是需要爬墙才能下载,所以要让主机帮忙做这一步。
在主机的“程序与功能”中,打开Windows功能的“SMB 1.0/CIFS 文件共享支持”,如果需要重启就先重启。
开始菜单搜索“管理高级共享设置”,在“所有网络”中打开“启用共享以便……”的选项。
在主机上新建一个文件夹用于共享。新建之后右键属性,在“共享”选项卡下点击“共享”,弹出来的对话框直接点击右下角“共享”,会显示已经共享,注意记住\\开头的地址——一般是“\\计算机名字\共享文件夹名字”。
在虚拟机关闭的情况下,点击“设置”,将网络适配器的虚拟交换机选择为“Default Switch”,让虚拟机能够联网。
启动虚拟机,安装cifs-utils。新建一个文件夹用于挂载共享。
将前面提到的“\\计算机名字\共享文件夹名字”中所有的“\”换成“/”,用以下命令在Ubuntu中挂载共享文件夹:
sudo mount.cifs //计算机名字/主机共享文件夹名字 Ubuntu中的共享文件夹路径 -o user=主机上的用户名字
会要求输入主机上的用户的密码,输入正确之后就挂载完成了。在主机上的共享文件夹里放文件进去,就可以在虚拟机中看见。但是虚拟机重启之后要重新挂载。
增强会话
在主机上下载脚本https://raw.githubusercontent.com/microsoft/linux-vm-tools/2282027e99c0e56b0ebb215f562b632bd52a8123/xubuntu/20.04/install.sh,放入共享文件夹里。
在Ubuntu中将脚本复制到用户文件夹下,sudo运行它。脚本会检查软件更新,如果更新完需要重启虚拟机会提示手动重启,重启完虚拟机再运行脚本,就会安装xrdp。等运行完,可能会报错,但是不管。
完成以上步骤后,关闭虚拟机。打开PowerShell(管理员),输入以下命令:
Set-VM -VMName 虚拟机名字 -EnhancedSessionTransportType HvSocket
其中虚拟机名字是Hyper-V管理器中显示的名称,比如:
完成之后就可以启动虚拟机了,打开界面就会用增强会话模式启动了。增强会话可以共享剪贴板,直接粘贴文字等等,基本感觉不到延迟。
虽然知乎上很多说Hyper-V垃圾的,但是实际用起来图形界面性能足够(完全感觉不到卡顿或者粘滞),CPU性能更是吊打VirtualBox,用来写代码是很OK的,占用资源和对主机的性能影响也根本没有传说中的那么差(就是完全感觉不到)。对于AMD Ryzen的支持也没有问题(我的是Ryzen 3100)。