VMWare: ゲストOS の自動起動 自動終了 Suspend Resume 方法(1)
Tagged:

最近、プロジェクトで開発環境を VMWare Server 上に構築して利用しています。 一旦イメージを作成すれば面倒なツール・ライブラリ群のインストールを行う必要がなく、 開発環境構築コストが激減しました。

有効利用しているのですが、困った問題が発生しました。 それは社内のセキュリティ上 Windows Update を自動にしてあり、場合によっては自動で再起動されてしまうため、 こつこつ育ててきた screen 上の emacs のバッファが水の泡に(泣)。

もう仕事はしたくない。。。

と言う訳にはいかないので VMWare Server を幸せに利用する方法を調査しました。 最終目標は「ホストOS起動/終了時にゲストOSをSuspend/Resumeする」です。

まず「任意のタイミングでゲストOSを起動/終了/Suspend/Resumeできるか」を調査し、 次に「それをホストOS起動/終了のタイミングで実施できるか」を調査しました。

その結果、「vmware-cmd」を使い、「Windows の グループ・ポリシーに設定する」ことで、一応私がやりたいことができました。 というわけで、ラフですが調査報告です。

VMWare Server Console で自動起動/終了

VMWare Server Console で 自動起動/自動終了 の設定を行う事が可能です。ただしこの設定は ホストOSの起動・終了のタイミングでゲストOS の 起動及び終了の設定のみ可能です。 Suspend や Resume ができないので、今回の目的からは使用しませんが一応報告です。

   1. Virtual Machine Setting を開く
   2. [Options]タブ → Startup/Shutdown を選択
   3. Local system account もしくは this user を選択する
   4. Startup / Shutdown options を選択する。

     On host startup:
      Power on virtual machine
     On host shutdown:
      Shutdown guest operating system

Virtual Machine Setting 画面
vmware-cmd で Suspend/Resume

VMWare Server をインストールすると "vmware-cmd" という VMWare の制御用プログラムが、デフォルトであれば "c:\Program Files\VMware\VMware VmPerl Scripting API\vmware-cmd.bat" にインストールされます。 このコマンドを利用して Suspend 及び Resume が可能です。

Suspend 及び Resume はホストOSを再起動した場合でも作業状態を保存してくれるので screen での作業や、こつこつ育てた emacs のバッファも保存可能です。

   vmware-cmd を以下のように実行するだけです。

   Susupend
    vmware-cmd.bat <cfg> suspend 

   Resume
    vmware-cmd.bat <cfg> start

   <cfg> は VMWare の構成ファイル(.vmx) を指定します。

   e.g.)
    vmware-cmd.bat "c:\Program Files\VMware\linux.vmx" suspend
    vmware-cmd.bat "c:\Program Files\VMware\linux.vmx" start

「Windows グループ・ポリシー」を利用した設定については(2)に続く