VirtualBox VMを別のコンピューターに移動する推奨される方法は何ですか?


234

UbuntuマシンでVirtualBox 4.1.xを使用し、いくつかの仮想マシンをセットアップしました。VirtualBoxの仮想マシンを別のコンピューターに移動する方法はいくつかあるため、どの方法が推奨されるのか疑問に思いました。

  1. 「インポート/エクスポートユーティリティ」を使用します。
  2. .vdiおよび.vboxファイルを含む仮想マシンフォルダー全体をコピーします。
  3. 「Virtual Media Manager」を使用してVDIのクローンを作成し、ターゲットマシンでVMを再作成しますが、クローンとして作成したVDIをハードディスクとして使用します。

私は何回か第1の方法を成功裏に使用してきましたが、常に機能していました。問題は、エクスポートおよびインポート後に、ディスクイメージがVDIではなくVMDKに変換されることです。

第二の方法は、おそらく最も簡単ですが、私は単純にファイルをコピーするターゲットマシン上で動作したりしないことはよく分かりません。この方法を検索すると、VirtualBox.xmlファイルを編集して解決する必要のある人がいることがわかりました。

最後に、3番目の方法がありますが、元のVM構成と同様のVMを作成する追加の作業が必要であり、これは望ましくありません。

上記の説明から、私の希望する方法が2番目の方法であることは明らかですが、それが機能するかどうかは専門家のアドバイスが必要です。XMLの編集が邪魔にならないようにします。

VirtualBoxを使用してVMを別のコンピューターに安全に転送する最良の方法は何ですか?


2
ファイルを転送して同じ場所に置くだけです。
ラムハウンド

2
1. A @seyed フェイルセーフ高い成功率/再現性の解決策は、常にではないかもしれない推奨および/または最良の問題と解決策その逆。ただし、推奨されるソリューションについて尋ねるので、リストのオプション(2)(エラーが発生しやすい)が最も速く、したがって推奨されます!オプション(1)および(3)、ほとんどの状況で機能するため、フェイルセーフカテゴリに分類されます。PS:エクスポート後、いくつかの(ほとんど?)構成設定を変更できます(オプション1/3を使用する場合)!... お役に立てれば。
アマル

回答:


164

あなたの研究を行うためによくやった。私は3つのオプションすべてを定期的に使用します。

  1. (「インポート/エクスポートユーティリティ」を使用)。これは、VM全体を単一のファイルに結合し、ほとんど毎回問題なく転送するため、最も簡単です。ただし、私の経験では、エクスポート用のOVAまたはOVFファイルを作成すると、すべてのスナップショットが破棄され、正しく行わないとVMDKファイルが作成される可能性があります。VMを再インポートすると、作成するHDDファイルのタイプ(VDIまたはVMDK)を選択できるはずです。

  2. .vdiおよび.vboxファイルを含む仮想マシンフォルダー全体をコピーします)。これは私の好みのオプションであり、XMLファイルを数回編集する必要がありましたが、何かを台無しにすることは私自身の責任でした。VMをコピーするときに、それに関連付けられているすべてのファイルを取得するようにしてください。私が遭遇した問題は、特定のスナップショットとセカンダリVDIファイルが間違ったディレクトリにあり、適切にコピーされなかったときです。すべてのファイル(およびアクセス許可)をコピーすれば、まったく問題はないはずです。

  3. (「Virtual Media Manager」を使用してVDIのクローンを作成し、ターゲットマシンでVMを再作成しますが、クローンとして作成したVDIをハードディスクとして使用します)。 VMのコピーが2つあるため、これは望ましくありません。VDIファイルのクローン方法によっては、ライセンスの問題、ネットワークの問題などが発生する可能性があります。

要約すると、オプション2をお勧めします。オプション2を移動するときは、必要なすべてのファイルを取得するようにしてください。


返信いただきありがとうございます。他の誰かが他のポイントを持っているかどうかを確認するために、さらに数日待ちます。(+1)
セイドモハマド

誰も追加するものがないように見えます...だから私はこれを答えとしてマークしています。
セイドモハマド

