アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【VMwareWindows
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
POSTED BY
2023-03-24

Windows内の仮想マシンは起動時自動起動、終了時自動保存、また起動時自動再開させたい。イメージとしては以下。

Windows起動→仮想マシン自動起動→Windows終了→仮想マシン自動保存(サスペンド)→Windows起動→仮想マシン自動再開

このようにすることで、Windows終了時に毎回仮想マシンシャットダウンして時間を取られることもないし、自動再開でスムーズに再開できる。仮想マシンの起動も再開もstartvmで自動判別してくれる。

1、仮想マシン起動バッチファイル作成とスタートアップ登録

仮想マシン名がubuntu-21.10とすると、以下のようなバッチファイルをたとえばstartvm.batなどとし作成する。

start "" /b "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "ubuntu-21.10"

コマンドプロンプトを開き、まずこのバッチファイルstartvm.batを単独起動し、正常にvmが起動するかを確認しておく。

大丈夫なら、スタートアップフォルダにショートカットを置く。ファイルを右クリックし「ショートカットの作成」をする。

エクスプローラを開いてファイルパスバーに「shell:startup」と打って、スタートアップフォルダを開く。

そこにこのstartvm.batのショートカットをコピーして登録する。

2、Windows終了時に仮想マシンを自動サスペンドする登録

コマンドプロンプトを開き、まず現在のCloseActionの状態を確認する。

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" getextradata "ubuntu-21.10" GUI/DefaultCloseAction
No value set!

まだ何も登録されていないので、サスペンド(状態保存)を行うアクション「SaveState」を登録する。

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "ubuntu-21.10" GUI/DefaultCloseAction SaveState

登録されたことを確認

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" getextradata "ubuntu-21.10" GUI/DefaultCloseAction
Value: SaveState

なお、登録を取り消す(削除する)には、Valueをカラ(指定しない)でsetextradataする。

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "ubuntu-21.10" GUI/DefaultCloseAction

3、確認

ではWindowsを再起動してみる。自動サスペンドの処理があるので、タスクの完了を待っていますなどの表示が出るので待つ。強制的に再起動してはダメ。

Windowsが起動すると、さきのスタートアップでstartvm.batが走って、VMのコンソール画面が自動で立ち上がるはずだ。ウインドウバーが[保存]→[復元中...]となり画面はRestoreing Virtual Machine...となって、終了した時の状態が復元される。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】