在 osx 服务器后台运行虚拟机时出现问题

在 osx 服务器后台运行虚拟机时出现问题

在运行 OSX(雪豹服务器)并安装了 VMWare Fusion 的计算机上,我尝试通过 SSH 启动 VM,而无需直接登录到 GUI。

根据观察,我认为以下命令应该可以解决问题

vmrun -T fusion start /path/to/VM nogui

但是它返回了这个错误

vmware-vmx[24770] <Warning>: 3891612: (connectAndCheck) Untrusted apps are not allowed to connect to or launch Window Server before login.
vmware-vmx[24770] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.

这让我认为它没有获取命令的“nogui”部分,或者是 OSX 的设置方式存在一些我无法理解的地方。

答案1

众所周知,“nogui”部分对 MOSX 存在问题,因为安全参数不允许“恶意”应用程序启动和运行(不受信任的部分)。为了无头运行,我总是在以老式方式启动虚拟机后直接终止 GUI 应用程序。

但是,您可以创建一个 launchd 项目来规避 (un)trust(ed) 问题。它必须在正确的安全上下文中运行,位于 /Libary/LaunchAgents 中,并包含这些参数。

    <key>LimitLoadToSessionType</key>
    <string>LoginWindow</string>

这是一篇值得评论的好文章:http://communities.vmware.com/message/1648085-- 作者使用不带上述参数的 launchd 项目,但 VM 以特定用户身份运行,这可能不错。有关 launchd 的一般信息,请查看此文章:http://www.mactech.com/articles/mactech/Vol.25/25.10/2510MacEnterprise-SnowLeopard-launchdandLunch/index.html

答案2

我玩过 VirtualBox 和 VMWare Fusion,但在运行过程中都遇到了问题(尤其是在未登录的情况下)。

现在我以更可靠的方式做事:我在 ESXi 中运行 OS X。(ESXi 可以在我的 Mac Mini 和 Macbook Pro 上顺利安装)。

不过,如果您有一台专用的机器用于虚拟机,这实际上只是一个选择。如果您想在后台运行虚拟机,同时在主机操作系统上使用本地 GUI,那么您将不得不自己摸索。

相关内容