Ubuntu Hyper-V 客户机显示分辨率

下午好,
我正在尝试在Hyper-V服务器上设置一个Ubuntu虚拟机。我对Linux相对陌生,请多包涵,这个虚拟机是用来熟悉操作并尝试Ubuntu的测试机器。Server 2012 R2的一个新特性就是改进了显示功能,可以在blogs.technet.com中找到相关信息。
我觉得不只我一个人发现这个功能并不是“一切正常”。在线上找到的一些建议表明需要更新内核,我已经按照一个帖子的描述将内核更新到了3.11.6,并且也更新到了最新的3.12.1版本。但无论哪种情况,我在显示选项中只能看到分辨率列表中的1152x864,这也是Linux在Hyper-V下一直受限制的分辨率。
另一个线索在下一个链接(用日语)中被找到 - 招贴已添加"video=hyperv_fb:1920x1080"/boot/grub2/grub.cfg。当我尝试重复这个步骤时,我注意到了有关不直接编辑/boot/grub2/grub.cfg的消息,所以我将该行添加到了/etc/default/grub中。

yamanxworld.blogspot.co.uk

这也没有提供完整的1920x1080分辨率选项,而且到目前为止,我已经尝试了所有的方法,也不知道这是不是一个Hyper-V的问题,或者是更基本的问题,这在物理机器或其他虚拟化平台上都不会起作用。
如果有人能给予一些指导,我将非常感激。
6个回答

我遇到了同样的问题,当我在寻求帮助时,我记得看到了你的帖子。现在,当我终于让它工作起来时,我也可以在这里记录一下:
  1. 升级linux-image和headers sudo apt-get install linux-image-3.11.0-15-generic linux-headers-3.11.0-15-generic(也许虚拟机与通用版本一样有效):
  2. 安装带有hyperv驱动程序的linux-image-extras:sudo apt-get install linux-image-extra-virtual
  3. 设置视频模式(基本上是你已经做过的):
    /etc/default/grub中设置GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1680x1050"
  4. 更新grub:sudo update-grub
  5. 重新启动
我猜关键部分是安装了带有linux-image-extra-virtual的更新的hyperv驱动程序。还要确保它们已加载。

4谢谢,这对我也起作用。看起来第一步不是必需的,因为第二步会自动安装所有所需的依赖。另外,第一步中的特定版本号可能对某些用户无效。 - alx
2这个方法是有效的,但对于使用1920x1200分辨率的显示器来说,你需要将分辨率降低到1920x1080才能使其正常工作(我最初没有看到下面的答案,所以想在这里留个评论,希望能更快地得到回复)。 - Jerad Rose
4提供的“确保…”链接是404错误。 - SeveQ
不要忘记从您的虚拟机设置中删除RemoteFX卡(如果出于某种原因启用了)! - oikonomopo

copat's answer 对我有用,但只有在我将分辨率从1920x1200更改为1920x1080之后才有效。

在Linux源文件hyperv_fb.c中查找,有以下注释: "这是Hyper-V合成视频的驱动程序,支持在Windows Server 2012上以32位色彩全高清分辨率1920x1080显示,以及在Windows Server 2008 R2或更早版本上以16位色彩1600x1200显示。"


17.04还是这样吗? - user9993

自从2013年提出这个问题以来,关于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(注意:输入用户名时必须使用小写字母)
注意/谨慎:如果使用驱动器出现问题,则可能需要取消选择[打印机]选项。
这是我获取信息的链接:

在这里


谢谢!我会选择你回答中的A选项,使用优化后的桌面图像,如果你是从一个全新的实例开始的话,这是最好的建议。 - temarsden

我尝试了所有这些,但都没有成功,然后我尝试调整Hyper-V的设置。
我将视频RAM增加到512K,并删除了3D驱动程序。 这对我起作用了。

我可以推荐一种使用grubby编辑grub文件的方法。
首先,您需要以root用户身份登录,只需键入: sudo su 按下回车键并输入您的root密码。
之后,只需键入以下命令: grubby --update-kernel=ALL --args="video=hyperv_fb:1920X1080" 其中1920x1080是您首选的分辨率。
然后重新启动虚拟机,新的分辨率将生效。
希望这个解决方案对您有所帮助。如果有问题,请与我联系,我会尽力帮助您。

2“Grubby”是什么意思,你从哪里获取到的?在https://packages.ubuntu.com上似乎没有这个名称的软件包或文件。 - Charles Green
@CharlesGreen 看起来 grubby 是一个只在基于RPM的发行版(如Red Hat等)中可用的工具。在这里使用CTRL+F搜索"Ubuntu"。 - Carolus

通过描述的方法,对我来说没有起作用。有效的方法是:我可以将我的主机屏幕设置为1920x1200,然后将文本大小增加到125%,这样我就可以在Ubuntu客户会话中获得全屏显示。