オプション1の追加リファレンスlinkをインポートすると、形式はVDMKになりますが、決定されているようで、変更できません。
simongcc 14

1
@tbenzエクスポート時にVMDKを取得しないようにするにはどうすればよいですか?
ドンラミー

13
完了まで:オプション2を実行する場合は、ターゲットマシンで次の操作を行います:Virtualbox> Machine> Add> [すべてのVMファイルがあるフォルダーに移動]。おそらく、他のすべてのVMが保存されているのと同じフォルダーに新しいVMファイルを配置することをお勧めします。
ドンリー

47

方法2は(VirtualBox 4.0以降で)正常に動作し、XMLの変更は必要ありません。

  1. 仮想マシンを停止します
  2. VirtualBoxを終了します
  3. VMフォルダーを新しい場所にコピーします
  4. VirtualBoxを再起動し、古いVMを削除します。
  5. [マシン]メニューに移動≥古いフォルダーを追加して参照します。

それでおしまい!

ps:OSX 10.10にVirtualBox 4.3.20があります

詳細については、このVirtualBoxフォーラムの投稿を参照してください。


4
信じられないほど、投票されるべきではありません!これは、同じOS内でVMを移動するときの最も簡単な方法です(非常に簡単です!)。2台のVMをドライブCからドライブDに正常に移動しました。私のものはVirtualbox 5.xでWin7 64ビットです
エドウィンイップ

1
これは、実際にはVDIファイルを移動するだけではなく、仮想マシン全体を移動するだけです。
DustWolf

1
@DustWolf正しい、しかしそれがopの問題です。
デビッド

@DustWolfこれはデイビッドが言ったことです。「VMフォルダを新しい場所にコピーします」。私の知る限り、このフォルダには仮想マシン全体が含まれています。何か不足していますか?
ニコス

@RestlessCobraはい、新しいフォルダーにはVM全体が含まれます。
デビッド

17

私の優先オプションは、オプション2も同様です。

  1. .vdiおよび.vboxファイルを含むVMフォルダー全体をコピーします。

ただし、UUIDの不一致が発生する場合があります。これは、あるマシンのVDIディスクイメージを別のマシンにコピーしただけの場合によく発生しますが、完全なディレクトリの直接コピー中にも発生しました。

したがって、これが仮想マシンを移動し、新しいセットアップで起動しようとした後に表示されるメッセージの場合:

ハードディスクを開けませんでした。

UUIDのハードディスクがすでに存在するため、ハードディスクを登録できません。

仮想マシンのディレクトリに移動するだけです。もちろん、実際のパスを変更して、実際のパスに一致させます。

cd /full/path/to/virtualbox/virtualmachine/Sandbox

そして、次のコマンドを実行して、ディスクに新しいUUIDを割り当てます。

VBoxManage internalcommands sethduuid Sandbox.vdi

9

他の誰かがこれに対する答えを探している場合、5台のVirtual Box VMを同じマシンの新しいハードドライブにインストールされた別のWin7に移動しました(基本的に同じPC上のゲストOSから別のゲストOSへの移動)。まったく新しいマシンのドライバーはおそらく変わる可能性があり、移動にマイナスの影響を与える可能性があることを理解していますが、誰かを助けることを期待して以下のプロセスを文書化しました。

  • VMのクローンを作成したり、xmlファイルを変更したりする必要はありませんでした。VBバージョンは、4.3.12r93773というかなり最新のものでした。
  • 既存の/古いVMをそのまま保持するために、新しいフォルダー/共有ドライブにVMの新しいコピーが作成されました。新しいセットアップに満足するまで、冗長性/問題解決のために保持していた古いハードドライブから起動できます。必要に応じて、以前の状態の古いVMにアクセスできます。
  • ドライブ文字は異なります/セットアップによっては必要ない場合があります。

古いWin7ホスト:

  1. すべてのVMの電源がオフになっていることを確認します。

