ちょっと前から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のパッチ込みで作ったスクリプトと、単独のスクリプトの両方を記載します。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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"' |
こちらのgithubのパッチ込のスクリプトでは、vmwaretoolsもスクリプト内でダウンロードしようとしてますが、配布がISOしかなく、ISOからのファイル抽出の方法がrootなしかつ、コマンドライン上でするやり方が分からなかったため、そこだけ手動で操作するようにしています。また、VMwareTools-9.9.2でのgithubのパッチ適応がうまくできなかったため、VMwareTools-9.9.0をDLするようにしています。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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ファイルをスクリプトと同フォルダに入れている前提です。それがない場合には動作しません。
根本的な原因を調べずの場当たり的な対応ですが、結構使えないと面倒な場面が多かったので、もし同様の症状があった際の参考になれば幸いです。