中学校の英語の授業で、英文を日本語に訳せってことで、英文中のsuccessfullyという単語をとりあえず「成功」と訳した日本語文を作ったら、君たちはsuccessって単語があったら何でもかんでも成功と訳しちゃうんだなぁ、とか言われたことがありました。なんか、そんなことをふと思い出したけど、そんなことはぜんぜん関係ない話。
VMware Playerの中で動かしているFreeBSD。VMwareの機能を使って、帰宅するときにサスペンド、次の日に、レジュームさせて作業を継続、とかやってたんですが、レジュームしたときに、毎回、こういうメッセージが表示されてました。
The VMware Tools resume script did not run successfully in this virtual machine. If you have configured a custom resume script in this virtual machine, please inspect it for errors; otherwise, please submit a support request.
VMware Toolsがresumeスクリプトを実行したけど、正常な終了コードが返ってこなかったよ、ということなんです。別に何も困ったことは起きていないので、ずっと無視していましたが、一応、調べてみました。
https://www.vmware.jp/pdf/VMWare_server_VM_Guide.pdf
仮想マシン ガイド
~ というドキュメントを見ると、どうやら、VMware Toolsをインストールしておくと、ゲストOSを、パワーオン、パワーオフ、サスペンド、レジュームさせたときに、特定のスクリプトが自動実行されることになっているそうです。
今回の場合、ゲストOSはFreeBSDなんですが、その実行されるというスクリプトは、/etc/vmware-toolsというディレクトリにあるらしいので、見てみると・・・
# ls -l /etc/vmware-tools
lrwxr-xr-x 1 root wheel 29 11 6 19:05 /etc/vmware-tools -> /usr/X11R6/share/vmware-tools
シンボリックリンクになっていて
# ls -l /usr/X11R6/share/vmware-tools
lrwxr-xr-x 1 root wheel 13 11 6 19:05 poweroff-vm-default -> /usr/bin/true
lrwxr-xr-x 1 root wheel 13 11 6 19:05 poweron-vm-default -> /usr/bin/true
lrwxr-xr-x 1 root wheel 13 11 6 19:05 suspend-vm-default -> /usr/bin/true
という具合。すべて実態は/usr/bin/trueなので、何にも処理はせず、単に正常を意味する終了コードが返るだけですね。
ちなみに、/usr/local/share/vmware-tools/のほうにも、poweroff-vm-defaultといったスクリプトがコピーされていて、どっちのスクリプトが実行されるんだろう?と思ったのですが、調べてみたら、やっぱり、(/etc/vmware-toolsが指している先の)/usr/X11R6/share/vmware-toolsの方が実行されていました。
なお、VMware Toolsのインストール方法については、こちらで触れました。
さて、これで何が悪いのか。おや?実際に存在するのは
poweroff-vm-default
poweron-vm-default
suspend-vm-default
スクリプトは3種類。レジューム用のスクリプトresume-vm-defaultがありません。そのために、レジューム後にエラーが出ていたようです。
これらのスクリプトってば、どこからインストールされたのか?
# pkg_which /usr/local/share/vmware-tools/poweroff-vm-default
vmware-guestd-4.5.2.8848_2
なるほど。FreeBSDのportsでインストールできるvmware-toolsは
% ls -1d /usr/ports/emulators/vmware-tools*
/usr/ports/emulators/vmware-tools2/
/usr/ports/emulators/vmware-tools3/
/usr/ports/emulators/vmware-tools4/
/usr/ports/emulators/vmware-tools5/
と4種類あるのですが、Makefileなどを眺めてみたところ、vmware-tools4をインストールした場合、resume-vm-defaultが作成されないみたいです。VMware toolsと、portsとで、間違ったバージョンの組み合わせでインストールしちゃった、ということのようです。
つまり、vmware-tools5をインストールするのが正解だった、ということ。
めんどくさいので、とりあえずシンボリックリンクを作成してごまかすことにしました。
# ln -s /usr/bin/true /etc/vmware-tools/resume-vm-default
(オマケ) xorg.conf
自分で作って置いておいたxorg.confが、なんか気に入らないところがあったので(何かは忘れた…)、今使っているものをおいておきます。VMware Toolsをインストール済みで、vmmouse_drv.oが存在していることが前提になっています。
参考