VMware Worktation批量克隆虚拟机
env
- window
- vmware workstation
使用VMware WorkStation批量克隆虚拟机
1、前提需要先手动创建一台虚拟机,以这台虚拟机为模板进行克隆,请自行创建虚拟机模板,另外这里以vmware workstation14版本为例。
2、批量克隆虚拟机使用vmware自带的vmrun.exe命令行工具,工具所在目录默认为C:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe
找到vmrun.exe 命令
3、复制如下内容,保存为windows批处理脚本,例如vmclone.bat,双击运行即可(先看脚本说明)
1 | CD "C:\Program Files (x86)\VMware\VMware Workstation\" |
脚本命令说明:
CD “C:\Program Files (x86)\VMware\VMware Workstation”
进入vmrun.exe所在目录C:\Program Files (x86)\VMware\VMware Workstation
vmrun -T ws snapshot “D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx” centos7
使用虚拟机模板创建一个快照,其中需要注意D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx为虚拟机模板文件所在路径,在创建模板虚拟机时会自动生成,最后的centos7为快照名称,可以自定义。
for /l %%a in (61,1,65)
使用for循环语句,执行do后面的克隆虚拟机命令, (61,1,65)表示克隆61-65共5个虚拟机,数字自行定义。
vmrun.exe -T ws clone “D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx” “D:\VMware Workstation%%a%%a.vmx” full -snapshot=centos7 -cloneName=centos7-%%a
使用虚拟机快照进行克隆,其中:
D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx
是虚拟机模板所在路径,
D:\VMware Workstation\%%a%%a.vmx
是克隆出来的虚拟机存放路径。
full表示完整克隆,创建链接克隆改为linked,centos7是之前创建的快照名称,后一个centos7为克隆出来的虚拟机名称,可自定义。
自动生成的目录:
进入每个目录,找到以.vxm结尾的文件,双击将虚拟机添加到vmwareworkstation中。
深入了解vmrun命令行
你提供的命令 vmrun -T ws snapshot "D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx" centos7
用于使用 VMware 的 vmrun
命令行工具创建虚拟机快照。
命令分解:
vmrun
: VMware 命令行工具,用于管理虚拟机。-T ws
: 指定连接类型为 VMware Workstation。snapshot
: 指定要执行的操作是创建快照。"D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx"
: 虚拟机.vmx
配置文件的完整路径。这是命令中最重要的部分,请务必确保路径正确。centos7
: 快照的名称。
潜在问题和改进:
虚拟机状态: 在创建快照之前,虚拟机必须处于已关闭或已开启状态。如果虚拟机处于挂起(暂停)状态,创建快照可能会失败或导致快照不一致。建议在创建快照前先关闭虚拟机,以确保快照的完整性和一致性。你可以使用
vmrun stop
命令来关闭虚拟机:1
vmrun -T ws stop "D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx"
快照名称重复: 如果已经存在名为
centos7
的快照,再次运行此命令将会失败。为了避免这种情况,你可以使用不同的快照名称,或者在创建快照前先删除同名快照(谨慎操作)。删除快照的命令是:1
vmrun -T ws deleteSnapshot "D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx" centos7
完整命令流程(推荐): 结合以上几点,一个更健壮的创建快照的流程应该是:
关闭虚拟机(如果需要):
1
vmrun -T ws stop "D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx"
删除同名快照(可选,如果需要覆盖现有快照):
1
vmrun -T ws deleteSnapshot "D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx" centos7
创建快照:
1
vmrun -T ws snapshot "D:\VMware Workstation\CentOS7虚拟机模板\CentOS7虚拟机模板.vmx" centos7
路径中的空格: 你已经正确地使用了双引号
""
来包含包含空格的路径。这是非常重要的,否则vmrun
命令会解析错误。错误处理:
vmrun
命令执行失败时会返回错误代码。你可以通过检查返回值来判断命令是否成功执行。在批处理脚本或 Shell 脚本中,这尤其有用。
示例(批处理脚本):
1 | @echo off |
通过以上改进,你可以更可靠地使用 vmrun
命令创建虚拟机快照。请根据你的实际情况调整命令和脚本。记住仔细检查虚拟机路径和快照名称,并考虑虚拟机状态。