【メモ】VirtualBoxアプライアンスのエクスポートをコマンドで行う

VirtualBoxのアプライアンスエクスポートをコマンドで行う処理をまとめておきます。
これはGUIから行うアプライアンスのエクスポート

cmd.exeを起動します。

まず、pathを通しておきます。VBoxManage.exeは同ディレクトリ上のdllを読み込むので、実行時のカレントディレクトリが同一か、もしくはpathが通ってないとエラーになります。

cmd.exe
Microsoft Windows [Version 10.0.10576]
(c) 2016 Microsoft Corporation. All rights reserved.

C:WINDOWSsystem32>
C:WINDOWSsystem32>set VBOX_HOME="C:Program FilesOracleVirtualBox"
C:WINDOWSsystem32>set path=%PATH%;%VBOX_HOME%

基本形

VBBOXManage.exe のexportオプションを使います。

VBOXManage export (仮想マシン名) -o (ファイル名).ova

仮想マシン名とはVirtualBoxマネージャで表示される仮想マシン名そのものです。

ファイル名は任意です。(スペースが入る場合は””ダブルクオーテーションで囲みます。)
拡張子をovaにした場合は、仮想ハードディスクとマニフェストファイルが内装された1個のファイル。ovfにした場合は、仮想ハードディスクとマニフェストファイルが分離されて出力されます。

詳しくはココ↓
https://www.virtualbox.org/manual/ch08.html

C:>VBOXManage export Windows7 -o Windows7.ovf

応用編1

基本形では-oスイッチのファイル名で指定されたファイルが、カレントディレクトリに出力されます。カレントのドライブ容量に余裕があればよいのですが、空き容量が少ないときなどは、別ドライブなどに出力したいものです。
CDコマンドで、カレントの位置をかえてやります。コマンドプロンプトはMS-DOSを継承しているので、ドライブ番号の変更は、ドライブ番号コロンでリターン(EドライブならE:でリターン)です。以下のディレクトリ位置の変更はCDコマンドになります。

例 (出力ディレクトリをドライブE:のVMBackupにしたい場合
C:>E:
E:>cd
E:>VBOXManage export Windows7 -o VMBackupWindows7.ova

応用編2

先のやり方では環境が変わるたびに、ドライブ番号が変わる可能性がありその扱いが煩わしいので、ルートディレクトリすなわちC:に仮のマウントポイントを生成しそこにターゲットのシンボリックリンクを張るやり方を考えます。

C:
└─mnt <DIR>
└─VMBackup <SYMLINKD> (E:VMBackupへのSYMリンク)
| |
== |
| |
E: |
└─VMBackup <DIR> -----+

下準備
C:>md mnt
C:>cd mnt
C:mnt>mklink /d .VMBackup E:VMBackup
.VM <<===>> E:VM のシンボリック リンクが作成されました
C:mnt>cd
C:>
実行

C:>VBOXManage export Windows7 -o mntVMBackupWindows7.ova
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully exported 1 machine(s).

実行部をバッチファイルにしておけば、再利用が可能となります。
環境を移行してもバッチごと持ってくのみです。初回のみ、先の下準備で初期設定し。以降はバッチを開くのみです。

注意! 出力ディレクトリは予め生成しておく必要があります。(なき場合は、エラーで終了します。)
以下は例です。C:と環境変数のHOMEDRIVE、結果同じ。(WindowsディレクトリがDドライブなら%HOMEDRIVE%はD:なので、正確には違います。)

C:を使う

hoge.bat  (仮想マシン名:Windows7, 出力ファイル名:Windows7.ova

set VBOX_HOME="C:Program FilesOracleVirtualBox"
set path=%PATH%;%VBOX_HOME%
C:
cd
del .mntVMBackupWindows7.ova /f /q
VBOXManage export Windows7 -o mntVMBackupWindows7.ova

初期設定例  (E:VMBackup 以下にエクスポートする場合 

C:>E:
E:>cd
E:>md VMBackup
E:>C:
C:>cd
C:>md mnt
C:>cd mnt
C:mnt>mklink /d .VMBackup E:VMBackup
HOMEDRIVEを使う

hoge.bat (仮想マシン名:Windows7, 出力ファイル名:Windows7.ova

set VBOX_HOME="C:Program FilesOracleVirtualBox"
set path=%PATH%;%VBOX_HOME%
%HOMEDRIVE%
cd
del .mntVMBackupWindows7.ova /f /q
VBOXManage export Windows7 -o mntVMBackupWindows7.ova

初期設定例  (E:VMBackup 以下にエクスポートする場合 

C:>E:
E:>cd
E:>md VMBackup
E:>%HOMEDRIVE%
C:>cd
C:>md mnt
C:>cd mnt
C:mnt>mklink /d .VMBackup E:VMBackup

以上、VirtualBoxアプライアンスのエクスポートをコマンドで行う でした。