VMware Player7.1.0 + Ubuntu 14.10で共有フォルダのマウントができなくなった時の対応


ちょっと前からVMware Playerを最新版にあげたところ、vmwareの共有フォルダをマウントしてくれなくなってしまいました。
いろいろ調べて一応復旧したので、やったことをまとめます。

最初、この問題が発生した時に調べてみるとvmware-toolsのバグでこうなるというような情報があり、vmware-toolsのパッチがgithubに上げられているということだったので、以下のリポジトリのパッチを適用したvmware-toolsをインストールしましたが、改善しませんでした。(改善しないというよりビルドで失敗してる様子)

その後、上記のリポジトリのissueに同じような問題があがっているのを見つけました。
そこに書いてあった方法を使うと無事、共有フォルダのマウントができるようになりました。

やったこととしては、vmware-tools-distrib/lib/modules/source/vmhgfs.tar内のvmhgfs-only/inode.cのコード内に含まれる”d_alias”を”d_u.d_alias”に置換しただけですが、tarを解凍したり再圧縮したり、と地味に面倒だったので、スクリプトにしてみました。

最初は、githubのパッチも必要だと思っていたのですが、その後確認したらこの現象の改善自体にはリポジトリのパッチは必要なかったので、githubのパッチ込みで作ったスクリプトと、単独のスクリプトの両方を記載します。

#!/bin/sh
VMTOOL="VMwareTools-9.9.0-2304977.tar.gz"
ISOPATH="payload/linux.iso"
git clone https://github.com/rasa/vmware-tools-patches.git
cd vmware-tools-patches
wget https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/7.1.0/2314774/packages/com.vmware.fusion.tools.linux.zip.tar
tar xf com.vmware.fusion.tools.linux.zip.tar
unzip com.vmware.fusion.tools.linux.zip
echo ""
echo "Please mount `pwd`${ISOPATH}, and move ${VMTOOL} for `pwd`. Enter Once it finished."
read Wait
tar xzf ${VMTOOL}
cd vmware-tools-distrib/lib/modules/source/
tar xf vmhgfs.tar
sed -i -e s/d_alias/d_u.d_alias/g vmhgfs-only/inode.c
cp -p vmhgfs.tar vmhgfs.tar.origi
tar cf vmhgfs.tar vmhgfs-only
cd ../../../../
cp -p ${VMTOOL} ${VMTOOL}.origi
tar czf ${VMTOOL} vmware-tools-distrib
echo 'Finished patch. Please run "./untar-and-patch-and-compile.sh"'

view raw
vmhgfs-patch.sh
hosted with ❤ by GitHub

こちらのgithubのパッチ込のスクリプトでは、vmwaretoolsもスクリプト内でダウンロードしようとしてますが、配布がISOしかなく、ISOからのファイル抽出の方法がrootなしかつ、コマンドライン上でするやり方が分からなかったため、そこだけ手動で操作するようにしています。また、VMwareTools-9.9.2でのgithubのパッチ適応がうまくできなかったため、VMwareTools-9.9.0をDLするようにしています。

#!/bin/bash
VMTOOlS="VMwareTools-9.9.2-2496486.tar.gz"
if [ ! -e ${VMTOOlS} ]; then
echo "${VMTOOlS} is Not found. Please save this file for current dir."
exit 1
fi
tar xzf ${VMTOOlS}
cd vmware-tools-distrib/lib/modules/source/
tar xf vmhgfs.tar
sed -i -e s/d_alias/d_u.d_alias/g vmhgfs-only/inode.c
cp -p vmhgfs.tar vmhgfs.tar.origi
tar cf vmhgfs.tar vmhgfs-only
cd ../../../
echo 'Finished patch. Please run "./vmware-install.pl"'

こちらのスクリプトでは、上記の置換処理のみを行っています。VMwareToolsのtarファイルをスクリプトと同フォルダに入れている前提です。それがない場合には動作しません。

根本的な原因を調べずの場当たり的な対応ですが、結構使えないと面倒な場面が多かったので、もし同様の症状があった際の参考になれば幸いです。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください