查看虚拟机列表
$ virsh list --all
编辑虚拟机配置文件
$ virsh edit vm1
可以通过mac地址联合
arp -a
查找虚拟机ip1
2
3
4
5
6<interface type='bridge'>
<mac address='52:54:00:60:e9:32'/>
<source bridge='br0'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</interface>启动虚拟机
$ virsh start vm1
查看虚拟机信息
$ virsh dominfo vm1
查看虚拟机cpu信息
$ virsh vcpuinfo vm1
关闭虚拟机
$ virsh shutdown vm1
KVM虚拟机默认是无法用virsh shutdown|reboot的,如果要想使用该命令,则必须在kvm虚拟机上安装acpid acpid-sysvinit两个包,启动acpid服务,并且设置随机启动
$ virsh destroy vm1
强制关机
重启虚拟机
$ virsh reboot vm1
删除虚拟机
$ virsh undefine vm1
挂起/恢复虚拟机
$ virsh suspend vm1
$ virsh resume vm1
设置虚拟机自动启动
$ virsh autostart vm1
关闭虚拟机自动启动
$ virsh autostart --disable vm1
登陆虚拟机控制台
$ virsh console vm1
只对指定了console的虚机才管用
退出:
ctrl + ]
将iso镜像挂载到cdrom光驱(即时生效)
$ virsh attach-disk vm1 iso_file_path hdc --type cdrom --mode readonly
增加新的网卡
$ virsh attach-interface vm1 --type bridge --source br1 --model virtio
查看支持的cpu类型
$ kvm -cpu \?
虚拟机批量管理脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52! /bin/sh
/etc/init.d/recall
Some things that run always
touch /var/lock/recall
Carry out specific functions when asked to by the system
case "$1" in
start)
shift
waits=0
# /var/run/libvirt/libvirt-sock
sockf=/var/run/libvirt/libvirt-sock
while ! test -e $sockf; do
waits=$((waits+1))
echo "Waiting for $sockf" $waits $@
[ $waits -ge 60 ] && break
sleep 1
done
# set default list
[ $# -eq 0 ] && set -- vm1 vm2 vm3
echo "List:" $# [$@]
while [ $# -ge 1 ]; do
( ! virsh list | grep "$1" > /dev/null ) && echo 'Starting' $# [$1] && virsh start $1 && sleep 1
shift
done
virsh list --all
echo "Started.\n"
;;
stop)
shift
while [ $# -ge 1 ]; do
( virsh list | grep "$1" > /dev/null ) && echo 'Stopping' $# [$1] && virsh destroy $1 && sleep 1
shift
done
virsh list --all
echo "Stopped.\n"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0