菜鸟科技网

VMware命令行如何正确启动虚拟机?

在VMware环境中,通过命令行启动虚拟机是自动化管理和批量操作的重要手段,尤其适用于服务器运维或需要频繁部署虚拟机的场景,VMware提供了多种命令行工具,如VMware CLI(适用于ESXi 5.0及之前版本)、PowerCLI(基于.NET的PowerShell模块,适用于vSphere)以及ESXi Shell(直接在宿主机上操作),以下是不同工具下启动虚拟机的详细操作方法及注意事项。

VMware命令行如何正确启动虚拟机?-图1
(图片来源网络,侵删)

使用PowerCLI启动虚拟机(推荐)

PowerCLI是VMware官方推荐的命令行管理工具,功能强大且支持批量操作,首先需安装PowerCLI模块(通过Install-Module VMware.PowerShell命令),然后连接到vCenter Server或ESXi主机:

Connect-VIServer -Server <vCenter_IP> -User <username> -Password <password>

启动单个虚拟机:

Start-VM -VM <虚拟机名称或ID>

批量启动虚拟机(通过名称匹配或导入列表):

# 方法1:通配符匹配
Start-VM -VM "WebServer*"
# 方法2:从文本文件导入虚拟机列表
$vmList = Get-Content "C:\vmlist.txt"
$vmList | ForEach-Object { Start-VM -VM $_ }

启动过程中可通过Get-Task命令查看任务状态,

VMware命令行如何正确启动虚拟机?-图2
(图片来源网络,侵删)
Get-Task | Where-Object {$_.Name -eq "StartVM" -and $_.State -eq "Running"}

使用ESXi Shell直接启动

对于直接连接到ESXi宿主机的情况,可通过SSH登录ESXi Shell,使用vmware-cmd命令启动虚拟机,首先需确认虚拟机配置文件路径(通常位于/vmfs/volumes/datastore_name/VM_name/VM_name.vmx),然后执行:

vmware-cmd /vmfs/volumes/datastore_name/VM_name/VM_name.vmx start hard

参数说明:

  • start:启动虚拟机
  • hard:强制启动(相当于电源键强制开机),若需正常启动则用soft
  • 若需后台运行,可添加参数background

批量启动时,可结合for循环或脚本实现,

for vm in /vmfs/volumes/datastore_name/*/VM_name.vmx; do
  vmware-cmd "$vm" start hard
done

使用VMware CLI(旧版工具)

对于较老的ESXi版本(5.0及之前),可使用VMware CLI工具,需先下载并安装vCLI包,通过vicfg-hostvicfg-vm命令管理虚拟机,启动命令示例:

VMware命令行如何正确启动虚拟机?-图3
(图片来源网络,侵删)
vicfg-vm -s <虚拟机名称> -H <ESXi_IP> -o start

但需注意,该工具已逐渐被PowerCLI取代,新版本环境中不推荐使用。

常见启动问题及排查

  1. 虚拟机文件锁定:若虚拟机已被其他进程锁定(如快照操作),启动会失败,可通过esxcli storage file list命令检查文件锁定状态。
  2. 资源不足:若集群或主机资源不足,启动可能被挂起,需检查资源分配情况,或调整虚拟机资源设置。
  3. 网络配置错误:若虚拟机使用NAT或仅主机模式,需确保网络适配器配置正确,可通过esxcli network ip interface list查看网络接口状态。

以下是不同启动方式的命令对比表格:

工具名称 适用场景 命令示例 特点
PowerCLI vCenter环境,批量操作 Start-VM -VM "VM1" 功能全面,支持复杂脚本和管道操作
ESXi Shell 单台ESXi主机,快速操作 vmware-cmd /path/to/vmx start hard 无需额外安装,适合轻量级任务
VMware CLI 旧版ESXi(5.0及之前) vicfg-vm -s VM1 -H ESXi_IP -o start 已淘汰,仅兼容老环境

相关问答FAQs

Q1:如何通过命令行设置虚拟机开机自启动?
A:在PowerCLI中,使用Set-VM -VM <虚拟机名称> -AutoStartEnabled $true命令设置开机自启动,还可通过Set-VM -AutoStartPolicy参数定义启动优先级和延迟时间,

Set-VM -VM "VM1" -AutoStartPolicy Enabled -StartAction "PowerOn" -StartDelay 60

在ESXi Shell中,需编辑虚拟机配置文件(.vmx),添加bios.bootOrder = "hdd"并重启ESXi主机。

Q2:命令行启动虚拟机失败,提示“无法访问虚拟机配置文件”如何解决?
A:该问题通常由权限不足或文件路径错误导致,可按以下步骤排查:

  1. 确认当前用户是否有操作权限(PowerCLI中需使用管理员账户,ESXi Shell需root权限);
  2. 检查虚拟机.vmx文件路径是否正确,可通过ls -l /vmfs/volumes/datastore_name/列出所有虚拟机目录;
  3. 若文件被锁定,尝试在vSphere客户端中关闭虚拟机电源或取消挂起状态,或使用esxcli storage file lock list查看锁定进程并终止。
分享:
扫描分享到社交APP
上一篇
下一篇