Ubuntu Hyper-V 客户机显示分辨率 Win 10 + 15.04

我在WINDOWS 10 Surface上使用Hyper-V,并将Ubuntu 15.04作为客户操作系统。在Hyper-V与Windows 8和14.04中,我成功地调整了Ubuntu屏幕大小,使用了这些论坛中的建议。然而,在当前情况下,我没有成功调整大小。由于Surface 4具有巨大的像素数,使得Ubuntu客户操作系统非常难以使用。
我欢迎任何建议。

Screen shot of Hyper-V client

4个回答

使用你选择的编辑器编辑/etc/default/grub。记得使用sudo

例如:

sudo nano /etc/default/grub

改变这一行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

到这里。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"

然后在控制台中输入:
sudo update-grub
reboot

很遗憾,这是Linux Hyper-V客户机可以使用的最高分辨率。
其他虚拟化解决方案有客户机增强功能,可以实现更高的分辨率,如VMware和VirtualBox。
注意:如果您在虚拟机设置中添加了RemoteFX 3D视频适配器,则可能需要将其删除才能使此更改生效。并且请重新启动您的Ubuntu客户机以使其生效。

1文件夹的名称是"default",而不是"defaults",并且应该是"video=",而不是"video-"。因此,正确的行应该是:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"。 - MattSlay
3我还需要添加'sudo apt-get install linux-image-extra-virtual'来获取HyperV显示驱动程序。 - mhouston100
在Windows 10下,使用Hyper-V无法正常工作,无论是Mint还是Elementary。截至2017年9月。 - Matt West
4我在我的虚拟机(第二代)上添加了一个RemoteFX视频适配器。为了使其正常工作,我不得不移除RemoteFX视频适配器。 - E. Moffat
1这个解决方案对我的第一代虚拟机有效,但只有在按照@E.Moffat提到的方法从设置中移除RemoteFX适配器后才起作用。 - Herohtar
刚刚在Windows 10上成功安装了Kubuntu 18.04。 - Paulo Raposo
2在Ubuntu 20.04上似乎无法正常工作。 - Anduin Xue

自从有人提出这个问题(关于Ubuntu 15.04),在Hyper-V和Ubuntu 18.04.1方面,关于“增强会话模式”已经取得了显著的进展。

目前有两种方法:

A. 新系统 ~~ 在Microsoft Hyper-V库中提供优化的Ubuntu桌面镜像

B. 现有系统 ~~ 手动配置xRDP以支持“增强会话模式”

下面是具体详情:

选项 A)

  1. 在Hyper-V上,选择[快速创建]。
  2. 在[创建虚拟机]对话框中,选择[Ubuntu 18.04.1 LTS],然后选择[创建虚拟机]。
  3. 然后完成标准的Ubuntu安装选项。
  4. “增强会话模式”会提示您设置屏幕分辨率、本地资源等。
  5. 注意/谨慎~如果使用驱动器时遇到问题,则可以取消选择[打印机]。

以下是我获取信息的链接:

在Microsoft Hyper-V图库中提供了优化的Ubuntu桌面镜像

使用Hyper-V快速创建功能更加简单地运行Ubuntu虚拟机

选项B)

修改Ubuntu 18.04以使用xrdp 1.1 从GitHub获取脚本 sudo apt-get update sudo add-apt-repository ppa:git-core/ppa sudo apt update; sudo apt install git git clone https://github.com/jterry75/xrdp-init.git ~/xrdp-init
1.2 将脚本设置为可执行并运行它们... cd ~/xrdp-init/ubuntu/18.04/ sudo chmod +x install.sh sudo ./install.sh reboot
1.3 <重启后>再次运行脚本以完成虚拟机的设置 cd ~/xrdp-init/ubuntu/18.04/ sudo ./install.sh
关闭Ubuntu虚拟机
在主机PC上使用管理员权限的powershell运行以下命令注册Ubuntu会话: Set-VM -VMName YourUbuntuVMNameHere -EnhancedSessionTransportType HvSocket
重新启动虚拟机
从Hyper-V连接/登录到XRDP(注意:输入用户名时必须使用小写字母)
注意/谨慎:如果使用驱动器出现问题,则可能需要取消选择[打印机]选项。
这是我获取信息的链接:

在这里


我在尝试执行此操作时遇到了Set-VM: 无法找到与参数名'EnhancedSessionTransportType'匹配的参数。 - PhonicUK
我在工作电脑上没有管理员权限,但我仍然能够运行Set-VM命令。 - andrew lorien
快速提示:在Ubuntu中,您需要禁用自动登录,否则xrdp登录将失败。 - Stuart Aitken
“增强模式”的问题从未出现。看起来它已经被激活了,但我无法在任何地方找到设置 :-(。” - Steffen Roller

由于某种原因,我在Surface Book上更改grub配置也不起作用(我看到另一个Surface用户抱怨了同样的问题)。我还没有找到解决办法,但是这里有一些我可以使用的方法:
在Windows上安装一个X服务器(例如xming),使用ssh登录到您的虚拟机,并设置DISPLAY变量(export DISPLAY=<您的主机IP>)。您还可以将该行添加到您的~/.bashrc中,以便在登录时自动执行,否则您每次会话都需要执行此操作。
这样可以通过ssh启动Linux图形界面程序,并像在主机上本地运行它们一样使用(至少根据我的经验,速度更快)。
为了方便起见,我在hyper-v中创建了一个内部虚拟交换机,并使用该虚拟设备设置了网络共享,这样我的主机始终具有IP地址192.168.137.1。这样,您可以在虚拟机中访问互联网,同时为主机分配一个静态IP。
另一种解决方案也可以实现完整的Linux桌面体验(尽管比通过SSH进行X转发要慢):按照这里所述,在Linux上安装xrdp,并使用Windows的远程桌面客户端连接到您的虚拟机。这将为您提供本机分辨率,但由于软件渲染仍然会有些慢。

此外,为了摆脱“无法应用存储的监视器配置 CRTC 351”的弹窗,您可以删除用户的 monitor.xml 文件: $ rm ~/.config/monitors.xml