CentOS 7にVMWare Toolsをインストールしてファイル共有を使う

一週間悩んだのでメモ。

open-vm-toolsをインストールしてみる

VMWare ToolsのOSS実装があるらしい。yumでインストールできる。これで上手く行けば一番楽。動かなかったのでアンインストール。

[root@localhost user]# yum install open-vm-tools
[root@localhost user]# yum remove open-vm-tools

必要なパッケージのインストール

Minimalでインストールして、ほとんど何も入っていないので、以降の手順で必要なものをインストール。kernel-develはバージョン番号を指定する必要があるらしい。

[root@localhost user]# yum install perl gcc net-tools kernel-devel-$(uname -r)

VMWare Toolsのインストール

open-vm-toolsではダメだったので、普通にVMWare Toolsをインストールする。

VMWareのメニューから、管理 → VMWare Toolsのインストール

[root@localhost user]# mount /dev/cdrom /mnt/cdrom
[root@localhost user]# tar zxvf /mnt/cdrom/VMwareTools-9.6.2-1688356.tar.gz
[root@localhost user]# vmware-tools-distrib/vmware-install.pl
[root@localhost user]# rm -rf vmware-tools-distrib/

選択肢は全てデフォルト。途中で↓のようなエラーが出てコンパイルに失敗するが、とりあえず最後まで進める。

In file included from /tmp/modconfig-M45vq5/vmhgfs-only/inode.c:36:0:
/tmp/modconfig-M45vq5/vmhgfs-only/inode.c: 関数 ‘HgfsPermission’ 内:
/tmp/modconfig-M45vq5/vmhgfs-only/./shared/compat_dcache.h:57:38: エラー: ‘struct dentry’ は ‘d_count’ という名前のメンバを持っていません
 #define compat_d_count(dentry) dentry->d_count
                                      ^
/tmp/modconfig-M45vq5/vmhgfs-only/inode.c:1904:23: 備考: in expansion of macro ‘compat_d_count’
          int dcount = compat_d_count(dentry);
                       ^

ソースの修正

Workstation 10.0.3 and Centos 7 Guest Tools | VMware Communities

を参考にファイル共有用のドライバのソースを修正する。

[root@localhost user]# cd /lib/vmware-tools/modules/source/
[root@localhost source]# tar xvf vmhgfs.tar
[root@localhost source]# chmod u+w vmhgfs-only/shared/compat_dcache.h
[root@localhost source]# vi vmhgfs-only/shared/compat_dcache.h

54行目の

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)

に書き換える。

[root@localhost source]# chmod u-w vmhgfs-only/shared/compat_dcache.h
[root@localhost source]# tar cvf vmhgfs.tar vmhgfs-only
[root@localhost source]# rm -rf vmhgfs-only

再インストール

[root@localhost source]# /bin/vmware-config-tools.pl

これでインストールが通れば良い。 管理 → 仮想マシン設定 → オプション → 共有フォルダ でフォルダを追加する。/mnt/hgfs/にこのフォルダが見えていれば成功。