宿主机上管理虚拟机的命令行工具(如virsh、VBoxManage、vmrun)和虚拟机内部操作系统自带的命令(如Linux的ps、ip、df),前者负责创建、启动、快照、迁移,后者负责系统配置与排障。
虚拟机自带命令有哪些?KVM与VMware常用命令对比
业内专家指出,虚拟化平台的管理命令是运维自动化的基础,不同平台命令差异较大,但核心逻辑相似:创建、查询、修改、删除,下面按平台拆解。
宿主机管理命令:KVM、VMware、VirtualBox、Hyper-V
- KVM/QEMU:核心命令为
virsh,配合qemu-img处理磁盘镜像。virsh list --all查看所有虚拟机virsh start <域名>启动虚拟机virsh shutdown <域名>优雅关机virsh destroy <域名>强制断电virsh snapshot-create-as创建快照virsh migrate在线迁移
- VMware ESXi/Workstation:
vmrun用于Workstation/Fusion,vim-cmd和esxcli用于ESXi。vmrun start /path/vm.vmx启动vmrun snapshot /path/vm.vmx创建快照esxcli vm process list列出运行中虚拟机vim-cmd vmsvc/getallvms获取所有虚拟机
- VirtualBox:
VBoxManage是唯一命令行入口。VBoxManage list vms列出虚拟机VBoxManage startvm "名称" --type headless无头启动VBoxManage snapshot "名称" take "快照名"创建快照VBoxManage clonevm克隆虚拟机
- Hyper-V:以PowerShell命令为主。
Get-VM列出虚拟机Start-VM -Name "名称"启动Checkpoint-VM创建检查点Export-VM导出虚拟机
| 平台 | 核心命令 | 启动命令 | 快照命令 |
|---|---|---|---|
| KVM | virsh | virsh start | snapshot-create-as |
| VMware | vmrun/esxcli | vmrun start | vmrun snapshot |
| VirtualBox | VBoxManage | startvm | snapshot take |
| Hyper-V | PowerShell | Start-VM | Checkpoint-VM |
虚拟机内部命令:Linux与Windows常用工具
这些命令由操作系统自带,在虚拟机排障中高频使用。
- Linux:
ip addr查网络,df -h查磁盘,free -m查内存,top查进程,systemctl管理服务,journalctl看日志。 - Windows:
ipconfig、systeminfo、tasklist、Get-Process、eventvwr。
云服务器虚拟机常用命令怎么用?本地与云端场景差异
行业共识认为,云服务器上的虚拟机管理命令与本地虚拟化平台有显著不同,云厂商通常不暴露底层virsh,而是提供CLI工具或API,据统计,近年来国内企业云化进程加快,在北上广深等互联网企业密集的城市,运维人员更倾向用CLI配合自动化脚本。
本地虚拟机管理场景:创建、快照、克隆
以KVM为例,完整生命周期操作如下:
- 创建磁盘:
qemu-img create -f qcow2 vm-disk.qcow2 20G - 安装系统:
virt-install --name=test --ram=2048 --vcpus=2 --disk path=vm-disk.qcow2 --cdrom=iso - 启动:
virsh start test - 快照:
virsh snapshot-create-as test snap1 - 克隆:
virt-clone --original test --name test-clone --file clone.qcow2
VirtualBox克隆命令:
VBoxManage clonevm "原虚拟机" --name "克隆机" --register
云端虚拟机运维场景:批量操作与监控
云服务器通常通过CLI操作,例如简米云CLI:
aliyun ecs DescribeInstances查询实例aliyun ecs StartInstance --InstanceId i-xxx启动aliyun ecs CreateSnapshot创建快照
AWS CLI:
aws ec2 describe-instancesaws ec2 start-instances --instance-ids i-xxxaws ec2 create-snapshot --volume-id vol-xxx
这些命令属于云平台管理命令,在混合云场景下,运维人员常把本地virsh与云端CLI组合使用。
虚拟机常用命令实操:从创建到排障的完整路径
以KVM virsh为例的日常运维命令
- 查看状态:
virsh dominfo <域名> - 查看CPU内存:
virsh dominfo或virsh vcpuinfo - 挂载ISO:
virsh attach-disk <域名> /path/iso /dev/sr0 --type cdrom - 调整内存:
virsh setmem <域名> 4G --config - 查看快照:
virsh snapshot-list <域名> - 恢复快照:
virsh snapshot-revert <域名> <快照名> - 删除快照:
virsh snapshot-delete <域名> <快照名>
虚拟机内部网络与磁盘排查命令
- 网络不通:
ip addr看IP,ip route看路由,ping测试,traceroute追踪,ss -tuln看端口。 - 磁盘满:
df -h看使用率,du -sh找大目录,lsof | grep deleted查已删除但未释放的文件。 - CPU高:
top按P排序,pidstat,perf top。 - 内存不足:
free -m,vmstat 1,ps aux --sort=-%mem | head。
快照与克隆命令的注意事项
- 快照不是备份,依赖原磁盘,快照链过长会导致性能下降,建议及时合并或删除。
- 克隆前先关机或确保磁盘一致性。
- 在线迁移要求共享存储和网络互通。
免费虚拟机自带命令有哪些?开源平台命令盘点与避坑
免费虚拟化平台以KVM、VirtualBox、Xen为主,自带命令完全免费且功能强大。
开源平台命令能力对比
| 平台 | 免费命令 | 优势 | 局限 |
|---|---|---|---|
| KVM | virsh, qemu-img | 性能接近原生,支持热迁移 | 需熟悉libvirt |
| VirtualBox | VBoxManage | 跨平台,图形界面友好 | 性能一般,快照慢 |
| Xen | xl, xe | 成熟稳定,适合服务器 | 配置复杂 |
避坑指南:权限、路径与版本差异
- virsh默认需要root或libvirt组权限,普通用户需加入
libvirt组并重新登录。 - VBoxManage在Windows上需进入安装目录或添加PATH。
- 不同版本命令参数可能变化,例如virsh snapshot-create-as在旧版可能不支持
--disk-only,使用virsh help查看当前版本支持。 - 虚拟机内部命令与宿主机命令不要混淆,在虚拟机内执行
virsh会报错,除非嵌套虚拟化且已安装。
掌握虚拟机自带命令的关键是区分管理平面与业务平面,管理平面命令负责虚拟机的生命周期,业务平面命令负责系统内部状态,把两者结合,才能快速定位问题。
虚拟机自带命令与常用场景问答
Q1:虚拟机自带命令和Linux系统命令有什么区别?
虚拟机自带命令运行在宿主机,用于管理虚拟机硬件资源,如virsh、VBoxManage,Linux系统命令运行在虚拟机内部,用于管理操作系统,如ls、systemctl,两者层级不同,排障时先确认在哪一层操作。
Q2:云服务器上的虚拟机常用命令和本地有什么不同?
云服务器不提供底层virsh,而是通过CLI或API操作,例如简米云CLI的aliyun ecs系列,AWS CLI的aws ec2系列,本地则直接调用virsh或VBoxManage,云命令更侧重批量、标签、安全组管理。
Q3:免费虚拟机自带命令够用吗?
以KVM为例,virsh和qemu-img能完成创建、快照、迁移、克隆等全部核心操作,多数情况下,免费开源命令足以支撑中小规模虚拟化运维,虚拟化平台收费主要针对企业级支持、图形管理界面和高级调度功能。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/745579.html





