20 个常用虚拟机核心指令(KVM/Virsh 为主,附 VMware/VirtualBox)
以下指令覆盖虚拟机生命周期、磁盘 / 网络、快照、资源管理、监控五大核心场景,以 KVM(virsh)为主,同步标注 VMware(vmrun)、VirtualBox(VBoxManage)等效命令,满足日常运维与开发需求。
一、虚拟机生命周期管理(6 个)
1. 查看所有虚拟机(含状态)
- KVM:
virsh list --all - VMware:
vmrun list - VirtualBox:
VBoxManage list vms - 说明:列出所有虚拟机,含运行 / 关闭 / 挂起状态,是管理入口指令。
2. 启动虚拟机
- KVM:
virsh start <虚拟机名/ID> - VMware:
vmrun start "路径/xxx.vmx" - VirtualBox:
VBoxManage startvm <虚拟机名> --type headless - 说明:启动已定义的虚拟机,headless 为无界面启动。
3. 优雅关闭虚拟机
- KVM:
virsh shutdown <虚拟机名/ID> - VMware:
vmrun stop "路径/xxx.vmx" - VirtualBox:
VBoxManage controlvm <虚拟机名> acpipowerbutton - 说明:发送 ACPI 关机信号,系统正常退出,避免数据丢失。
4. 强制断电(紧急关闭)
- KVM:
virsh destroy <虚拟机名/ID> - VMware:
vmrun reset "路径/xxx.vmx" - VirtualBox:
VBoxManage controlvm <虚拟机名> poweroff - 说明:类似拔电源,用于系统无响应场景,可能导致数据损坏。
5. 重启虚拟机
- KVM:
virsh reboot <虚拟机名/ID> - VMware:
vmrun restart "路径/xxx.vmx" - VirtualBox:
VBoxManage controlvm <虚拟机名> reset - 说明:先关闭再启动,等效
shutdown + start。
6. 挂起 / 恢复虚拟机
- 挂起(KVM) :
virsh suspend <虚拟机名> - 恢复(KVM) :
virsh resume <虚拟机名> - VirtualBox:
VBoxManage controlvm <虚拟机名> pause/resume - 说明:挂起保存当前状态到内存,恢复后继续运行,适合临时暂停。
二、磁盘与存储管理(4 个)
7. 创建虚拟磁盘(QEMU)
- 指令:
qemu-img create -f qcow2 /var/lib/libvirt/images/xxx.qcow2 20G - 说明:
-f指定格式(qcow2 为推荐格式,支持快照 / 压缩),20G 为磁盘大小。
8. 查看磁盘信息
- 指令:
qemu-img info /var/lib/libvirt/images/xxx.qcow2 - 说明:查看磁盘格式、大小、已用空间、快照数量等关键信息。
9. 创建存储卷(KVM 存储池)
- 指令:
virsh vol-create-as default xxx.qcow2 10G --format qcow2 - 说明:在 default 存储池创建 10G qcow2 格式卷,用于虚拟机挂载。
10. 挂载 / 卸载磁盘
- 挂载(KVM) :
virsh attach-disk <虚拟机名> /路径/xxx.qcow2 vdb --cache none - 卸载(KVM) :
virsh detach-disk <虚拟机名> vdb - 说明:
vdb为磁盘设备名,--cache none关闭缓存提升稳定性。
三、快照管理(3 个)
11. 创建虚拟机快照
- KVM:
virsh snapshot-create-as <虚拟机名> --name 快照名 --description "备注" - VMware:
vmrun snapshot "路径/xxx.vmx" "快照名" - 说明:保存当前系统状态,用于快速回滚,生产环境建议定期创建。
12. 恢复到指定快照
- KVM:
virsh snapshot-revert <虚拟机名> --snapshotname 快照名 - VMware:
vmrun revertToSnapshot "路径/xxx.vmx" "快照名" - 说明:虚拟机将恢复到快照创建时的状态,当前未保存数据会丢失。
13. 删除快照
- KVM:
virsh snapshot-delete <虚拟机名> --snapshotname 快照名 - VMware:
vmrun deleteSnapshot "路径/xxx.vmx" "快照名" - 说明:删除无用快照,释放磁盘空间,避免快照链过长影响性能。
四、网络与配置管理(4 个)
14. 查看虚拟网络
- KVM:
virsh net-list --all - 说明:列出所有虚拟网络(如 default、NAT、桥接)及状态。
15. 启动 / 停止虚拟网络
- 启动:
virsh net-start default - 停止:
virsh net-destroy default - 说明:管理虚拟机网络连通性,default 为默认 NAT 网络。
16. 编辑虚拟机配置(XML)
- KVM:
virsh edit <虚拟机名> - 说明:修改 CPU、内存、磁盘、网络等配置,修改后需重启生效。
17. 连接虚拟机控制台
- KVM:
virsh console <虚拟机名> - 说明:进入虚拟机字符界面,用于无图形化场景下的系统操作。
五、资源监控与调整(3 个)
18. 查看虚拟机性能数据
- KVM:
virsh domstats <虚拟机名> - 说明:实时监控 CPU、内存、磁盘 I/O、网络流量等性能指标。
19. 调整虚拟机 CPU 核心数
- 指令:
virsh setvcpus <虚拟机名> 4 --config - 说明:
--config表示重启生效,--live为在线热调整(需系统支持)。
20. 调整虚拟机内存大小
- 指令:
virsh setmem <虚拟机名> 8388608 --config - 说明:单位为 KB(8388608KB=8GB),
--config持久化修改,重启生效。
指令速查表(按平台)
表格
| 功能 | KVM (virsh) | VMware (vmrun) | VirtualBox (VBoxManage) |
|---|---|---|---|
| 查看所有 VM | virsh list --all | vmrun list | VBoxManage list vms |
| 启动 VM | virsh start <name> | vmrun start "xxx.vmx" | VBoxManage startvm <name> |
| 优雅关机 | virsh shutdown <name> | vmrun stop "xxx.vmx" | VBoxManage controlvm <name> acpipowerbutton |
| 强制关机 | virsh destroy <name> | vmrun reset "xxx.vmx" | VBoxManage controlvm <name> poweroff |
| 创建快照 | virsh snapshot-create-as <name> --name snap | vmrun snapshot "xxx.vmx" snap | VBoxManage snapshot <name> take snap |