web-dev-qa-db-ja.com

VirtualBoxでスナップショットをマージする最も早い方法は?

私はそれから取られたスナップショットのかなりの数でvdiを持っています - 例えば50または70のスナップショット。現在の状態を1つのプレーンなvdiにしたい。これらのスナップショットはディスク容量を使い過ぎるため、スナップショットとしては必要ありません。

電話すれば知っている

VBoxManage clonehd thedisk.vdi thedisk-full.vdi
(50-70 times) VBoxManage clonehd {uuid-of-snapshot}.vdi thedisk-full.vdi --existing

欲しいものが手に入ります。しかし、非常に長い時間がかかります(私のハードウェアと16Gの初期ディスクサイズを考えると5時間以上)。

そしてもちろん、私はVBoxManage snapshot deleteを試してみました、そしてそれは奇妙です:停止したマシンでは動作せず、実行中のマシンでは失敗し、一度失敗するとそれ以降のすべての呼び出しに失敗します。

いくつかのスナップショットからプレーンなvdiを作成する方法はありますか - 早くなりますか?

$ VBoxManage --version
3.2.14r75509

ServerFault で聞きましたが、この場所の方がこの質問に適していると判断しました)

45
Andrey Regentov

解決策を見つけました。ここで書いたコマンドの最後のステップと同じくらい簡単です。すなわち.

VBoxManage clonehd fullpath/{uuid-of-last-snapshot}.vdi thedisk-full.vdi

そのため、チェーンのすべてのスナップショットではなく、最後のスナップショットだけをクローン化する必要があります。そしてそれは数千パーセント速いです。

UUIDはVBoxManage list hdds | grep VmName | tailから見つけることができます

GUI(Windowsの場合)で、VMを選択し、右上からスナップショットを選択し、目的のスナップショットを右クリックし、クローンを選択します。 。をクリックし、ダイアログでFull Cloneを選択します。

49
Andrey Regentov

これは 'Clone'コマンドを使用してすべてのスナップショットを単一のVDIファイルを含む新しいVMにマージして圧縮する手法(VirtualBox 4.3.4でテスト済み)です。

  1. クローンしたVMに現在の名前を再利用できるようにVMの名前を変更します([全般]設定の[基本]タブからVM名を変更できます)。 ).

  2. VMを右クリックして、[クローン...]コマンドを実行します。

    • 名前をVMの元の名前に設定します。
    • 残りのデフォルト、すなわちクローンタイプを受け入れます:「フルクローン」。スナップショット:「現在のマシンの状態」.
  3. 古いVMを削除します(VMを右クリックして[削除...]コマンドを実行します)。

21
Stuart Rackham

exportOVF にエクスポートしてから、 import に戻すことができます。

ここで説明したように

OVFは、仮想マシン用に作成されたスナップショットを記述できません。その結果、スナップショットのある仮想マシンをエクスポートすると、マシンの現在の状態のみがエクスポートされ、エクスポート内のディスクイメージは仮想マシンの現在の状態と同じ「平坦化」状態になります。

その結果、他のスナップショットなしで現在の状態のクローンVMができます。

3
StreakyCobra

その操作は、同じ物理ディスク内の非常に大きなファイルの読み書きを意味します。あなたがそれをスピードアップすることができる唯一の方法はあなたのVBoxManageコマンドでパスを変更することでそれらを異なるディスクに置くことです。マシンにディスクが1つしかない場合は、ネットワーク共有を介して外付けUSBドライブまたは別のマシンのディスクを使用することができます(ネットワークの速度によって異なります)。

0
golimar