web-dev-qa-db-ja.com

仮想マシンを物理環境に変換することは可能ですか?

.vdiファイルをcdまたはdvdに書き込むことができ、インストーラのようにすることができる.isoに変換することは可能です。それとも、仮想マシンを物理環境に変換することは可能ですか?

76
Wern Ancheta

はいといいえ。

VBoxManageツールを使用すると、canVDIをディスクイメージに変換できます。このコマンド は、登録されている仮想ディスクイメージ を別のイメージファイルに複製します。仮想ディスクを別のフォーマットに変換したい場合は、これが[*]を使用するための公式のVirtualBoxツールです。

VBoxManage clonehd file.vdi output.img --format RAW
  • 動的VDIを使用していて、VirtualBoxの古いバージョンを使用している場合は、clonehdが正しく動作しない可能性があります。 VBoxManageのinternalcommandsツールにはconverttorawが含まれています。これは動的VDIをrawディスクイメージに変換できます( source )[+]。
VBoxManage internalcommands converttoraw file.vdi output.img

しかし...その出力IMGファイルはISOイメージではなく、インストールされているOSは起動可能なCD/DVDから実行するように設定されません。 IMGをハードドライブに「書き込む」(書き込む)ことができます。そうすると、(仮想マシンではなく)ベアハードウェアで起動する可能性があります。しかし、そのIMGにインストールされているOSはVirtualBoxが提供する仮想ハードウェアを見ることを期待しており、期待していない実際のハードウェアで起動しているためです。

Windowsのバージョンによってはこの状況をうまく処理できません。一部のLinuxディストリビューションでは可能です。このようにOSをある環境から別の環境に移行するように(事前または事後に)OSを設定することは可能ですが、特定の手順は移行されるOSに完全に依存します。


Windowsでは、プログラムへのフルパスを指定する必要があります。

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

短いバージョンを使用するには、PATHにC:\ Program Files\Sun\VirtualBoxを追加します。


[*]" - format RAW"オプションを標準のディスクイメージに変換すると仮定します。物理ハードドライブ上のddコマンド。しかし、率直に言って、私はこれを裏付けるいかなる文書も見つけていないので、これは正しくないかもしれないことに注意してください。

[+]VirtualBox 3.1.2で両方のコマンドをテストしたところです。両方の出力ファイルはmd5sumに従って同一ですが、出力ファイルを完全にはテストしていません。

VirtualBoxフォーラムの "すべてのVDIについて"チュートリアル もご覧ください。

63
quack quixote

Vdiファイルにパーティションが含まれていて、そのうちの1つだけを抽出したい場合は、次のようにします。

まず、quack quixoteが前述したように、vdiファイルを生のイメージファイルに変換します。

# VBoxManage clonehd file.vdi file.raw --format RAW

それから画像のループデバイスを設定します。

# loopdev=$(losetup --show -r -f file.raw)

生ファイルの各パーティションにデバイスを作成するには、kpartxを使用します。

# apt-get install kpartx
# kpartx -a $loopdev

私たちが今持っているデバイスを見てください。この例では、rawイメージにはパーティションが1つしかないため、デバイスは1つだけです。

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

マウントして、すべてが正しく動作することを確認します。

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

パーティションの内容を別のターゲットパーティションにコピーするには、ddを使用します。

# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M

完了したら、デバイスのマッピングをもう一度削除します。

# kpartx -d file.raw
21
dmoebius

あなたのホストとゲストシステムがLinuxの場合、答えは明確です。それはqemuTKLPatchパッケージで行われます。 VDIファイルとVMDKファイルの両方を使用できます。

続きを読む:

12
Alon Swartz

私は 受け入れられた答え からVBoxManage clonehd file.vdi output.img --format RAWを試しましたが、あまり成功しませんでした。

Windows 7ホスト上のWindows 8.1仮想マシンで私にとってうまくいったのはこれです:

  1. VirtualBoxでWindows 8.1マシンを作成し、インストールして使用するのは通常のVMの場合と同じです。
  2. Virtual Box .vdiハードディスクをVBoxManage clonehd source.vdi target.vhd --format vhd付きでWindows VHD に変換します
  3. VHDをドライブとしてホストWindowsマシン にマウントします(VHDは、コンピュータの管理のディスクマネージャにマウントできます)。
  4. VHD(ドライブとしてマウント)を別の新しいハードディスク(私の場合はUSB接続のラップトップHD)にクローンする DriveImage XML または同様のディスククローンツール。これで、基本的に仮想ハードディスク.vdiをベアメタルにクローンしました。
  5. 新しいハードディスクをマシンに取り付けます。 (私の場合はノートパソコンのHDDを交換します)
  6. Windows 8.1インストールUSB/CDを挿入し、そこから起動して、詳細オプションと自動修復を選択します。自動修復により、新しいハードディスクが起動可能になります。
  7. クローンを作成したWindows 8.1を使用して新しいハードディスクから起動し、Windows Updateを実行します。これにより、VirtualBoxでWindowsを実行したときに知られていなかった、コンピュータのハードウェア用のドライバがダウンロードされます。不足しているドライバがある場合は手動でインストールする必要があります。
  8. VirtualBox Guest Additionsをアンインストールします。オプションでVirtualBoxをインストールして、ベアメタルのWindows 8.1がVirtualBoxホストになるようにします。
5
Jan H

私はこのプロセスを非常に速く、Linuxではたった2行のコマンドで実行します。

#VBoxManage内部コマンドconverttoraw your_disk_virtual.vmdk your_disk_virtual.img

OR

#VBoxManage内部コマンドconverttoraw your_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img your_disk_virtual.iso

私の全記事: http://www.previsioni.com.br/jailsonjan/?p=389

3
JailsonJan

次のコマンドを使って変換します。

VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK

これが出力です。

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c
0
Anupam