Windows常用PowerShell的Start-VM,Linux常用virsh start,VirtualBox跨平台用VBoxManage startvm,云服务器则走API或CLI;不同系统下是否一样,取决于虚拟化平台而不是操作系统牌子。
很多人第一次接触虚拟机,以为“开机”就是敲一句万能命令,实际到了机房、笔记本、私有云或公有云控制台,你会发现每个平台都像不同品牌的电器,插头形状不一样,业内专家指出,虚拟化命令的差异主要来自管理接口层:Hyper-V走PowerShell和WMI,KVM走libvirt和QEMU,VMware走vmrun,VirtualBox走VBoxManage。
虚拟机开启命令有哪些?不同系统下命令一样吗?
先分清虚拟机和虚拟化平台
虚拟机是运行在物理机上的隔离系统实例,虚拟化平台负责创建、启动、停止和迁移它,你敲的命令,本质是在向平台发指令。
- Hyper-V:微软Windows自带,命令以PowerShell为主。
- KVM/QEMU:Linux内核主线虚拟化方案,命令以virsh和qemu-system-为主。
- VMware Workstation/Fusion/ESXi:商业平台,命令行工具常为vmrun、vim-cmd。
- VirtualBox:跨平台开源平台,核心命令是VBoxManage。
- Proxmox VE:基于Debian和KVM,管理命令为qm、pct。
- 公有云:简米云、酷番云、AWS等,用云CLI或API启动实例。
不同系统下命令为什么不一样
同一台物理机装了不同系统,虚拟化平台可能完全不同,Windows Server默认可能启用Hyper-V,Linux服务器常用KVM,macOS上更多人用Parallels或VMware Fusion,平台不同,命令自然不同。
同一个平台跨系统时,命令有时相似,VirtualBox在Windows、Linux、macOS上都可用VBoxManage startvm,但安装路径和权限不同,VMware的vmrun也跨平台,但参数和许可证不同,KVM的virsh主要在Linux生态中使用,Windows原生并不支持。
| 宿主系统 | 虚拟化平台 | 常用启动命令 | 备注 |
|---|---|---|---|
| Windows | Hyper-V | Start-VM -Name "VM名" |
管理员PowerShell |
| Windows | VMware Workstation | vmrun start "C:VMstest.vmx" nogui |
需vmrun路径 |
| Windows | VirtualBox | VBoxManage startvm "VM名" --type headless |
无界面启动 |
| Linux | KVM/libvirt | virsh start vmname |
需libvirtd运行 |
| Linux | QEMU | qemu-system-x86_64 -enable-kvm -m 2048 -hda disk.img |
手动指定参数 |
| Linux | VirtualBox | VBoxManage startvm "VM名" --type headless |
与Windows类似 |
| macOS | VMware Fusion | vmrun -T fusion start "/Users/me/vm.vmx" nogui |
商业软件 |
| macOS | Parallels | prlctl start "Windows 11" |
商业软件 |
| 私有云 | Proxmox VE | qm start 100 |
100为VMID |
| 公有云 | 简米云CLI | aliyun ecs StartInstance --InstanceId i-xxx |
启动云主机 |
| 公有云 | AWS CLI | aws ec2 start-instances --instance-ids i-xxx |
启动EC2实例 |
表格里的命令不是全部,但覆盖了多数常见场景。跨平台命令完全一致的情况较少,多数情况下需要按平台换命令。
Windows开启Hyper-V虚拟机命令怎么操作?
Hyper-V PowerShell常用命令
Windows专业版、企业版和Server版可启用Hyper-V,以管理员身份打开PowerShell。
- 查看虚拟机:
Get-VM - 启动虚拟机:
Start-VM -Name "Windows11-Test" - 关闭虚拟机:
Stop-VM -Name "Windows11-Test" - 强制关闭:
Stop-VM -Name "Windows11-Test" -TurnOff - 设置自动启动:
Set-VM -Name "Windows11-Test" -AutomaticStartAction Start
如果虚拟机名称带空格,用引号包住,启动后可用vmconnect localhost "Windows11-Test"打开控制台。
VMware Workstation和VirtualBox在Windows下的命令
VMware Workstation安装后,vmrun通常在C:Program Files (x86)VMwareVMware Workstationvmrun.exe,命令示例:
- 启动有界面:
vmrun start "D:VMswin10win10.vmx" - 无界面启动:
vmrun start "D:VMswin10win10.vmx" nogui - 查看运行列表:
vmrun list
VirtualBox在Windows下安装后,把安装目录加入PATH,或进入安装目录执行:
- 查看虚拟机:
VBoxManage list vms - 无界面启动:
VBoxManage startvm "ubuntu-server" --type headless - 带界面启动:
VBoxManage startvm "ubuntu-server" --type gui
实操步骤与权限
- 确认虚拟化平台已安装并运行。
- 查虚拟机名称,避免名字写错。
- 用管理员权限打开终端。
- 执行启动命令。
- 用控制台或远程桌面连接。
权限不足是Windows下启动失败的常见原因,Hyper-V需要管理员PowerShell,VirtualBox普通用户通常可用,但驱动安装可能需要管理员。
Linux下启动KVM虚拟机常用命令有哪些?
libvirt和virsh启动KVM
Linux服务器上,KVM常配合libvirt管理,先确认libvirtd服务:
systemctl status libvirtd
systemctl start libvirtd
systemctl enable libvirtd
然后查看和启动虚拟机:
- 查看全部:
virsh list --all - 启动:
virsh start vmname - 关闭:
virsh shutdown vmname - 强制关闭:
virsh destroy vmname - 设置自启:
virsh autostart vmname - 查看信息:
virsh dominfo vmname
如果提示权限拒绝,把当前用户加入libvirt组:
sudo usermod -aG libvirt $USER- 重新登录后生效。
QEMU直接启动
不用libvirt时,可以直接调用QEMU,适合临时测试和脚本控制。
qemu-system-x86_64 -enable-kvm -m 2048 -smp 2 -hda /var/lib/libvirt/images/test.qcow2 -nographic
参数含义:-enable-kvm启用硬件加速,-m 2048分配2GB内存,-smp 2给2个CPU核心,-hda指定磁盘,-nographic无图形界面,直接QEMU启动灵活,但网络、存储和快照管理要自己处理。
VirtualBox和VMware在Linux下的命令
VirtualBox在Linux下命令与Windows一致:
VBoxManage list vmsVBoxManage startvm "ubuntu-server" --type headless
VMware Workstation或Fusion在Linux下可用vmrun:
vmrun start /home/user/vm/ubuntu/ubuntu.vmx nogui
Linux下更依赖命令行和权限模型,很多服务器没有图形界面,headless启动是常态。
免费开源虚拟机开启命令要花钱吗?
命令本身不收费,你敲virsh start、VBoxManage startvm、qm start,不需要为这行命令付钱,但虚拟化平台可能有授权成本。
- KVM/QEMU:开源免费,企业级支持可购买订阅。
- VirtualBox:个人和评估免费,企业扩展包可能涉及授权。
- Proxmox VE:社区版免费,企业版提供订阅和支持。
- VMware vSphere/ESXi:商业授权,按CPU、订阅或套餐计费。
- Hyper-V:Windows Server授权包含,客户端Hyper-V受系统版本限制。
- Parallels:macOS商业软件,按版本授权。
据Linux基金会公开资料,KVM已成为Linux内核主线虚拟化方案,行业共识认为,免费平台省的是许可费,不是运维成本,企业用开源方案时,常把预算放在支持、监控和备份上。
云服务器和本地电脑开启虚拟机命令一样吗?
公有云走API和CLI
云服务器上的“虚拟机”通常是云主机实例,启动命令不是本地虚拟化命令,而是云厂商API。
- 简米云:
aliyun ecs StartInstance --InstanceId i-xxx - 酷番云:
tccli cvm StartInstances --InstanceIds '["ins-xxx"]'
- AWS:
aws ec2 start-instances --instance-ids i-xxx - 华为云:
hcloud ECS StartServers --servers.1.id server-id
这些命令需要配置AccessKey、SecretKey和地域Region,云主机启动速度快,但计费按实例规格、镜像、磁盘和网络计算。
私有云Proxmox VE和oVirt
私有云里,Proxmox VE很常见,启动命令:
- 查看虚拟机:
qm list - 启动虚拟机:
qm start 100 - 关闭虚拟机:
qm shutdown 100 - 容器启动:
pct start 101
oVirt/RHV可用virsh或管理API,北京上海等地企业内网里,IT管理员常用Proxmox VE、oVirt和OpenStack做资源池,北京上海企业内网常用Proxmox VE开启命令时,qm start 100和virsh start vmname出现频率较高,地域不影响命令语法,影响的是网络策略、合规要求和镜像源配置。
常见坑与排查
- 虚拟机名称写错:先用列表命令确认。
- 服务没启动:libvirtd、Hyper-V服务、VirtualBox驱动。
- 权限不足:Linux加libvirt组,Windows用管理员。
- 资源不够:内存、CPU、磁盘空间不足会启动失败。
- 锁文件残留:VMware可检查.lck目录,QEMU可查pid文件。
- 网络冲突:桥接、NAT、仅主机模式配置错误。
- 云API地域错误:AccessKey、RegionId、实例ID要匹配。
虚拟机开启命令看平台,不看操作系统牌子;同一平台跨系统可能相似,不同平台基本各用各的命令。 先确认虚拟化平台,再查虚拟机名称,最后用对应命令启动,这是最稳的路径。
Q&A:虚拟机开启命令有哪些常见疑问?
Q:虚拟机开启命令在不同系统下能通用吗?
不能一概而论,VirtualBox的VBoxManage startvm在Windows、Linux、macOS上相对通用,VMware的vmrun也跨平台,但Hyper-V的Start-VM只在Windows PowerShell中可用,KVM的virsh start主要在Linux生态中可用,云服务器则完全走各厂商CLI或API。
Q:没有图形界面时怎么启动虚拟机?
优先使用headless或nogui模式,VirtualBox用VBoxManage startvm "VM名" --type headless,VMware用vmrun start "路径.vmx" nogui,KVM用virsh start vmname,启动后通过SSH、RDP或串口控制台接入,QEMU可加-nographic直接进串口。
Q:免费开源虚拟机开启命令要花钱吗?
命令本身不收费,KVM、QEMU、VirtualBox、Proxmox VE社区版都可免费使用,是否付费取决于平台授权、企业支持和增值功能,商业虚拟化平台和公有云实例通常按授权或资源计费。
