VMWareFusionでフォルダ共有ができなくなった場合の対処

More than 3 years have passed since last update.


環境


  • VMWare Fusion 7.1.1

  • ホストOS: OSX 10.9

  • ゲストOS: Ubuntu 14.04.2 LTS


現象


  • いつものように、VMWare Fusionで/mnt/hgfsがマウントできなくなる

  • いつもはVMWare Toolsの再インストール、config-toolsの実行等を行うと治るが、今回は改善せず。

  • open-vm-toolsを入れてみてもダメ。


原因


対策


  • パッチが公開されているので当てる
    https://github.com/rasa/vmware-tools-patches


    • 以下を実行するとパッチが当たったVMWareToolsがインストールされる
      (VMWareTools-*.tar.gzはカレントディレクトリに置いておく)



git clone https://github.com/rasa/vmware-tools-patches.git

cp VMWareTools-*.tar.gz vmware-tools-patches/
cd vmware-tools-patches
./untar-and-patch-and-compile.sh


注意


Error Log

~/vmware-tools-distrib$ sudo ./vmware-install.pl

The installer has detected an existing installation of
open-vm-tools on this
system and will not attempt to remove and replace these
user-space
applications. It is recommended to use the open-vm-tools
packages provided by
the operating system. If you do not want to use the existing
installation of
open-vm-tools and attempt to install VMware Tools, you must
uninstall the
open-vm-tools packages and re-run this installer.
The installer will next check if there are any missing kernel
drivers. Type yes
if you want to do this, otherwise type no [yes]

A previous installation of VMware Tools has been detected.

The previous installation was made by the tar installer
(version 4).

Keeping the tar4 installer database format.

You have a version of VMware Tools installed. Continuing
this install will
first uninstall the currently installed version. Do you wish
to continue?
(yes/no) [yes]

Uninstalling the tar installation of VMware Tools.

Stopping services for vmware-tools

vmware-tools stop/waiting
Stopping services for vmware-tools-thinprint

vmware-tools-thinprint stop/waiting
update-initramfs: Generating
/boot/initrd.img-3.13.0-46-generic
The removal of VMware Tools 9.9.2 build-2496486 for Linux
completed
successfully.

Installing VMware Tools.

In which directory do you want to install the binary files?
[/usr/bin]

What is the directory that contains the init directories
(rc0.d/ to rc6.d/)?
[/etc]

What is the directory that contains the init scripts?
[/etc/init.d]

In which directory do you want to install the daemon files?
[/usr/sbin]

In which directory do you want to install the library files?
[/usr/lib/vmware-tools]

The path "/usr/lib/vmware-tools" does not exist currently.
This program is
going to create it, including needed parent directories. Is
this what you want?
[yes]

In which directory do you want to install the documentation
files?
[/usr/share/doc/vmware-tools]

The path "/usr/share/doc/vmware-tools" does not exist
currently. This program
is going to create it, including needed parent directories.
Is this what you
want? [yes]

The installation of VMware Tools 9.9.2 build-2496486 for
Linux completed
successfully. You can decide to remove this software from
your system at any
time by invoking the following command:
"/usr/bin/vmware-uninstall-tools.pl".

Before running VMware Tools for the first time, you need to
configure it by
invoking the following command:
"/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]

Initializing...

Making sure services for VMware Tools are stopped.

The module vmci has already been installed on this system by
another installer
or package and will not be modified by this installer.

The module vsock has already been installed on this system by
another installer
or package and will not be modified by this installer.

The module vmxnet3 has already been installed on this system
by another
installer or package and will not be modified by this
installer.

The module pvscsi has already been installed on this system
by another
installer or package and will not be modified by this
installer.

The module vmmemctl has already been installed on this system
by another
installer or package and will not be modified by this
installer.

The VMware Host-Guest Filesystem allows for shared folders
between the host OS
and the guest OS in a Fusion or Workstation virtual
environment. Do you wish
to enable this feature? [yes]

Before you can compile modules, you need to have the
following installed...

make
gcc
kernel headers of the running kernel

Searching for GCC...
Detected GCC binary at "/usr/bin/gcc".
The path "/usr/bin/gcc" appears to be a valid path to the gcc
binary.
Would you like to change it? [no]

Searching for a valid kernel header path...
Detected the kernel headers at
"/lib/modules/3.13.0-46-generic/build/include".
The path "/lib/modules/3.13.0-46-generic/build/include"
appears to be a valid
path to the 3.13.0-46-generic kernel headers.
Would you like to change it? [no]

