使用 Hyper-V 管理器安装 Ubuntu 20.04 LTS。我为其分配了 4 个处理器核心和 12GB 内存。我浏览了多个论坛和教程,但找不到任何可以真正解决该问题的解决方案。性能太慢了,虚拟机的使用率让人难以忍受。我希望一切运行顺畅 - 移动光标、打开窗口、滚动等。
i-7 8700K、32GB、英特尔 UHD 显卡 630、SSD
我将非常感激您的帮助。
答案1
在 Ubuntu 20.04 上执行以下操作:
跑步:
sudo nano /etc/modprobe.d/blacklist.conf
在文件末尾添加以下行:
blacklist hyperv_fb
保存(Ctrl+X然后Y)
重启。
刷新率应该会好很多。
答案2
我希望我能早点看到这个问题。很抱歉让你受了这么长时间的影响。:-(
这是一个已知问题(请参阅https://github.com/LIS/lis-next/issues/655) 自去年 11 月以来已在 Linux 主线内核中进行了修复 (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5f1251a48c17b54939d7477305e39679a565382c)。
对于 Ubuntu 20.04,据我刚刚检查,最新的 linux-azure 内核 Ubuntu-azure-5.4.0-1039.41(1 月 18 日)仍未修复,但通用 5.4 内核 Ubuntu-5.4.0-66.74 和 HWE 内核 Ubuntu-hwe-5.8-5.8.0-44.50_20.04.1 已修复。您可能希望升级到具有修复的两个内核中的任一个。
如果您无法立即升级内核,可以采用以下解决方法:请将 Hyper-V 合成帧缓冲区驱动程序列入黑名单(可以通过“modinfo hyperv_fb”找到文件位置),然后 Linux 将自动使用旧版 vesafb 驱动程序(如果是第一代 VM)或 efifb 驱动程序(如果是第二代 VM);如果是第一代 VM,还请添加内核参数“video=vesafb:mtrr:3”,该参数会告诉旧版帧缓冲区驱动程序“vesafb”映射旧版帧缓冲区缓存。采用此解决方法的理由是旧版 vesafb/efifb 驱动程序速度很快,因为它们会映射(或可以指示映射)帧缓冲区缓存。
答案3
将分辨率改回 1920:
Set-VMVideo -VMName "Name of VM in Manager" -HorizontalResolution 1920 -VerticalResolution 1080 -ResolutionType Single
答案4
例如,如何使用上面提到的内核修复后的 Ubuntu 20.04 的 HWE 内核:
sudo apt install linux-generic-hwe-20.04
奇迹般有效!