运行虚拟机的命令是管理和操作虚拟化环境的核心工具,不同的虚拟化平台(如 VMware、VirtualBox、KVM、Hyper-V 等)提供了各自的命令行接口(CLI)或管理工具,用于启动、停止、配置和管理虚拟机,以下将详细介绍常见虚拟化平台的运行命令及其使用场景,并通过表格对比不同平台的核心命令,最后附上相关问答。

在 VMware 平台中,若使用 VMware Workstation 或 Pro,可通过 vmrun
命令行工具管理虚拟机,启动虚拟机的命令为 vmrun start "虚拟机路径.vmx" [gui|nogui]
,gui
表示图形界面启动,nogui
则为无界面启动(适用于服务器环境),停止虚拟机时,可使用 vmrun stop "虚拟机路径.vmx" [hard|soft|poweroff]
,hard
为强制关闭(相当于拔电源),soft
为通过客户机系统正常关机,poweroff
则直接切断电源。vmrun suspend "虚拟机路径.vmx" [hard|soft]
可挂起虚拟机,hard
为强制挂起,soft
为客户机系统休眠,VMware ESXi 作为企业级虚拟化平台,则通过 vim-cmd
命令管理虚拟机,vim-cmd vmsvc/power.on vmid
启动指定 ID 的虚拟机,vim-cmd vmsvc/power.off vmid
关闭虚拟机,需先通过 vim-cmd vmsvc/getallvms
查看虚拟机 ID。
对于 VirtualBox,其命令行工具为 VBoxManage
,启动虚拟机的基本命令为 VBoxManage startvm "虚拟机名称" --type [gui|headless]
,gui
为图形界面,headless
为无界面模式(适合远程服务器),停止虚拟机可通过 VBoxManage controlvm "虚拟机名称" poweroff
强制关闭,或 VBoxManage controlvm "虚拟机名称
acpipowerbutton模拟电源按钮(触发客户机系统关机),挂起虚拟机使用
VBoxManage controlvm "虚拟机名称" savestate,保存状态后可快速恢复,VirtualBox 还支持
VBoxManage modifyvm命令修改虚拟机配置,如调整内存大小(
--memory 4096)、添加网卡(
--nic1 bridged`)等。
KVM(Kernel-based Virtual Machine)作为 Linux 原生虚拟化方案,通常结合 virsh
命令管理虚拟机,启动虚拟机的命令为 virsh start <虚拟机名称>
,停止使用 virsh shutdown <虚拟机名称>
(正常关机)或 virsh destroy <虚拟机名称>
(强制关闭),挂起和恢复可通过 virsh suspend <虚拟机名称>
和 virsh resume <虚拟机名称>
实现,KVM 还支持 qemu-system-x86_64
命令直接启动虚拟机,qemu-system-x86_64 -hda disk.img -m 2048 -enable-kvm
,-hda
指定磁盘镜像,-m
为内存大小,-enable-kvm
启用硬件加速。virsh list --all
可查看所有虚拟机状态(运行中、关机、暂停等)。
微软的 Hyper-V 平台通过 PowerShell cmdlet 管理虚拟机,启动虚拟机使用 Start-VM -Name "虚拟机名称"
,停止为 Stop-VM -Name "虚拟机名称"
-Force(强制关闭),挂起和恢复命令分别为 Suspend-VM -Name "虚拟机名称"
和 Resume-VM -Name "虚拟机名称"
,Hyper-V 还支持 Get-VM
查看虚拟机状态,Set-VM
修改配置(如设置内存动态调整 DynamicMemoryEnabled $true
),在 Windows 命令提示符(CMD)中,也可通过 vmconnect.exe
管理虚拟机,但 PowerShell 是更强大的管理工具。

以下表格对比了上述平台的核心运行命令:
虚拟化平台 | 启动虚拟机 | 停止虚拟机(正常) | 停止虚拟机(强制) | 挂起虚拟机 |
---|---|---|---|---|
VMware (vmrun) | vmrun start "路径.vmx" gui |
vmrun stop "路径.vmx" soft |
vmrun stop "路径.vmx" hard |
vmrun suspend "路径.vmx" soft |
VirtualBox (VBoxManage) | VBoxManage startvm "名称" --type gui |
VBoxManage controlvm "名称" acpipowerbutton |
VBoxManage controlvm "名称" poweroff |
VBoxManage controlvm "名称" savestate |
KVM (virsh) | virsh start <名称> |
virsh shutdown <名称> |
virsh destroy <名称> |
virsh suspend <名称> |
Hyper-V (PowerShell) | Start-VM -Name "名称" |
Stop-VM -Name "名称" |
Stop-VM -Name "名称" -Force |
Suspend-VM -Name "名称" |
在实际使用中,运行虚拟机命令时需注意路径和名称的正确性,尤其是含空格或特殊字符时需用引号括起,无界面模式(如 headless)更适合服务器环境,可节省资源并通过 SSH 或远程桌面连接,对于企业级场景,建议结合脚本实现批量管理,例如使用 Shell 脚本(Linux)或 PowerShell 脚本(Windows)自动化启动/停止多台虚拟机。
相关问答 FAQs
问题 1:如何通过命令行查看虚拟机的实时资源使用情况?
解答:不同平台查看资源使用情况的命令不同,VMware 可使用 vmrun statsperfmon "路径.vmx"
获取性能数据;VirtualBox 通过 VBoxManage metrics "名称" --get
查看指标;KVM 使用 virsh dommemstat <名称>
查看内存统计,virsh domblkstat <名称>
查看磁盘 I/O;Hyper-V 则可通过 Get-VMVMResourceMetering -Name "名称"
获取资源计量信息,Linux 客户机内可安装 vmstat
、top
等工具监控资源,Windows 客户机可使用任务管理器或 PowerShell 命令。

问题 2:虚拟机无响应时,如何通过命令行强制重启?
解答:强制重启需根据平台选择对应命令,VMware 使用 vmrun reset "路径.vmx" hard
(强制重启,相当于按电源键);VirtualBox 通过 VBoxManage controlvm "名称" reset
强制重启;KVM 使用 virsh reset <名称>
;Hyper-V 则执行 Restart-VM -Name "名称" -Force
,注意:强制重启可能导致未保存数据丢失,建议优先尝试正常关机或重启命令(如 virsh reboot <名称>
)。