虚拟机命令是管理和操作虚拟化环境的核心工具,涵盖从创建、配置、启动到监控、维护等全生命周期操作,不同虚拟化平台(如 VMware、VirtualBox、KVM、Hyper-V)的命令存在差异,以下以 VMware vSphere(ESXi/vCenter)和 VirtualBox 为例,结合常用命令场景进行详细说明,并辅以表格归纳关键操作。

VMware vSphere 命令(基于 ESXi Shell/vSphere CLI)
VMware ESXi 是企业级虚拟化平台,其命令主要通过 ESXi Shell(直接连接主机)或 vSphere CLI(远程管理)执行,核心命令围绕虚拟机生命周期、资源管理、网络存储展开。
虚拟机生命周期管理
-
创建虚拟机:
通过vmkfstools创建虚拟磁盘,再使用vim-cmd或govc命令创建虚拟机配置文件。
示例(创建 50GB 虚拟磁盘):vmkfstools -c 50G -a lsilogic -d thin /vmfs/volumes/datastore1/vm_disk.vmdk
通过 vCenter 创建虚拟机时,可使用
govc命令行工具:govc vm.create -name "test-vm" -disk-size 50G -net "VM Network" -guest-id "ubuntu64Guest"
-
启动/关闭/重启虚拟机:
(图片来源网络,侵删)vim-cmd solo/registervm /vmfs/volumes/datastore1/test-vm/test-vm.vmx # 注册虚拟机 vim-cmd/vmsvc/power.on <vmid> # 启动(vmid 通过 vim-cmd/vmsvc/getallvms 获取) vim-cmd/vmsvc/power.off <vmid> # 关闭 vim-cmd/vmsvc/power.reset <vmid> # 重启
-
强制关闭/挂起:
vim-cmd/vmsvc/power.off <vmid> # 正常关闭,若无响应则强制关闭 vim-cmd/vmsvc/power.suspend <vmid> # 挂起
虚拟机配置管理
-
修改虚拟机配置:
使用govc修改 CPU、内存、磁盘等:govc vm.change -vm "test-vm" -c 4 -m 8192 # 设置 4 核 CPU、8GB 内存 govc vm.disk.change -vm "test-vm" -disk.name "hard-disk-1" -size 100G # 扩展磁盘
-
添加/移除硬件:
govc device.add -vm "test-vm" -type pciPassthrough # 添加直通设备 govc device.remove -vm "test-vm" -device "pci-0" # 移除设备
网络与存储管理
-
虚拟机网络配置:
(图片来源网络,侵删)govc vm.network.add -vm "test-vm" -net "VM Network" # 添加网络适配器 govc vm.network.change -vm "test-vm" -net "new-network" -device "vmxnet3" # 修改网络
-
存储操作:
vmkfstools -i /vmfs/volumes/datastore1/old_disk.vmdk -d thin /vmfs/volumes/datastore2/new_disk.vmdk # 克隆磁盘 vmkfstools -U /vmfs/volumes/datastore1/disk.vmdk # 删除磁盘
快照与迁移
-
快照管理:
vim-cmd/vmsvc/snapshot.create <vmid> "snapshot-name" "description" # 创建快照 vim-cmd/vmsvc/snapshot.revert <vmid> <snapshotid> # 回滚快照 vim-cmd/vmsvc/snapshot.remove <vmid> <snapshotid> # 删除快照
-
虚拟机迁移(vMotion):
govc vm.migrate -vm "test-vm" -host "esxi-host2" # 迁移主机 govc vm.migrate -vm "test-vm" -ds "datastore2" # 迁移存储
VirtualBox 命令(基于 VBoxManage)
VirtualBox 是开源桌面虚拟化平台,通过 VBoxManage.exe(Windows)或 VBoxManage(Linux/macOS)管理虚拟机。
虚拟机创建与配置
-
创建虚拟机:
VBoxManage createvm --name "ubuntu-vm" --ostype "Ubuntu_64" --register # 创建并注册虚拟机 VBoxManage modifyvm "ubuntu-vm" --memory 4096 --vram 128 --cpus 2 # 配置硬件 VBoxManage storagectl "ubuntu-vm" --name "SATA" --add sata # 添加存储控制器 VBoxManage storageattach "ubuntu-vm" --storagectl "SATA" --port 0 --device 0 --type hdd --medium "/path/to/disk.vdi" # 挂载磁盘
-
创建虚拟磁盘:
VBoxManage createhd --filename "disk.vdi" --size 50000 --format VDI --variant Standard # 创建 50GB VDI 磁盘
虚拟机生命周期控制
- 启动/关闭/暂停:
VBoxManage startvm "ubuntu-vm" --type headless # 后台启动 VBoxManage controlvm "ubuntu-vm" poweroff # 关闭 VBoxManage controlvm "ubuntu-vm" pause # 暂停 VBoxManage controlvm "ubuntu-vm" resume # 恢复
网络与共享文件夹
-
网络配置:
VBoxManage modifyvm "ubuntu-vm" --nic1 nat # 设置 NAT 网络 VBoxManage modifyvm "ubuntu-vm" --nic2 bridged --bridgeadapter1 "en0" # 设置桥接网络
-
共享文件夹:
VBoxManage sharedfolder add "ubuntu-vm" --name "host-share" --hostpath "/host/path" --automount # 添加共享文件夹
导出与导入
-
导出虚拟机(OVF 格式):
VBoxManage export "ubuntu-vm" --output "ubuntu-vm.ovf" # 导出为 OVF
-
导入虚拟机:
VBoxManage import "ubuntu-vm.ovf" # 导入 OVF
关键命令对比表格
以下表格归纳 VMware ESXi 和 VirtualBox 的核心命令差异:
| 操作场景 | VMware ESXi/vSphere CLI | VirtualBox VBoxManage |
|---|---|---|
| 创建虚拟机 | govc vm.create -name "vm" -disk-size 50G |
VBoxManage createvm --name "vm" --ostype "Linux64" |
| 启动虚拟机 | vim-cmd/vmsvc/power.on <vmid> |
VBoxManage startvm "vm" |
| 修改内存 | govc vm.change -vm "vm" -m 8192 |
VBoxManage modifyvm "vm" --memory 8192 |
| 添加网络适配器 | govc vm.network.add -vm "vm" -net "VM Network" |
VBoxManage modifyvm "vm" --nic1 NAT |
| 创建快照 | vim-cmd/vmsvc/snapshot.create <vmid> "snap1" |
VBoxManage snapshot "vm" take "snap1" |
| 导出虚拟机 | govc vm.export -vm "vm" -o "vm.ova" |
VBoxManage export "vm" -o "vm.ova" |
| 克隆虚拟机 | govc vm.clone -vm "vm" -name "vm-clone" |
VBoxManage clonevm "vm" --name "vm-clone" |
相关问答 FAQs
问题1:如何通过命令行检查虚拟机的实时资源使用情况?
解答:
- VMware ESXi:使用
esxtop命令(需在 ESXi Shell 中执行),可实时查看 CPU、内存、磁盘、网络使用情况;或通过govc metrics获取指定虚拟机的性能数据:govc metrics.get -vm "test-vm" cpu.usage disk.latency
- VirtualBox:使用
VBoxManage metrics query "ubuntu-vm"查询虚拟机指标,或通过VBoxManage list systemproperties查看系统状态。
问题2:虚拟机磁盘空间不足时,如何通过命令扩展磁盘?
解答:
- VMware ESXi:
- 使用
govc vm.disk.change扩展磁盘容量(需虚拟机处于关闭状态):govc vm.disk.change -vm "test-vm" -disk.name "hard-disk-1" -size 100G
- 在虚拟机内部(如 Linux),使用
fdisk或parted调整分区,并扩展文件系统(如resize2fs)。
- 使用
- VirtualBox:
- 使用
VBoxManage modifyhd扩展磁盘文件:VBoxManage modifyhd "disk.vdi" --resize 102400 # 单位为 MB
- 在虚拟机内部使用磁盘管理工具(如 Windows 磁盘管理或 Linux
growpart)调整分区和文件系统。
- 使用
通过以上命令和操作,可高效完成虚拟机的创建、配置、维护及优化,满足不同场景下的虚拟化需求。
