构建 open_vm_tools 内核模块

构建 open_vm_tools 内核模块

关于这一点有很多页面,但它们都没有仔细区分它们描述的是哪一套 vmware 工具。有两套相当不同的:

  1. apt 包 open-vm-tools(和 open-vm-tools-desktop)
  2. 从 VMWare 菜单安装的 VMware 工具(通过 CDROM)

还请注意,#1 的内容已更改,vmware-hgfsmounter 不再存在。我正在使用 VMware Fusion 8.1.1 和 Ubuntu 16.04。

要安装 #2,您必须先执行“apt-get purge open-vm-tools open-vm-tools-desktop”。执行此操作并从 CDROM 运行安装程序时,它会提示您使用 open-vm-tools。如果您忽略该提示并安装它们,您将在 vmhgfs(在 Linux 中实现共享文件夹的内核模块)上收到大量编译器错误,并且安装会失败。

我多次在两种类型的 VMware 工具之间进行切换,直到偶然找到一个解决方案:

使用 open-vm-tools(对我来说,它们在我安装 Ubuntu 16.04 时就出现了)。重启。在 VMware 设置中(在主机上):

  1. 禁用共享文件夹
  2. 启用共享文件夹
  3. 删除所有文件夹
  4. 添加回你想要的文件夹

现在它们在我这里,在 /mnt/hgfs 中。但它们在重启时消失 - 禁用和启用共享文件夹(在 VMware Fusion 设置中)将它们带回来。我不知道该把什么放入 /etc/fstab,所以每次重启后我都必须禁用/启用它们。

有人能告诉我如何让它们在重启后继续存在吗?

(我本来想将其添加到其他页面之一,但此系统不允许像我这样的新用户这样做。我是这里的新手,而不是 Linux 或 VMwarL 的新手。)

答案1

构建 open_vm_tools 内核模块

问题

Ubuntu 16.04(以及其他版本)的默认 open_vm_tools 包不足以支持挂载共享文件夹。

环境

  • Ubuntu 16.04.3 LTS 桌面主机
  • VMware Workstation 12 Pro 版本 12.5.7 build-5813279
  • Ubuntu 16.04.3 LTS 服务器虚拟机

解决方案

该解决方案源自vmware/open-vm-tools#62

sudo apt-get install build-essential libprocps4-dev dnet-progs libdumbnet-dev doxygen libglib2.0-dev libtool autotool
 git clone https://github.com/vmware/open-vm-tools.git
 cd open-vm-tools/open-vm-tools
 autoreconf -i
 ./configure --without-x --without-pam --without-ssl –without-icu --
 enable-deploypkg=no
 cd modules
 make MODULES=vmhgfs
 sudo insmod linux/vmhgfs/vmhgfs.ko

内核模块更新

每次内核更新后都必须重建并重新安装该模块。

要在 Linux 内核更新后清理 repo:git reset --hard open-vm-tools

make distclean没有充分重置环境并会导致模块损坏。

模块安装

sudo mkdir /lib/modules/`uname -r`/extra
sudo mv linux/vmhgfs/vmhgfs.ko /lib/modules/`uname -r`/extra
sudo chown root:root /lib/modules/`uname -r`/extra/vmhgfs.ko 
sudo chmod 644 /lib/modules/`uname -r`/extra/vmhgfs.ko

挂载共享文件夹

mount -t vmhgfs .host:/share /mnt/hgfs

要自动挂载,请编辑/etc/fstab文件并添加:

.host :/ /mnt/hgfs vmhgfs defaults 0 0

更新 #1

经过进一步调查,似乎 vmhgfs 已被移至用户空间并使用保险丝接口。

要挂载共享文件夹(假设 $HOME/Shared 存在):

/usr/bin/vmhgfs-fuse -o auto_unmount .host:/ $HOME/Shared

要自动挂载,请编辑/etc/fstab文件并添加:

.host:/ /home/user/Shared fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,auto_unmount,defaults 0 0

其中 user 是您的用户 ID,而您的 uid 和 gid == 1000。用于id确定您的 uid 和 gid。

相关内容