web-dev-qa-db-ja.com

配布用の.OVAファイル圧縮

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はプラスです。

3
user2353007

.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つのファイルが同じディレクトリにある限り、インポートして正常に実行できます。

4
user2353007

VirtualBoxをゼロにしてから再エクスポートすると、ovaのディスク領域が劇的に減少することがわかりました。 8.5 GB-> 3 GBから送信されました。

  1. これらの手順のステップ2を実行した( https://www.howtogeek.com/312883/how-to-shrink-a-virtualbox-virtual-machine-and-free-up-disk-space/ =)
  2. VirtualBox GUIから新しいOVAをエクスポートしました。 (MacBookで5.1.26 r117224(Qt5.6.2)を使用しています)。

お役に立てば幸いです。

3
Bill Noto