新しいWin7ホスト:

  1. X:\ NewVMs \ VirtualBox VMsという名前の新しいフォルダーを作成します(新しいWin7マシンから許可を確認しますOK)
  2. 古いフォルダーからこのフォルダーにすべてのVMおよび関連フォルダーの内容をコピー/貼り付け(ドラッグしない)(新しいアクセス許可を使用)
  3. VirtualBoxのアンインストール(インストールされている場合)
  4. .virtualboxフォルダーとすべてのコンテンツを削除します(存在する場合)
  5. プログラムファイルまたはレジストリエントリが残っていないことを確認するREBOOT(古いVirtualBoxをアンインストールする場合)。
  6. VirtualBoxのインストール/再インストール(古いホスト/マシンでVMが作成されたVirtualBoxと同じバージョンを使用していることを確認してください(私の場合はバージョン4.3.12r93773))
    重要:(チェックボックスを選択して開いたり、インストールの最後にVirtualBoxを実行します)
  7. 古いWin7ホスト(通常はC:\ Users [username] .VirtualBox)から.virtualboxフォルダーとコンテンツをコピー/貼り付け(ドラッグしないでください)
  8. VirtualBoxを開きます
  9. 新しいデフォルトVM作成フォルダーの設定を、新しく作成されたVirtualBox VMsフォルダーと同じファイルパスに設定します:X:\ NewVMs \ VirtualBox VMs
  10. VMのテストステータス

幸運を。


これは有益な回答ですが、尋ねられた内容に関するものではありません。別の質問は、回答のより適切な場所です。
19:34に確認

@Steven、「...本質的に1つのホスト OSから別のOSへの移行...」?
pythonlarry

2

特別な場合:

  • VMが1 しかない(またはすべてのVMを移動したい)、
  • ホストが同じOSバージョンの同じハードウェアである(または同じOSを同じマシンに再インストールする)

場合あなたがこのケースであり、その後、物事は簡単です:

  1. 両方のホストでVirtualBoxをシャットダウンします。
  2. ソースホストから.config/VirtualBoxVirtualBox VMsフォルダをコピーします。
  3. これらのフォルダーを宛先ホストにコピーします。
  4. 宛先ホストでVirtualBoxを起動します

1

第4の方法

VirtualBOXの場合:

  1. VMの電源をオフにします
  2. 右クリックしてVMを削除します(ファイルを削除しないでください)
  3. [ファイル]> [仮想メディアマネージャー]に移動し、.vdiを削除します
  4. [ファイル]> [設定]> [全般]に移動し、デフォルトのマシンフォルダを新しい場所に設定します
  5. 新しいVMを作成するエキスパートモードを使用して、ハードドライブなしでVMを作成する

エクスプローラーで:

  1. .vdiファイルを見つけてコピーする
  2. 新しいデフォルトのマシンフォルダーに移動します。中にVMフォルダーがあります。
  3. 新しいVMフォルダーに.vdiファイルを貼り付けます

VirtualBOXに戻る:

  1. VMを右クリックして設定を開きます
  2. [ストレージ]> [コントローラー:SATA]に移動し、ハードディスクを追加して、[既存のディスクを選択]をクリックします11.新しいVMフォルダーで.vdiファイルを選択します

注:方法2でVirtualBOXのインストールが中断される場合は、C:\ Users \ .VirtualBoxに移動してVirtualBox.xmlを削除し、VirtualBox.xml-prevの名前をVirtualBox.xmlに変更します


0

方法2も使用して仮想マシンを移動しましたが、XMLファイルを変更する必要はありませんでしたが、USBとファイル共有でいくつかエラーが発生しました。以下はプロセスと一緒に修正する方法です。

  1. 古いPCから新しいPCに仮想マシンをコピーします。仮想マシンのファイルは、Oracle Virtual Machine自体とは異なります。これらのファイルは通常c:\ users \\ VirtualBox VMs \にあります。VirtualBox VMsの一部全体を取り出して、新しいPCの同様の場所にコピーしました。これにより、元のPCにあったすべての仮想マシンがコピーされます。

  2. 次に、新しいPCで仮想ボックスを実行し、メニュー>マシン>追加に移動して、コピーしたフォルダーから.vboxファイルを選択します。それでおしまい。

  3. 新しいPCで仮想マシンを実行すると、起動時にエラーが発生しました。

