4.7 GBの仮想ハードディスク(.vmdk)を持つ仮想マシンを作成しました。 .ovaバージョン1.0にエクスポートし、1.7 GBのファイルを取得しました。このファイルを7Zipを使用してさらに200 MB圧縮できました。したがって、OVAを含む7Zipアーカイブは1.5 GBです。
7vmファイルを直接圧縮すると、ファイルサイズは1.1 GBになります。これは理想的なサイズであり、誰かがovaファイルの圧縮率を上げる方法、またはovaファイルを手動で作成する方法を知っているのではないかと思います。私は仮想ボックスを使用していますが、VMwareもあります。これが7Zipで実行しているコマンドです。
7z a -t7z vm.7z -m0=lzma2 -mx=9 -aoa vm.ova
1.1 GBファイルを取得するために、vmフォルダー内でvm.ovaなしで同じコマンドを実行しています。私の目標は、最小ファイルサイズであり、vmwareとvirtualboxの両方で簡単に使用できること、qemu、hyper-vにインポートすること、そしてvshereはプラスです。
.ova
ファイルは、仕様によると、単なるtarファイルです。 ovaファイル内には、仮想ディスクを保持する.vmdk
ファイルと、構成を保持する.ovf
ファイルがあります。 OVFは、クロスプラットフォームで機能する標準です。
Ovaファイルを作成した後、tarを使用してovfとvmdkを抽出します
tar xvf appliance.ova
Ovaファイルを削除するか、必要に応じて他の場所に移動します。
この時点でvmdkファイルはすでに圧縮されているため、これらの2つのファイルで7Zipを直接実行しても、圧縮率はそれほど低下しません。
.vmdkファイルを削除し、アプライアンスを作成する前の元の非圧縮vmdkファイルを取得します。 .ovf
ファイル(xml
)をチェックして、ファイル名が一致することを確認します。このように始まるxml要素を見つけます
<File ovf:href="diskname.vmdk" ovf:id="file1" />
この場合、非圧縮のvmdkファイルはdiskname.vmdkに名前を付ける(または必要に応じて名前を変更する)必要があります。
2つのファイル(.ovf
および.vmdk
)を含むディレクトリ内で、この7Zipコマンドを実行します。
7z a -t7z appliance.7z -m0=lzma2 -mx=9 -aoa
.7z
ファイルを、私が達成した最小のファイルサイズで配布できるようになりました。
アプライアンスを実行するには、ファイルを抽出し、.ovf
ファイルをVirtualBox、VMware、またはアプライアンスをインポートできるその他の仮想化ソリューションにインポートします。 2つのファイルが同じディレクトリにある限り、インポートして正常に実行できます。
VirtualBoxをゼロにしてから再エクスポートすると、ovaのディスク領域が劇的に減少することがわかりました。 8.5 GB-> 3 GBから送信されました。
お役に立てば幸いです。