我正在运行 Vmware ESX 4.1,并且我有一个开发虚拟机,我最近将它从 Ubuntu 10.04 升级到了 11.04。然后我尝试重新安装 VMware Tools,但某些模块出现错误,无法编译。因此,我现在无法备份此虚拟机,我怀疑 VMware tools 是原因。我安装了 VMware 主机的最新补丁,其中包括对 VMware Tools 的更新(v8.3.7 build-381511),但我仍然收到相同的错误。
我收到的错误是这样的:
...
/tmp/vmware-root/modules/vmhgfs-only/super.c:73:4: error: unknown field \u2018clear_inode\u2019 specified in initializer
make[2]: *** [/tmp/vmware-root/modules/vmhgfs-only/super.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/vmware-root/modules/vmhgfs-only'
还有这个:
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:91:4: error: unknown field \u2018ioctl\u2019 specified in initializer
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:91:4: warning: initialization from incompatible pointer type
/tmp/vmware-root/modules/vmci-only/vmci_drv.c: In function \u2018vmci_init\u2019:
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:151:4: error: implicit declaration of function \u2018init_MUTEX\u2019
make[2]: *** [/tmp/vmware-root/modules/vmci-only/vmci_drv.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmci-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic'
make: *** [vmci.ko] Error 2
make: Leaving directory `/tmp/vmware-root/modules/vmci-only'
有任何想法吗?
答案1
我猜想是你使用了错误版本的内核头文件。除非你需要某些特定功能,而这些功能只在你尝试构建的 vmware tools 版本中可用(提示:你可能不需要),否则你可以通过删除手动安装的版本并使用 ubuntu 中的 open-vm-tools 包来省去很多麻烦:
sudo aptitude install linux-headers-virtual open-vm-dkms open-vm-tools
也可以直接从 vmware 中提取最新版本的工具,但是您需要对 apt 进行一些操作:
apt-add-repository 'deb http://packages.vmware.com/tools/esx/4.1latest/ubuntu natty main restricted'
wget http://packages.vmware.com/tools/VMWARE-PACKAGING-GPG-KEY.pub -q -O- | apt-key add -
apt-get update
apt-get install vmware-open-vm-tools-kmod-source
module-assistant prepare
module-assistant build vmware-open-vm-tools-kmod-source
apt-get install vmware-open-vm-tools
答案2
看来,将我们的 VMware ESXi 服务器迁移到 5.0 版本后,这个问题就消失了。显然,这是 VMware 工具的问题,最终由 VMware 修复。
在此之前,我们按照 @pehrs 的建议从 Ubuntu 存储库运行 VMware 工具,它们运行正常,但例外情况是它们在 VMware vCenter 中显示为“未管理”,并且如果有新版本可用,则无法从 VMware vCenter 控制台升级它们。相反,有人需要以 root 身份登录到 Ubuntu 计算机并检查更新。不过,这是一个有效的短期解决方案。