ここに画像の説明を入力してください

  1. 同じことが元のコンピューターで機能したため、USBコントローラーが機能しなかった理由がわかりません。VirtualBox Extension Packをインストールしました

  2. インストールのダウンロードは実行可能ファイルではなかったため、このインストールは少し奇妙でした。Oracle_VM_VirtualBox_Extension_Pack-5.1.4-110228.vbox-extpackをクリックし、「インストールされているプログラムのリストからプログラムを選択する」を選択し、Oracel virtualboxを選択して拡張機能をインストールしました。これで問題は修正されましたが、USBを無効にすることもできます。

  3. 元のVMに共有フォルダーがある場合、それらは異なる場合があり、エラーが発生します。[設定] >> [共有フォルダ]でそれらを確認し、壊れているものを削除します。エラーメッセージは次のようになります

この

それで全部です。


-1

zar、まず最初に...保存状態のマシンを絶対に移動しないでください。移動する前に、状態を保存するだけでなく、ゲストをシャットダウンする必要があります。

また、両方のホストで同じバージョンのVirtualBOXを使用しますが、VirtualBOXバージョンだけでなく、拡張パックバージョンも使用するか、少なくとも新しいホストのバージョンを高くしてください。

そして最後に、私は難しい方法を学びました。マシンを移動する前にVirtualBOXのSHAREDフォルダー構成を削除し、正しい方法で再作成します...ホストが異なるOS(Windows / Linuxホスト)の場合は非常に重要です。

副次的な注意事項として...私は常に、OSとデータVDIに不変のハードディスクVDIファイルを常に使用します(そのため、同じDATA VDIをゲスト以上に使用できます)。

その最後の部分は、不変のVDIファイルを再利用すると事態が少し難しくなり、VirtualBOXには大きなバグがあります。

動作中のバグを確認するには:

  • 1つの不変VDIを作成します(pagefile.sysで使用するようなもの)
  • VirtualBOXで2つまたは3つのVMを作成する
  • それらのいずれかをリストの一番上に移動します(あなたのいずれかが破損しないようにするため)
  • 作成した各マシンの.vboxファイルをバックアップします(バグ発生後の比較用)
  • その不変VDIを複数のそのマシンに接続します(リストの一番上にあるマシンを除く)。
  • リストの一番上にあるマシンの.vboxを確認してください

そのマシンは編集されており、他のマシンの不変VDIへの参照を持っています。

したがって、バグは次のとおりです。あるマシンを編集して、別のマシンが使用する不変VDIを追加すると、リストの一番上のマシンに影響します。

なぜ地獄ですべてのWindowsマシンで同じ4GiB VDIを再利用するのですか?簡単です、それは不変であるため、pagefile.sysを置くFAT32パーティションを持つMBRディスクです。すべての仮想マシンは、変更を保存するスナップショットフォルダーにファイルを作成します。ホストディスクに保存された各ゲストに4GiBは必要ありません、たった1つだけです...そうすれば、自分で開発したアプリをテストするための20以上の異なるウィンドウがあり、(XP、Vista 、7、8、8.1、10)*(32Bits、64Bits)*(最初のインストール時、各ServicePack後、Windows全体の更新後)、多くのゲストを取得します...仮想RAM(pagefile.sys)の不変の4GiB VDIを共有しています。

さらに、BUGをさらに先に進めて、いずれかのマシンを別のVirtualBOXホストに移動しようとすると(これらはマシン上に構成があり、ゲストがまだインストールされていない仮想マシンであることに注意してください)、VirtualBoxは一部のVDIが欠落しているため、それらを追加します(FALSEおよびTRUEであり、そのような最初のマシンは、適切なマシンにビーティングされたVDIへの参照を保持しています)。

次に、それらすべての.VBOXファイルを前のBackUpと比較します... 1つが間違って変更されていることに注意してください......はい、それはリストの一番上にあります。

さて、このバグは数年前にVirtualBOXに通知されましたが、彼らはまだそれを修正することはできません...そして、それは多くの問題を引き起こしています。

さらに、仮想マシンの一番上を下の位置に移動すると、VirtualBoxを閉じて再起動します...一部のマシンが破損していて起動できないことを示します...はい、リストの最初のマシン多くのトラブルを避けたい場合は、別の形式で処理する必要があります。

