以下是一些常用的 virt
命令及其参数的总结。
命令 | 描述 | 参数示例 |
---|---|---|
virt-install |
创建新的虚拟机 | virt-install --name=vm1 --memory=1024 --vcpus=2 --disk path=/path/to/disk.img,format=qcow2,size=10 --network network=default --os-variant=ubuntu18.04 --cdrom /path/to.iso |
virsh list |
列出所有虚拟机 | virsh list --all |
virsh start |
启动虚拟机 | virsh start vm1 |
virsh shutdown |
正常关闭虚拟机 | virsh shutdown vm1 |
virsh destroy |
强制关闭虚拟机 | virsh destroy vm1 |
virsh suspend |
暂停虚拟机 | virsh suspend vm1 |
virsh resume |
恢复暂停的虚拟机 | virsh resume vm1 |
virsh suspend |
挂起虚拟机,将虚拟机的状态保存到内存中,但不占用 CPU 资源 | virsh suspend VM_NAME |
virsh resume |
恢复挂起的虚拟机,使虚拟机从挂起状态继续运行 | virsh resume VM_NAME |
virsh reboot |
重启虚拟机 | virsh reboot vm1 |
virsh undefine |
删除虚拟机(不会删除磁盘文件) | virsh undefine vm1 |
virsh define |
从 XML 文件定义一个新的虚拟机 | virsh define /path/to/vm1.xml |
virsh edit |
编辑虚拟机的 XML 配置 | virsh edit vm1 |
virsh dominfo |
显示虚拟机的信息 | virsh dominfo vm1 |
virsh domblklist |
列出虚拟机的块设备 | virsh domblklist vm1 |
virsh domiflist |
列出虚拟机的网络接口 | virsh domiflist vm1 |
virsh snapshot-create |
创建虚拟机的快照 | virsh snapshot-create vm1 |
virsh snapshot-list |
列出虚拟机的快照 | virsh snapshot-list vm1 |
virsh snapshot-delete |
删除虚拟机的快照 | virsh snapshot-delete vm1 snapshot_name |
virt-clone |
克隆一个虚拟机 | virt-clone --original vm1 --name vm2 --file /path/to/vm2.img |
virt-viewer |
启动虚拟机的图形界面 | virt-viewer vm1 |
virt-top |
显示虚拟机的资源使用情况 | virt-top |
virt-df |
显示虚拟机的磁盘使用情况 | virt-df vm1 |
virt-xml |
编辑虚拟机的 XML 配置(不启动编辑器) | virt-xml vm1 --edit |
命令 | 描述 | 参数示例 |
---|---|---|
virsh autostart |
设置虚拟机在宿主机启动时自动启动 | virsh autostart VM_NAME |
virsh autostart --disable |
禁止虚拟机在宿主机启动时自动启动 | virsh autostart --disable VM_NAME |
virsh dumpxml |
输出虚拟机的 XML 配置 | virsh dumpxml VM_NAME |
virsh setmaxmem |
设置虚拟机的最大内存 | virsh setmaxmem VM_NAME 4096 |
virsh setmem |
设置虚拟机的内存 | virsh setmem VM_NAME 2048 |
virsh setvcpus |
设置虚拟机的 CPU 数量 | virsh setvcpus VM_NAME 2 |
virsh setmaxvcpus |
设置虚拟机的最大 CPU 数量 | virsh setmaxvcpus VM_NAME 4 |
virsh snapshot-create-as |
创建虚拟机的快照,并指定快照名称和描述 | virsh snapshot-create-as VM_NAME snapshot_name "Snapshot Description" |
设置虚拟机在宿主机启动时自动启动和禁止虚拟机在宿主机启动时自动启动的原理:
[root@kvm-server images]# virsh autostart vm10
域 'vm10' 标记为自动启动
[root@kvm-server autostart]# ll /etc/libvirt/qemu/autostart/
总用量 0
lrwxrwxrwx 1 root root 26 8月 6 20:32 vm10.xml -> /etc/libvirt/qemu/vm10.xml
[root@kvm-server autostart]# virsh autostart --disable vm10
域 'vm10' 未标记为自动启动
[root@kvm-server autostart]# ll /etc/libvirt/qemu/autostart/
总用量 0
[root@kvm-server autostart]#
自动启动和禁止自动启动虚拟机的原理是基于符号链接(symlink)的机制:
1. 自动启动虚拟机:
- 当你使用
virsh autostart VM_NAME
命令时,libvirt
会在/etc/libvirt/qemu/autostart/
目录下创建一个指向该虚拟机 XML 配置文件的符号链接。 - 这个符号链接的名称通常与虚拟机的名称相同,扩展名为
.xml
。 - 例如,对于名为
vm10
的虚拟机,符号链接可能看起来像这样:vm10.xml -> /etc/libvirt/qemu/vm10.xml
。 - 当宿主机启动时,
libvirt
服务会检查autostart
目录下的所有符号链接,并自动启动这些链接指向的虚拟机。
2. 禁止自动启动虚拟机:
- 当你使用
virsh autostart --disable VM_NAME
命令时,libvirt
会删除/etc/libvirt/qemu/autostart/
目录下对应虚拟机的符号链接。 - 删除这个符号链接后,
libvirt
在宿主机启动时就不会自动启动这个虚拟机了。