最近在 ubuntu 上装上了 KVM 虚拟机, 并且安装了管理程序 libvirt 和 GUI 管理器 virt-manager 进行管理。为了方便远程管理,找到了几个简单的命令行的管理方式:
进入 libvirt 控制台:
# virsh
显示虚拟机列表:
virsh # list --all
启动虚拟机:
virsh # start [name]
关闭虚拟机:
virsh # shutdown [name]
重启虚拟机:
virsh # reboot [name]
然后便在 GUI 界面新建了一个 ubuntu 的 guest 虚拟机。试了试上面的一些命令,发现 shutdown 和 reboot 两个命令不起作用。不得已用了几次 destroy,觉得这不是办法,于是搜索了一下看是怎么回事。没想到居然搜索结果里一个中文的网站也没有,只有几个英文的网站说了这个事。原来 guest 虚拟机不支持 acpi 的话,是无法响应 host 发出的 shutdown 和 reboot 命令的。给出的方案就是,在 guest 虚拟机里安装 acpi 支持包:
# sudo apt-get install acpid
这样就可以了。如果是以命令行方式创建虚拟机,也可以在创建时添加 --addpkg acpid 参数以初始化安装。
参考:
1,http://askubuntu.com/questions/2825/how-do-i-use-virsh-shutdown-on-kvm-domains-to-shut-down-ubuntu-guests
2,http://wiki.libvirt.org/page/FAQ#Why_doesn.27t_.27shutdown.27_doesn.27t_seem_to_work.3F
3,https://help.ubuntu.com/10.04/serverguide/C/jeos-and-vmbuilder.html