Mac OS X Server 10.6 无法安装 VMware Tools
结论
VMware Fusion 13 自带的 VMware Tools 很可能与 Mac OS X Server 10.6 不兼容。出现以下报错时:
Unable to update run-time folder sharing status: VMware Tools are not running in the guest
Fusion 实际上没有检测到虚拟机中的 VMware Tools 后台服务,问题通常不在共享文件夹配置上。反复开关 Shared Folders 一般没有作用。
可以采用以下两种方案:
- 找到明确支持 Mac OS X 10.6 的旧版
darwin.iso,用它安装旧版 VMware Tools,同时降低虚拟机的硬件兼容级别。 - 如果旧版 Tools 仍然无法运行,改用 SSH、HTTP、VNC 或挂载 ISO 交换文件,不再依赖 VMware 共享文件夹和原生剪贴板。
旧版 Tools 可能恢复鼠标集成、分辨率调整和共享目录,但在 Fusion 13 与 macOS 14 的组合下,完整的 3D 加速无法保证。
确认 VMware Tools 是否启动
在 Snow Leopard 的 Terminal 中执行:
ps ax | grep -i '[v]mware'
launchctl list | grep -i vmware
kextstat | grep -i vmware
如果三条命令都没有有效输出,说明 Tools 服务及相关内核扩展没有加载。
接着检查安装日志和系统日志:
grep -i vmware /var/log/install.log | tail -n 100
grep -i vmware /var/log/system.log | tail -n 100
重点查找以下内容:
unsupported operating systemwrong architecturefailed to loadnot found- 内核扩展加载失败
- 安装程序执行失败
如果日志显示 Tools 已安装,但服务一启动就退出,原因通常仍是 Tools 版本或虚拟硬件不兼容,与共享文件夹设置无关。
安装兼容的旧版 VMware Tools
Fusion 为 macOS 客户机提供的 Tools 通常位于 darwin.iso 中。Fusion 13 自带的镜像面向较新的系统,需要换成早期 Fusion 版本附带的镜像。
不同 Fusion 版本附带的 Tools 并不相同,无法只看版本号就判断某个镜像是否适用于 10.6。应选择支持文档中明确列出 Mac OS X 10.6 的 Fusion 版本,再从合法获得的安装包中提取 darwin.iso。
1. 备份虚拟机
先完全关闭虚拟机,不要只暂停。复制整个虚拟机包,或者创建可恢复的快照。旧版内核扩展一旦安装失败,可能导致系统无法正常启动。
2. 将系统更新到 Mac OS X 10.6.8
如果当前版本低于 10.6.8,先用已有的离线 Combo Update 更新。Apple 的旧下载地址现在未必还能访问,所以在没有安装包时,不要卸载现有组件。
执行以下命令确认版本:
sw_vers
uname -a
ProductVersion 最好显示为 10.6.8。
3. 清理未完成的 Tools 安装
先到 /Applications 或 VMware Tools 安装介质中查找卸载程序。部分旧版 Tools 还会安装以下脚本:
/Library/Application Support/VMware Tools/vmware-tools-uninstall.pl
确认文件存在后再运行:
sudo "/Library/Application Support/VMware Tools/vmware-tools-uninstall.pl"
如果找不到该文件,不要手动删除 /System/Library/Extensions 中用途不明的内核扩展。此时直接回滚快照通常更安全。
4. 降低虚拟硬件兼容级别
关闭虚拟机,在 Fusion 的虚拟机设置中找到 Compatibility 或虚拟硬件版本选项,选择较旧且 Fusion 13 仍能打开的兼容级别。
可选版本取决于虚拟机的创建方式和 Fusion 13 的界面。不要直接编辑 .vmx 文件猜测数值。调整前务必保留备份,因为降低兼容级别可能影响已有快照和虚拟设备配置。
还可以暂时关闭 3D 加速,先检查 Tools 能否正常启动。确认 Tools 工作后,再重新开启 3D 加速进行测试。
5. 挂载旧版 darwin.iso
不要使用 Fusion 13 菜单自动挂载的当前版本 Tools。把准备好的旧版 darwin.iso 挂载为虚拟机的 CD/DVD 镜像,然后在 Snow Leopard 中运行镜像内的 .pkg 安装程序。
安装完成后必须重新启动客户机:
sudo shutdown -r now
重启后再次执行:
ps ax | grep -i '[v]mware'
launchctl list | grep -i vmware
kextstat | grep -i vmware
确认服务已经运行,再测试自动调整分辨率、Shared Folders 和复制粘贴。不要混用不同 Fusion 版本的 Tools 安装程序、守护进程和内核扩展。
图形性能仍然较差怎么办
VMware 的虚拟显卡驱动属于 VMware Tools。Tools 无法加载时,没有通用的 Snow Leopard 驱动可以提供同等的虚拟 3D 加速。
以下设置可以逐项尝试,实际效果取决于旧版 Tools、虚拟硬件版本和 Fusion 13 之间的兼容情况:
- 给虚拟机分配 2 个虚拟 CPU,避免分配过多核心。
- 分配 2 GB 到 4 GB 内存,同时给宿主机留出足够内存。
- 将客户机分辨率控制在 1280×800 或相近范围。
- 关闭 Snow Leopard 的窗口动画、透明效果和不需要的服务。
- 等 Tools 可以启动后,分别测试开启和关闭 Accelerate 3D Graphics。
- 将虚拟磁盘放在 SSD 上,避免宿主机同时运行高负载任务。
如果开启 3D 加速后出现黑屏、花屏或启动失败,应关闭该选项。旧版 Tools 能够运行,也不能说明它的图形驱动一定能与 Fusion 13 当前的虚拟 GPU 实现正常配合。
不依赖 VMware Tools 传输文件
使用 HTTP 临时共享目录
HTTP 适合兼容性要求较高的单向传输。
在 macOS 14 宿主机上进入需要共享的目录并启动服务器:
cd "/path/to/share"
python3 -m http.server 8000 --bind 0.0.0.0
然后在 Snow Leopard 浏览器中访问:
http://宿主机局域网地址:8000/
可以用以下命令查看宿主机地址,实际使用的接口不一定是 en0:
ipconfig getifaddr en0
使用完毕后,在宿主机终端按 Control-C 停止服务器。这个服务器默认没有身份验证,只适合在可信网络中临时使用。
使用 SSH、SCP 或 rsync
在 Snow Leopard 中启用:
System Preferences > Sharing > Remote Login
然后从宿主机向虚拟机复制文件:
scp ./project.zip username@虚拟机地址:~/Desktop/
复制整个目录:
scp -r ./Project username@虚拟机地址:~/Desktop/
Snow Leopard 的 SSH 服务较旧,macOS 14 的 OpenSSH 客户端可能拒绝其主机密钥算法。确认连接目标确实是本地虚拟机后,可以只为本次连接临时放宽算法限制:
scp \
-oHostKeyAlgorithms=+ssh-rsa \
./project.zip username@虚拟机地址:~/Desktop/
如果仍然提示密钥交换算法不兼容,可根据具体错误添加范围最小的兼容选项。不要全局降低宿主机的 SSH 安全设置。
创建只读 ISO
对于固定的 SDK、源代码归档或安装包,可以在宿主机创建 ISO,再把它挂载为虚拟 CD/DVD:
hdiutil makehybrid \
-iso \
-joliet \
-o transfer.iso \
"/path/to/files"
这种方法无法从虚拟机向宿主机写回文件,但不依赖网络或 VMware Tools,适合一次传输大量只读文件。
复制粘贴的替代方案
Fusion 的宿主机与客户机剪贴板同步依赖 VMware Tools。Tools 没有运行时,Fusion 无法提供这项功能。
可以在 Snow Leopard 中启用 Screen Sharing,再从宿主机连接:
vnc://虚拟机地址
不同版本的 Screen Sharing 和 VNC 客户端对剪贴板同步的支持并不一致,需要实际测试。如果图形剪贴板不可用,还可以通过 SSH 登录虚拟机,利用宿主机终端的复制粘贴功能处理终端文本。
需要留意的限制
Mac OS X 10.6、旧版 VMware Tools、Fusion 13 和 macOS 14 来自不同技术世代。即使旧版 Tools 安装成功,也可能只有部分功能可用:
- 文件共享可以工作,但 3D 加速不可用。
- 分辨率可以调整,但双向剪贴板不稳定。
- Tools 服务能够启动,旧内核扩展却无法加载。
- Fusion 更新后,原本可用的组合可能失效。
建议保留一份已经配置好的虚拟机副本,并长期使用 SSH、HTTP 或 ISO 交换文件。开发所需的 Xcode 3.2 环境应尽量保持离线,不要用它处理敏感账户或不可信的网络内容。
备注:内容仅供参考。
