今天在把QEMU-KVM上的一个虚拟机Shutdown后总是无法启动,使用virt-manager管理工具启动时总是导致该工具意外终止。
	
	如果是使用virsh命令行管理工具启动时总是报错:
	[root@db1 ~]# virsh start oneracvm
	error: Failed to start domain oneracvm
	error: Timed out during operation: cannot acquire state change lock
	
	查了一下发现这是ibvirt在RHEL5上的Bug,需要把libvirt的后天进程libvirtd --daemon重启一下。
	
	关闭,直接KILL即可:
[root@db1 run]# kill -9 `ps -ef|grep 'libvirtd --daemon'|grep -v grep |awk '{print $2}'`
	
	这时候你还不能直接起来,否则会出错:
	[root@db1 run]#  libvirtd --daemon
	libvirtd: error: Unable to obtain pidfile. Check /var/log/messages or run without --daemon for more info.
	
	因为,它的启动记录文件还存在,需要先删除:
	[root@db1 run]# rm /var/run/libvirtd.pid
	rm: remove regular file `libvirtd.pid'? y
	
	这时候你就可以起来了:
[root@db1 run]# libvirtd --daemon
	
	此时就可以启动虚拟机了:
	[root@db1 ~]# virsh start oneracvm
	Domain oneracvm started

