[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:43642] サスペンドとvmware5



えとーです。

かるくはまっていたので、他の人がはまらないよう
一応ご報告です。

現在ノートで VMware Workstation5 を使っています。
しかし、サスペンドしてからレジュームすると
ゲストOS がハングしてしまう現象があります。

これを回避するにはホストOSがサスペンドに入る前に
ゲストOS を サスペンドしておく必要がありますが、
手動で GUI から行なうのには自分の脳内メモリが少なく
いっつも忘れてレジュームしてから泣いていました。

しかし、UNIX MAGAZINE の 6月号の 「VMware Workstation 5.0.0」
という特集号で 白崎博生さんの記事にコマンドラインから
VMwareのゲストマシンを制御することができるようになったのを
知りました。

そこで、記事に記載されていたスクリプトでホストOSサスペンド時に
ゲストOSをサスペンドするようにしてみました。

テスト環境
計算機 Thinkpad X31 
OS Debian GNU/Linux sid
kernel 2.6.11
apmd 3.2.2-3
VMware Workstation 5.0.0 build-13124
vmware のコマンド類は /usr/local/bin/ 以下に インストール
acpi ではなく apm を使っています。

# vi /etc/apm/scripts.d/vmware
などとしてから以下のようなスクリプトを書き込みます。

--/etc/apm/scripts.d/vmware ここから--
#!/bin/sh -e
# apmd proxy script for vmware

case "${1},${2}" in
(suspend,*|standdy,*)
   /usr/local/bin/vmrun list | grep '^/.*vmx$' | \
      while read vm; do
         /usr/local/bin/vmrun suspend "$vm" > /dev/null
      done
;;
(resume,suspend|resume,standby)
;;
esac
--/etc/apm/scripts.d/vmware ここまで--

上記のファイルを保存してから
# chmod +x /etc/apm/scripts.d/vmware
# cd /etc/apm/suspend.d/
# ln -s ../scripts.d/vmware 85vmware
などとしておけば、完了です。

サスペンドとスタンバ時に vmrun コマンドにより
ゲストOS がスタンバイ状態されます。

今回はレジューム時になにもしていませんが、
将来的に vmware resume などというコマンドが実装されれば
入れておくと自動的に起動するようになるかなぁと思います。

vmware の gtk2 インターフェース自体をサスペンド時に
落すようにしておいて(pkill vmware とか) かつ 
vmrun list の出力を一時ファイルなどに
吐くようにしておけば、レジューム時に 
/usr/local/bin/vmware -q -x ゲストマシン.vmx 
とかで行けることはいけそうですが、、
自分が必要じゃないのでそこまでしない感じです。