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


78

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


1
AskUbuntu.com上のこの答えはおそらく、Linuxホスト・マシン上で動作している環境の多くに適用されます。askubuntu.com/a/32506/31592
blong

回答:


64

はいといいえ。

あなたはできるとディスクイメージの中にVDIを変換VBoxManageのツール。このコマンドは、登録済みの仮想ディスクイメージを別のイメージファイルに複製します。仮想ディスクを別の形式に変換する場合、これは使用する公式のVirtualBoxツールです[*]。

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

VBoxManage internalcommands converttoraw file.vdi output.img

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

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


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

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

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


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

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

VirtualBoxフォーラムの「VDIのすべて」チュートリアルも参照してください。


3
VDIのサイズはどうですか?それは問題ですか?VDIサイズが20GBであり、実際のHDDサイズが200GBであるとしましょう...どうなりますか?
プブンナ

最初のメソッド「clonehd」は非常に遅いようです。しかし、2番目はおやつになりました。
マットH

1
また、Windows OSを起動できるようにした場合、ほとんどの場合、再起動する必要があることに注意してください。
キムマックス

sysprep /generalize最初に仮想インストールを行った場合はどうなりますか?これは確かに(この場合、または物理ハードウェア)新しいハードウェアにインストールするインストールの準備であろう
Robula

1
@Pwnnaハードディスクのimg(パーティションだけでなく、パーティションを含むパーティションマップ全体)をコピーしています。私は過去にこれをやったことがあり、この答えが何を説明するのか、最後に未使用/パーティション分割されていないスペースを見たことを覚えています:serverfault.com/questions/268889/…–
sudo

21

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

まず、クイックキホーテが前述したように、vdiファイルを生のイメージファイルに変換します。

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

次に、画像のループデバイスを設定します。

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

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

# 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

Windowsでそれは可能ですか?
エーサン

13

ホストおよびゲストシステムがLinuxの場合、答えは「はい」です。パッケージqemuとで完了しましたTKLPatch。VDIまたはVMDKファイルの両方を使用できます。

続きを読む:


3
「..ゲストがlinuxである限り」という警告とともに+1 「確定。そして、彼らの(あなたの?)ソリューションは、いくつかのTurnKey Linuxツールに依存しています。しかし、手順は健全に見えます。(スーパーユーザーへようこそ!)
クワックキホーテ

5

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

Windows 7ホストでWindows 8.1仮想マシンを使用してうまくいったのは次のとおりです。

  1. VirtualBoxでWindows 8.1マシンを作成し、インストールと使用は通常のVMの場合と同じです。
  2. バーチャルボックス.vdiハードディスクは、WindowsのVHDに変換してVBoxManage clonehd source.vdi target.vhd --format vhd
  3. ホストのWindowsマシンにVHDをドライブとしてマウントします(コンピューターの管理のディスクマネージャーに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ホストにできるようにします。

1
@sumから:BootICEを試して6番目のステップを置き換え、正しいMBRをインストールするようにしてください。
fixer1234

ありがとう。BootICEはWindows 8.1のインストールよりも信頼性が高いですか?ステップ6で説明したように、MBRが混乱する可能性はありますか?
1月H

1
これは、新しいユーザーによる回答として投稿されました(superuser.com/users/523958/sumを信じています)。回答として適格ではなかったので削除するつもりだったので、投稿をコピーして、コメントとして保存して、失われないようにしました。私はそれに個人的に精通していません。
fixer1234

3

このプロセスは、Linuxで2行のコマンドを使用して非常に高速に実行します。

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

または

#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


この場合の.imgは起動可能でしょうか?
ポンプハウス

私は違うと思います。私は0-repユーザーから同様の答えを見ましたが、それは簡単な方法のように見えましたが、役に立たなかったことが判明しました。
-T.Todua

0

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

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