VMware は、最近では Linux ゲスト OS の VMware Tools として、
Linux ディストリビューションが提供する open-vm-tools のパッケージをインストールすることを推奨しています。
そこで、VMware Workstation Pro 12 の共有フォルダ機能を open-vm-tools をインストールした Linux で使用してみました。
今回は、下記を使用しています。
- VMware Workstation 12.5.5 Pro for Windows
- ホスト OS: Windows 10
- ゲスト OS: Oracle Linux 7.3 (UEK)
ちなみに、たまたま手元にあった Oracle Linux 7 を使用していますが Red Hat Enterprise Linux や CentOS でも同様です。
1. ホスト OS 側でフォルダを作成。
まず、ホストの Windows で、共有するためのフォルダと、
アクセス確認のための適当なテキストファイルを作成しておきます。
※Linux で開くので、テキストファイルのエンコードや改行コードには要注意・・・
今回は、C:\work\vmw_share フォルダに test.txt というファイルを作成してあります。
PS> cat C:\work\vmw_share\test.txt
VMTN Japanese Forum
2. VMware Workstation 共有フォルダを有効化 & 追加。
VMware Workstation で VM の設定を編集して、共有フォルダを有効にします。
「オプション」タブ → 「共有フォルダ」 で共有フォルダを有効(今回は「常に有効」)にして、
「追加」をクリックします。
「共有フォルダ追加ウィザード」が起動するので「次へ」。
ホスト OS 側のフォルダのパスと、ゲスト OS 側で認識される共有フォルダの名前を指定します。
今回は「vmw_share」という名前にしました。
「この共有を有効化」のチェックを ON にして「完了」。
「仮想マシンの設定」画面で、共有フォルダが追加されたことが確認できます。
3. ゲスト OS 側でマウント & アクセス確認。
Workstation で起動する VM のゲスト OS で 共有フォルダをマウントして、
ファイルの読み取り、書き込みを試してみます。
今回のゲスト OS は Oracle Linux 7.3 です。
[root@vm72 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.3
[root@vm72 ~]# uname -r
4.1.12-61.1.33.el7uek.x86_64
open-vm-tools のバージョンです。
[root@vm72 ~]# rpm -q open-vm-tools
open-vm-tools-10.0.5-4.0.1.el7_3.x86_64
[root@vm72 ~]# vmware-toolbox-cmd -v
10.0.5.52125 (build-3227872)
open-vm-tools がインストールされていない場合は、yum コマンドなどでインストールします。
# yum install -y open-vm-tools
Workstation で設定済みの共有フォルダ「vmw_share」は、ゲスト OS の Linux では認識されているようです。
[root@vm72 ~]# vmware-hgfsclient
vmw_share
Workstation 12 Pro のマニュアルだと、共有フォルダを mount コマンドでマウントしています。
Mounting Shared Folders in a Linux Guest
しかし、ただ mount コマンドを実行しても、共有フォルダの HGFS はマウントできませんでした。
[root@vm72 ~]# mount -t vmhgfs .host:/ /mnt/hgfs/
mount: unknown filesystem type 'vmhgfs'
[root@vm72 ~]# grep hgfs /proc/filesystems | wc -l
0
そこで、open-vm-tools に含まれる vmhgfs-fuse コマンドでマウントしてみました。
[root@vm72 ~]# vmhgfs-fuse /mnt/hgfs/
[root@vm72 ~]# mount | grep hgfs
vmhgfs-fuse on /mnt/hgfs type fuse.vmhgfs-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
[root@vm72 ~]# df -h /mnt/hgfs/
ファイルシス サイズ 使用 残り 使用% マウント位置
vmhgfs-fuse 220G 198G 22G 91% /mnt/hgfs
[root@vm72 ~]# ls -l /mnt/hgfs
合計 0
drwxrwxrwx. 1 root root 0 4月 8 21:56 vmw_share
[root@vm72 ~]# ls -l /mnt/hgfs/vmw_share/
合計 1
-rwxrwxrwx. 1 root root 44 4月 8 21:56 test.txt
Windows で作成しておいたファイルを読み取ることができます。
[root@vm72 ~]# cat /mnt/hgfs/vmw_share/test.txt
VMTN Japanese Forum
ファイルに追記してみました。
[root@vm72 ~]# echo "wo yoroshiku." >> /mnt/hgfs/vmw_share/test.txt
[root@vm72 ~]# cat /mnt/hgfs/vmw_share/test.txt
VMTN Japanese Forum
wo yoroshiku.
ホストの Windows 側でも追記されました。
PS> cat C:\work\vmw_share\test.txt
VMTN Japanese Forum
wo yoroshiku.
ちなみに、vmware-hgfsclient と vmhgfs-fuse は、どちらも open-vm-tools に含まれています。
[root@vm72 ~]# rpm -qf `which vmware-hgfsclient`
open-vm-tools-10.0.5-4.0.1.el7_3.x86_64
[root@vm72 ~]# rpm -qf `which vmhgfs-fuse`
open-vm-tools-10.0.5-4.0.1.el7_3.x86_64
4. 一般ユーザからのアクセスについて。
共有フォルダは、vmhgfs-fuse コマンドのデフォルトのオプションでマウントした場合、
Linux でパーミッション設定が「rwxrwxrwx」となっていても 一般ユーザからはアクセスできないようになっています。
[gowatana@vm72 ~]$ id gowatana
uid=1000(gowatana) gid=1000(gowatana) groups=1000(gowatana)
[gowatana@vm72 ~]$ cat /mnt/hgfs/vmw_share/test.txt
cat: /mnt/hgfs/vmw_share/test.txt: 許可がありません
root 以外のユーザで共有フォルダを使用したい場合は、「allow_other」オプションを付与するアクセス可能になります。
※vmhgfs-fuse コマンドは root ユーザか、sudo コマンドで実行します。
[root@vm72 ~]# umount /mnt/hgfs/
[root@vm72 ~]# vmhgfs-fuse -o allow_other /mnt/hgfs/
[root@vm72 ~]# mount | grep hgfs
vmhgfs-fuse on /mnt/hgfs type fuse.vmhgfs-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
一般ユーザでも読み取り / 書き込みになりました。
[gowatana@vm72 ~]$ echo "desu..." >> /mnt/hgfs/vmw_share/test.txt
[gowatana@vm72 ~]$ cat /mnt/hgfs/vmw_share/test.txt
VMTN Japanese Forum
wo yoroshiku.
desu...
以上、VMware Workstation の共有フォルダ機能を open-vm-tools の Linux で使用してみる話でした。