在使用virsh shutdown 关闭guest时常常会遇到无法关闭的问题
其实virsh shutdown 命令是调用guest的ACPI去关闭
这就要求guest安装acpi ,默认情况下windows已经安装了,但linux没有安装,需要自己安装
安装过程省略
windows vms除了对acpi的要求外,还需要对其进行相应的配置否则还是无法关闭,配置过程如下
1.gpedit.msc打开组策略, 修改(在Computer Configuration“-> “Windows Settings“->“Security Settings“->“Local Policies”->“Security Options” 中)
Shutdown: Allow system to be shut down without having to log on 的属性为
Enabled
2.regedit修改注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\
system\
shutdownwithoutlogon = 1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
\ShutdownWarningDialogTimeout=1
HKEY_LOCAL_MACHINE\SYSTEM\CurrenctControlSet\Control\EnableDefaultReply=1
设置已经完成,可以放心的使用virsh shutdown 了
如果还出现windows vms无法关闭的情况,应该是vms没有收到USER32的事件,需要在virsh shutdown之前先
调用virsh send-key KEY_RIGHTCTRL KEY_RIGHTALT KEY_DELETE
这下关机就可以完美执行了。