それは発見するのに何日もかかった本当に悪いBUGです(数年前)私はそれを難し​​い方法で学びます!

私が呼んでいたマシンを持つことでそれを克服しました:

  • Common Inmutable Disks

空の構成と1つのVDIのみがあります。はい、あなたは正しいと思います。残りのすべての仮想マシンで共有される不変のVDI iです。

さて、.VBOXファイルを開くと、セクション内に多くの行が表示され<MediaRegistry> <HardDisks>ます。その不変VDIを使用するマシンごとに1 行です...単なるサンプルとして(プライベートデータを削除します):

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="...UUID..." location="D:\VDIs\_Virtual_Memory_.vdi" format="VDI" type="Immutable">
      <HardDisk uuid="{...UUID...}" location="Snapshots\{...UUID...}.vdi" format="VDI" autoReset="true"/>
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows001 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows002 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows003 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows004 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows005 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows006 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows007 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows008 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows009 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows010 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows011 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows012 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows013 ... // This belongs to other virtual Machine
      ... and so on ...  // This belongs to other virtual Machine
    </HardDisk>
  </HardDisks>
</MediaRegistry>

かなりバグ、何年も解決されていません。

そのようなマシンを移動するには... .VBOXファイルを手動で編集し、.VBOXを追加する前に、最初のマシン(リストの一番上にあるマシン)の新しいホストにすべてのそのようなディスク参照を配置する必要がありますファイルをリストに追加するため、それらを追加する際に、VirtualBOXは欠落しているVDI(大きなバグにより欠落している)への参照を持ちます。

これは、別のマシンVirtualBOXで使用されているVDIを接続するたびに、2つのマシン.VBOXファイル(使用しているマシンに属するファイル)とリストの最初のファイルを更新するためです。

リストに最初にあるものにそのような一般的なVDIが接続されていない場合、何が起こるか完全にはわかりません...

そのため、別のホストへの移行は、.VBOXファイルの内部構造の非常に悪い実装と、VirtualBOXがそれらを編集する際の非常に大きなバグのために思われるものよりもはるかに複雑です。

失敗:

  • 内部構造(XML)はHOSTに依存します(WindowsまたはLinux)
  • あるマシンを編集すると、編集中のマシンだけでなく、別のマシンを変更できます
  • ... もっと何か ?

さらに必要な...これを行うマシンを常に移行します(問題はありませんでした)

  1. すべてのマシンのリスト(順序、グループ化など)に注意してください
  2. リストの最初のもの(すべての構成)に注意してください
  3. 別のホストに移動したいマシンのすべてのプロパティに注意してください
  4. .vboxファイルを.txtファイルとしてコピーします(リストの一番上にあるもの+移行するすべてのマシン)
  5. 新しいホストのVirtualBox内ですべてのマシンを再作成します(そして、リストの一番上に特別なマシンがあります)。
  6. 新しいホストでVirtualBoxを閉じます
  7. 古い.txtを新しい.vboxファイルと比較し、コピー&ペーストだけでなく、人間の方法で.txtから.vboxにいくつかの部分をコピーします。
  8. VirtualBoxを開き、すべてのVDIを正しい順序で接続します
  9. 新しいホストでVirtualBoxを再度閉じます
  10. 古い.txtを新しい.vboxファイルと比較し、コピー&貼り付けだけでなく、人間の方法で.txtから.vboxの一部を「修正」します

残りすべて(スナップショットフォルダーとVDIファイル)は、通常の方法でそれらをコピーします(ファイルシステムのコピーと貼り付け)。

ハードな手動作業はすべてBig BUG VirtualBoxによって引き起こされます。複数のマシンで使用される不変のVDIを接続すると、変更されていないマシンを編集/変更します。共有フォルダのパスを修正するなど)。


-2

マシンを含むフォルダーを宛先にコピーしてから、メニューから「マシン」--->「追加」と選択し、vdiファイルではなくvboxファイルを選択します。私にとって、これは完璧に行きました。私が幸運だったのか、それともこのように動作するはずなのかわかりません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.