在Mac上运行VMware虚拟机时候,默认情况下需要启动GUI形式的VMware管理控制台,然后通过交互方式启动虚拟机。并且不能关闭窗口,关闭窗口会suspend住虚拟机。
特别对于运行多个虚拟机的测试环境,我们希望能够想KVM这样的服务器端虚拟化一样,通过命令行在后台运行虚拟机实例,不需要程序窗口。这种模式称为 "headless" 模式。
- 在Terminal终端,使用以下命令创建一个
vmrun
的程序别名:
alias vmrun=/Applications/VMware\ Fusion.app/Contents/Library/vmrun
不过,我发现实际上也可以不用加入这个alias,因为VMware fusion安装已经在用户的环境变量PATH中添加了上述路径,所以可以直接使用
vmrun
命令
- 然后通过以下命令无需GUI就可以启动虚拟机
vmrun -T fusion start "/path/to/vm.vmx" nogui
-T <hostType> (ws|fusion)
指令可以是
start|stop|reset|suspend|pause|unpause
启动虚拟机案例:
vmrun -T fusion start "/Users/huatai/Virtual Machines.localized/centos7_base.vmwarevm/centos7_base.vmx" nogui
由于VMware的虚拟机文件存储目录 Virtual Machines.localized
中间有一个空格,所以指定文件时可以通过引号来扩起上述文件路径。如果不使用引号,则可以通过使用 \
来转义,即使用命令:
vmrun -T fusion start /Users/huatai/Virtual\ Machines.localized/centos7_base.vmwarevm/centos7_base.vmx nogui
但是需要注意,引号和空格前转义符\
不能同时使用,否则会报错
Error: Cannot open VM: /Users/huatai/Virtual\ Machines.localized/centos7_base.vmwarevm/centos7_base.vmx, The virtual machine cannot be found
感谢 dysl357085918 指正 关于vmware后台运行 #2
参考 Is it possible to run VMware Fusion in the background to hide the windows and icons it produces?
在VMware Fusion窗口启动虚拟机之后,同时按下 Command+Option+Shift+Esc
可以关闭VMware窗口并且保持虚拟机在后台运行。非常赞的方法!