Using kernel build system.
make: ディレクトリ `/tmp/modconfig-891E4X/vmhgfs-only' に入ります
/usr/bin/make -C
/lib/modules/3.13.0-46-generic/build/include/.. SUBDIRS=$PWD
SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: ディレクトリ `/usr/src/linux-headers-3.13.0-46-generic'
に入ります
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/backdoor.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/backdoorGcc64.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/bdhandler.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/cpName.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/cpNameLinux.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/cpNameLite.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/dentry.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/dir.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/file.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/filesystem.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/fsutil.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/hgfsBd.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/hgfsEscape.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/hgfsUtil.o
CC [M] /tmp/modconfig-891E4X/vmhgfs-only/inode.o
In file included from
/usr/src/linux-headers-3.13.0-46-generic/arch/x86/include/asm/
percpu.h:44:0,
from
/usr/src/linux-headers-3.13.0-46-generic/arch/x86/include/asm/
preempt.h:5,
from include/linux/preempt.h:18,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:4,
from include/linux/mm.h:8,
from include/linux/pagemap.h:7,
from
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:29:
/tmp/modconfig-891E4X/vmhgfs-only/inode.c: In function
‘HgfsPermission’:
include/linux/kernel.h:793:27: error: ‘struct dentry’ has no
member named ‘d_alias’
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
include/linux/list.h:687:40: note: in expansion of macro
‘container_of’
#define hlist_entry(ptr, type, member)
container_of(ptr,type,member)
^
include/linux/list.h:698:15: note: in expansion of macro
‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:708:13: note: in expansion of macro
‘hlist_entry_safe’
for (pos = hlist_entry_safe((head)->first, typeof(*(pos)),
member);\
^
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:1920:7: note: in
expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
include/linux/kernel.h:793:48: warning: initialization from
incompatible pointer type [enabled by default]
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
include/linux/list.h:687:40: note: in expansion of macro
‘container_of’
#define hlist_entry(ptr, type, member)
container_of(ptr,type,member)
^
include/linux/list.h:698:15: note: in expansion of macro
‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:708:13: note: in expansion of macro
‘hlist_entry_safe’
for (pos = hlist_entry_safe((head)->first, typeof(*(pos)),
member);\
^
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:1920:7: note: in
expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
In file included from include/linux/compiler-gcc.h:106:0,
from include/linux/compiler.h:54,
from include/uapi/linux/stddef.h:1,
from include/linux/stddef.h:4,
from
/usr/src/linux-headers-3.13.0-46-generic/include/uapi/linux/po
six_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from
/tmp/modconfig-891E4X/vmhgfs-only/./shared/driver-config.h:71,
from
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:26:
include/linux/compiler-gcc4.h:14:34: error: ‘struct dentry’
has no member named ‘d_alias’
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
^
include/linux/stddef.h:17:31: note: in expansion of macro
‘__compiler_offsetof’
#define offsetof(TYPE,MEMBER)
__compiler_offsetof(TYPE,MEMBER)
^
include/linux/kernel.h:794:29: note: in expansion of macro
‘offsetof’
(type *)( (char *)__mptr - offsetof(type,member) );})
^
include/linux/list.h:687:40: note: in expansion of macro
‘container_of’
#define hlist_entry(ptr, type, member)
container_of(ptr,type,member)
^
include/linux/list.h:698:15: note: in expansion of macro
‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:708:13: note: in expansion of macro
‘hlist_entry_safe’
for (pos = hlist_entry_safe((head)->first, typeof(*(pos)),
member);\
^
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:1920:7: note: in
expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
In file included from include/linux/preempt.h:10:0,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:4,
from include/linux/mm.h:8,
from include/linux/pagemap.h:7,
from
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:29:
include/linux/list.h:710:35: error: ‘struct dentry’ has no
member named ‘d_alias’
pos = hlist_entry_safe((pos)->member.next,
typeof(*(pos)), member))
^
include/linux/list.h:697:12: note: in definition of macro
‘hlist_entry_safe’
({ typeof(ptr) ____ptr = (ptr); \
^
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:1920:7: note: in
expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
include/linux/list.h:710:35: error: ‘struct dentry’ has no
member named ‘d_alias’
pos = hlist_entry_safe((pos)->member.next,
typeof(*(pos)), member))
^
include/linux/list.h:697:28: note: in definition of macro
‘hlist_entry_safe’
({ typeof(ptr) ____ptr = (ptr); \
^
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:1920:7: note: in
expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
In file included from
/usr/src/linux-headers-3.13.0-46-generic/arch/x86/include/asm/
percpu.h:44:0,
from
/usr/src/linux-headers-3.13.0-46-generic/arch/x86/include/asm/
preempt.h:5,
from include/linux/preempt.h:18,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:4,
from include/linux/mm.h:8,
from include/linux/pagemap.h:7,
from
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:29:
include/linux/kernel.h:793:27: error: ‘struct dentry’ has no
member named ‘d_alias’
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
include/linux/list.h:687:40: note: in expansion of macro
‘container_of’
#define hlist_entry(ptr, type, member)
container_of(ptr,type,member)
^
include/linux/list.h:698:15: note: in expansion of macro
‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:710:13: note: in expansion of macro
‘hlist_entry_safe’
pos = hlist_entry_safe((pos)->member.next,
typeof(*(pos)), member))
^
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:1920:7: note: in
expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
include/linux/kernel.h:793:48: warning: initialization makes
pointer from integer without a cast [enabled by default]
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
^
include/linux/list.h:687:40: note: in expansion of macro
‘container_of’
#define hlist_entry(ptr, type, member)
container_of(ptr,type,member)
^
include/linux/list.h:698:15: note: in expansion of macro
‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:710:13: note: in expansion of macro
‘hlist_entry_safe’
pos = hlist_entry_safe((pos)->member.next,
typeof(*(pos)), member))
^
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:1920:7: note: in
expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
In file included from include/linux/compiler-gcc.h:106:0,
from include/linux/compiler.h:54,
from include/uapi/linux/stddef.h:1,
from include/linux/stddef.h:4,
from
/usr/src/linux-headers-3.13.0-46-generic/include/uapi/linux/po
six_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from
/tmp/modconfig-891E4X/vmhgfs-only/./shared/driver-config.h:71,
from
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:26:
include/linux/compiler-gcc4.h:14:34: error: ‘struct dentry’
has no member named ‘d_alias’
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
^
include/linux/stddef.h:17:31: note: in expansion of macro
‘__compiler_offsetof’
#define offsetof(TYPE,MEMBER)
__compiler_offsetof(TYPE,MEMBER)
^
include/linux/kernel.h:794:29: note: in expansion of macro
‘offsetof’
(type *)( (char *)__mptr - offsetof(type,member) );})
^
include/linux/list.h:687:40: note: in expansion of macro
‘container_of’
#define hlist_entry(ptr, type, member)
container_of(ptr,type,member)
^
include/linux/list.h:698:15: note: in expansion of macro
‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:710:13: note: in expansion of macro
‘hlist_entry_safe’
pos = hlist_entry_safe((pos)->member.next,
typeof(*(pos)), member))
^
/tmp/modconfig-891E4X/vmhgfs-only/inode.c:1920:7: note: in
expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
make[2]: *** [/tmp/modconfig-891E4X/vmhgfs-only/inode.o] エラー 1
make[1]: *** [_module_/tmp/modconfig-891E4X/vmhgfs-only] エラー 2
make[1]: ディレクトリ `/usr/src/linux-headers-3.13.0-46-generic'
から出ます
make: *** [vmhgfs.ko] エラー 2
make: ディレクトリ `/tmp/modconfig-891E4X/vmhgfs-only' から出ます

The filesystem driver (vmhgfs module) is used only for the
shared folder
feature. The rest of the software provided by VMware Tools is
designed to work
independently of this feature.

If you wish to have the shared folders feature, you can
install the driver by
running vmware-config-tools.pl again after making sure that
gcc, binutils, make
and the kernel sources for your running kernel are installed
on your machine.
These packages are available on your distribution's
installation CD.
[ Press Enter key to continue ]

The vmxnet driver is no longer supported on kernels 3.3 and
greater. Please
upgrade to a newer virtual NIC. (e.g., vmxnet3 or e1000e)

VMware automatic kernel modules enables automatic building
and installation of
VMware kernel modules at boot that are not already present.
This feature can be

enabled/disabled by re-running vmware-config-tools.pl.

Would you like to enable VMware automatic kernel modules?
[yes]

Thinprint provides driver-free printing. Do you wish to
enable this feature?
[yes]

Creating a new initrd boot image for the kernel.
update-initramfs: Generating
/boot/initrd.img-3.13.0-46-generic
vmware-tools-thinprint start/running
vmware-tools start/running
The configuration of VMware Tools 9.9.2 build-2496486 for
Linux for this
running kernel completed successfully.

Enjoy,

--the VMware team