我在笔记本电脑上运行 Hyper-V -适用于 Windows 的 Docker要求。
Windows 10 版本 1709。我注意到,如果启用 Hyper-V 角色,休眠将不起作用。如果我禁用此角色,休眠将正常工作。
据我所知,这是 Windows Server 上的预期行为,但由于某种原因,我在 Win10 上也遇到了这种情况。
powercfg /a
表示休眠状态可用。
但是我尝试过(没有帮助):
powercfg /h on
也无法关闭笔记本电脑,但可以禁用快速启动功能有所帮助。
答案1
您唯一需要做的就是进入 BIOS 并禁用 Intel VT-d。这是虚拟化技术直接 I/O。
重新启动后睡眠就会恢复...享受...
答案2
虽然在 hyper-v 服务运行时无法启用休眠或睡眠功能,但你可以通过更改 hvboot 服务的启动参数来控制服务启动的时间 -
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\hvboot]
服务的启动属性可以具有以下值:0 = 启动、1 = 系统、2 = 自动、3 = 按需、4 = 禁用。
将值设置为 3,以便您可以在需要时启动该服务。0 不支持 hvboot。
重启服务器。现在应该已经启用了休眠和睡眠模式,直到您启动 hvboot 服务为止。
但是,现在如果您尝试在 hyper-v 控制台中启动虚拟服务器,您将收到一条错误消息,提示 hyper-v 服务未运行,您必须使用 net start 命令手动启动它。为此,请在管理员权限下启动命令提示符并执行以下命令来启动服务。
网络启动hvboot
现在您应该可以启动虚拟机了。但是,副作用是休眠和睡眠功能将被禁用,直到您重新启动计算机为止。
调整注册表可能会很危险,因此对于那些想要安全替代方案的人来说,您可以使用以下命令来设置 hvboot 服务的启动属性 -
sc config hvboot 启动=需求
您可以使用的其他值为 system、auto、demand 和 disabled。不支持启动。另外,请注意 = 和 demand 之间的空格。服务配置的语法需要此空格。
我不确定它是否适用于 Windows 10,但值得一试。来源:https://blogs.msdn.microsoft.com/tejas/2009/03/10/hibernate-and-sleep-with-hyper-v-role-enabled/
答案3
这是开启 hyperv 时的正常行为。遗憾的是,没有办法解决这个问题。