马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Hyper-V 里 Ubuntu 虚拟机分辨率改不了?两处都要改
用 Win10 的 Hyper-V 装 Ubuntu 20.04,进系统后发现「显示设置」里调不了分辨率、可选项灰着一片——这是因为 Hyper-V 的虚拟显示设备对 Linux 的即插即用支持不好。解决办法是内核启动参数里加一个 video 驱动参数,同时在宿主机 PowerShell 里改虚拟机的显存规格,两个地方都改了才生效。
第一步:改 Ubuntu 的 grub 配置
开终端(Ctrl+Alt+T):
sudo vi /etc/default/grub
找到 GRUB_CMDLINE_LINUX_DEFAULT 这一行,改成:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"
把中间的 1920x1080 换成你自己机器上合适的分辨率,比如 1366x768、1600x900。
顺手记一下 vi 的常用命令
:w 保存文件;
:q 退出 vi;
:wq 或 :x 保存并退出;
:q! 强制退出不保存修改。
保存退出后,刷 grub 并安装内核补丁
sudo update-grub
sudo apt install linux-image-extra-virtual
linux-image-extra-virtual 这个包很关键——它把 Hyper-V 专用的驱动(含 hyperv_fb 帧缓冲驱动)编进内核,少了它,前面那个 video 参数不会有任何效果。
装完后重启一次 Ubuntu,让新内核和启动参数生效。
第二步:在宿主机 PowerShell 里改虚拟机
1. 关掉虚拟机
这一步不能省:必须先把 Ubuntu 虚拟机完全关机(不能只是挂起),再操作,否则 Set-VMVideo 会报错。
2. 管理员模式起 PowerShell,设分辨率
Set-VMVideo -VMName ubuntu20 -HorizontalResolution 1920 -VerticalResolution 1080 -ResolutionType Single
注意字段名和连字符:把 ubuntu20 换成你自己的虚拟机名称(名字可以在 Hyper-V 管理器里看到),把 1920、1080 换成你的屏幕分辨率。
3. 顺带开增强会话传输
Set-VM ubuntu- -EnhancedSessionTransportType HVSocket
这条打开的是增强会话的传输通道(HVSocket),配合增强会话可以拿到更好的鼠标、键盘与显示器体验。
为什么两处都要改
内核参数 video=hyperv_fb: 告诉 Linux「用 Hyper-V 的虚拟帧缓冲驱动、并直接按某个分辨率初始化」;而 PowerShell 的 Set-VMVideo 改的是 Hyper-V 给这台虚拟机分配的显存(video mode)规格。只改一边都会出问题:
- 只改内核参数、不动宿主机:虚拟机层的显示规格没变,分辨率可能被强制回退;
- 只改宿主机、不动内核参数:Linux 侧拿不到正确的显示模式,进系统依旧是默认小窗口。
验证是否生效
- 重启进系统后,在「设置 → 显示」里看可选分辨率是否变多了;
- 或者直接在终端
xrandr(如果装了 x11-apps)看当前模式列表;
- 全屏运行(Hyper-V 里点「全屏」)看画面是否拉伸正常。
常见问题
- 改完还是老分辨率:确认
sudo update-grub 跑过了、机器真的重启了,而且 linux-image-extra-virtual 装上了;
- Set-VMVideo 报参数错误:多半是 Windows 版本太老不支持 Single 模式,或者虚拟机没完全关机;
- 分辨率改大后黑屏:宿主机显示器不支持该分辨率会黑屏,先把分辨率调回一个稳妥值(比如 1280x720)再逐步加;
- 「显示设置」依然灰的:这是 Hyper-V 的正常表现——Linux 里「设置」能看到的选项是有限的,真正生效靠的是 grub 参数,不是设置界面。
小结
一句话记法:内核里写 video=hyperv_fb:宽x高 + 装 linux-image-extra-virtual,宿主机上用 Set-VMVideo 对齐分辨率,关机改、开机测。两处对齐,Hyper-V 里的 Ubuntu 就能用上你想要的分辨率了。
qidao123.com企服评测-应用市场 编辑提示 |