VMware ToolsでLinux 3.xカーネルに他力本願で対応して共有フォルダにアクセスする。

# はじめに
興味本位で、GentooやFedoraベースのLinuxディストリビューションである「[Korora](https://kororaproject.org/)」をVMwareで試してみたくて、VMware Toolsをインストールしようとして「はまった」ので、ここに覚書をしておきます。
open-vm-toolsでスンナリ動く環境の場合は、この記事は不要です。

# ここで解説する環境
ホストOS：
- Windows 8.1 Pro 64bit
- VMware Workstation 10
- VMwareで設定した共有フォルダの名前: **CommonFolder**

ゲストOS：
- korora 23 64bit(4.4.8-300.fc23.x86_64):**korora-23-x86_64-cinnamon.iso より2016/05/10時点までのアップデートを適用**
- VMwareTools-9.6.2-1688356.tar.gz
- open-vm-tools 10.0.0

Kororaでは、cinnamon、gnome、kde、mate、xfceが選べるようですので、ここはなんとなく使って見たかったcinnamonを選びました。
また、ゲストOSは、おそらく **他人様の努力次第(後述)で** Korora以外でも同様の手順で行けるかと思います。
 
# 結論までの試行錯誤
さっさと解決方法を見たい方は、以下を飛ばして「 **手順** 」の項へお進みください。

## VMware Toolsのインストールをこれまでの手順で試みる。
まず、Kororaを普通にゲストOSとして仮想マシンにインストールすると、標準でopen-vm-toolsがインストールされた状態で完了します。
ですので、何も考えずにVMware ToolsのCDイメージをマウントし、以下のように進めようとすると、見事に怒られます。

```lang:shell
$ sudo umount /run/media/Jaken/korora-23-x86_64-cinnamon
$ sudo mkdir /mnt/cdrom/
$ sudo mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom
$ cp /mnt/cdrom/VMwareTools*.tar.gz /tmp/
$ sudo umount /mnt/cdrom
$ tar xfvz /tmp/VMwareTools*.tar.gz
$ cd vmware-tools-distrib/
$ sudo ./vmware-install.pl
```

```
The installer found the following conflicting packages installed on the system and will now remove them:
open-vm-tools
```
open-vm-toolsって何よ？で、少し調べてみると、VMware Toolsを使うよりも、最近は、open-vm-toolsがオススメらしいことがわかります。

## 初期状態のopen-vm-toolsで試みる。
それなら・・・と、調べながら試行錯誤しても、ホストマシンで設定した共有フォルダが見れませんでした。（私が試した時、現在リポジトリにある最新のバージョンはopen-vm-tools 10.0.0 でした。今後はopen-vm-toolsで対応されれば、この記事の内容は不要になると思います）

私が経験した現象は、 `vmware-hgfsclient` で共有フォルダの名前は取得できますが、 `sudo mount -t vmhgfs .host:/CommonFolder /mnt/CommonFolder` みたいにダサい名前の共有フォルダを接続しようとすると、カーネルにvmhgfsモジュールが組み込まれていないために、以下のエラーになってしまうというものでした。

```
mount: 未知のファイルシステムタイプ 'vmhgfs' です
```

ディストリビューションによっては、このあたりにちゃんと対応しているようで、ここで問題なく接続できる場合は、すんなり行くようですね。
ubuntuには、 `vmware-hgfsmounter` というものもあるようですが、Kororaには無さそうでしたので、試していません。

## VMware Toolsをインストールする方法を試みる。
ということで、vmhgfsについて調べてみると、VMware Toolsに含まれているモジュールであることがわかり、カーネルイジリなどした事のない私の知識では、open-vm-toolsは厳しいと感じ始めます。
（ただ、深く調べる前に、別の解決方法を見つけてしまったので、open-vm-toolsの素の機能で、もっと簡単にできるのかもしれません。私の知らない方法があれば、ぜひ教えてください！）

そこで、`sudo dnf remove -y open-vm-tools*` な感じでさっくりアンインストールし、再度チャレンジするのですが、インストーラーの質問にEnterキーで応えつつ、いくつか進めたところで、問題にぶち当たります。

そこで初めて **VMware ToolsはLinux 3.xカーネル以上に対応していない** ことに気が付きます。
いろいろ見ていると・・・

- [VMware上のUbuntu13.04でvmware-toolsが動かなかったので === SANDmark 19106 === beginning stress test](http://d.hatena.ne.jp/sandmark/20130628/1372423473)
- [Linux 3.x の仮想マシンから VMware Fusion の共有フォルダが見えない  - いままでのこと](http://blog.tekito.org/2013/09/28/linux-3-x-%E3%81%AE%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%8B%E3%82%89-vmware-fusion-%E3%81%AE%E5%85%B1%E6%9C%89%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%81%8C%E8%A6%8B%E3%81%88%E3%81%AA/)
- [VMWare下のUbuntuとWindowsのファイル共有で/mnt/hgfsにフォルダが出ないときの対処法 - haya14busa](http://haya14busa.com/solution-of-sharing-file-between-windows-and-ubuntu-under-vmware/)

このあたりを見て、できそうな気持ちにはなるのですが、どうもここまでやる気分になれません。
そこで、さらに調べている中で、以下の方法を発見します。

# 手順
GitHubでこのプロジェクトを見つけたことで、私はタバコをやめました。
[rasa/vmware-tools-patches - GitHub](https://github.com/rasa/vmware-tools-patches)
いや、ほんと、素晴らしい。ありがとうrasaさん、感謝です！

```lang:shell
$ git clone https://github.com/rasa/vmware-tools-patches.git
$ cd vmware-tools-patches
$ ./patched-open-vm-tools.sh
```
ドキュメントのQuickest Startのまんまにコマンドを叩いていくと、あっという間に完了です。今まで何を悩んでいたのか、もうすっかり忘れてしまいました。

確認すると、 `/mnt/hgfs/CommonFolder` に共有フォルダがマウントされていました。また、ゲストOS再起動後の接続もしっかりされていました。

ということで、open-vm-toolsがもう少し使えるようになるまでは、vmware-tools-patchesのお世話になりそうです。