Apakah mungkin untuk mengubah mesin virtual ke lingkungan fisik?

78

Apakah mungkin untuk mengkonversi file .vdi menjadi .iso yang dapat dibakar ke cd atau dvd dan membuatnya seperti installer. Atau mungkinkah mengubah mesin virtual ke lingkungan fisik?

Wern Ancheta
sumber
1
Jawaban di AskUbuntu.com ini mungkin berlaku untuk banyak lingkungan yang berjalan di mesin host Linux: askubuntu.com/a/32506/31592
blong

Jawaban:

64

Iya dan tidak.

Anda bisa mengonversi VDI menjadi gambar disk dengan alat VBoxManage . Perintah ini mengkloning citra disk virtual terdaftar ke file gambar lain. Jika Anda ingin mengonversi cakram virtual Anda ke format lain, ini adalah alat VirtualBox resmi untuk menggunakan [*].

VBoxManage clonehd file.vdi output.img --format RAW
  • Jika Anda menggunakan VDI dinamis, dan Anda memiliki versi VirtualBox yang lebih lama, clonehd mungkin tidak beroperasi dengan benar. Alat perintah internal VBoxManage termasuk converttoraw , yang dapat mengubah VDI dinamis menjadi gambar disk mentah ( sumber ) [+].

VBoxManage internalcommands converttoraw file.vdi output.img

Tapi ... file IMG keluaran itu bukan gambar ISO, dan OS yang diinstal tidak akan dikonfigurasi untuk dijalankan dari CD / DVD bootable. Anda dapat "membakar" (menulis) IMG ke dalam hard drive, dan mungkin boot pada perangkat keras (mis. Tidak di mesin virtual). Tetapi mungkin tidak, karena OS yang diinstal pada IMG tersebut mengharapkan untuk melihat perangkat keras virtual yang disediakan oleh VirtualBox, dan Anda mem-boot-nya pada perangkat keras nyata yang tidak diharapkan.

Beberapa versi Windows tidak menangani situasi ini dengan baik; beberapa distribusi Linux lakukan. Kadang-kadang dimungkinkan untuk mengkonfigurasi OS (sebelumnya atau sesudahnya) untuk memigrasikannya dari satu lingkungan ke yang lain seperti ini, tetapi langkah-langkah spesifik sangat bergantung pada OS yang dimigrasi.


Di Windows, Anda mungkin perlu menentukan path lengkap ke program:

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

Tambahkan C: \ Program Files \ Sun \ VirtualBox ke PATH Anda untuk menggunakan versi pendek.


[*] Saya mengasumsikan opsi "--format RAW" akan dikonversi ke disk image standar, seolah-olah Anda akan menggunakan perintah dd pada harddisk fisik. Tapi terus terang, saya belum menemukan dokumentasi yang mendukung ini, jadi ketahuilah ini mungkin tidak benar.

[+] Saya baru saja menguji kedua perintah di bawah VirtualBox 3.1.2. Kedua file output identik menurut md5sum , tetapi saya belum sepenuhnya menguji file output.

Lihat juga tutorial "Semua tentang VDI" di forum VirtualBox.

quack quixote
sumber
3
Bagaimana dengan ukuran VDI? Apakah itu penting? Katakanlah ukuran VDI adalah 20GB dan ukuran HDD sebenarnya adalah 200GB ... Apa yang akan terjadi?
Pwnna
Metode pertama "clonehd" tampaknya sangat lambat. Tapi yang kedua berhasil.
Matt H
1
Juga perhatikan bahwa jika Anda berhasil membuat os windows untuk boot Anda harus mengaktifkannya kembali dalam kebanyakan kasus.
Kimmax
Bagaimana jika Anda ke sysprep /generalizeinstalasi virtual terlebih dahulu? Ini tentunya akan mempersiapkan pemasangan untuk dipasang pada perangkat keras baru (atau perangkat keras fisik dalam kasus ini)
Robula
1
@Pwnna Anda sedang menyalin img dari hard disk (bukan hanya partisi tetapi seluruh peta partisi dengan partisi). Saya telah melakukan ini di masa lalu dan ingat melihat apa yang dijelaskan jawaban ini, ruang yang tidak digunakan / tidak dipartisi di akhir: serverfault.com/questions/268889/…
sudo
21

Jika file vdi Anda berisi partisi dan Anda ingin mengekstrak hanya salah satunya gunakan yang berikut ini:

Pertama, seperti kata quack quixote sebelumnya, ubah file vdi menjadi file gambar mentah:

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

Kemudian siapkan perangkat loop untuk gambar:

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

Gunakan kpartx untuk membuat perangkat untuk setiap partisi di file mentah:

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

Lihat perangkat yang kita miliki sekarang. Dalam contoh ini, hanya ada satu perangkat karena hanya ada satu partisi di gambar mentah:

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

Sekarang pasang untuk memverifikasi bahwa semua berfungsi dengan baik:

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

Gunakan dd untuk menyalin konten partisi ke partisi target lain:

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

Setelah selesai hapus pemetaan perangkat:

# kpartx -d file.raw
dmoebius
sumber
Apakah itu mungkin dengan Windows?
Ehsan
13

Jawabannya adalah ya, kalau-kalau sistem host dan guest Anda adalah Linux. Ini dilakukan dengan paket qemudan TKLPatch. Anda dapat menggunakan file VDI atau VMDK.

Baca lebih lajut:

Alon Swartz
sumber
3
+1 "pasti" dengan peringatan ".. selama tamu Anda adalah linux" . dan solusi mereka (Anda?) bergantung pada beberapa alat TurnKey Linux. tapi prosedurnya terlihat bagus. (selamat datang di Pengguna Super!)
quack quixote
5

Saya mencoba VBoxManage clonehd file.vdi output.img --format RAWdari jawaban yang diterima tetapi tidak berhasil.

Apa yang berhasil bagi saya dengan mesin virtual Windows 8.1 pada host Windows 7 adalah ini:

  1. Buat mesin Windows 8.1 di VirtualBox, instal dan gunakan seperti yang biasa Anda lakukan dengan VM.
  2. Mengkonversi Virtual Box .vdi hard disk ke Windows VHD denganVBoxManage clonehd source.vdi target.vhd --format vhd
  3. Pasang VHD di mesin host Windows sebagai drive (Anda dapat memasang VHD di manajer disk di Manajemen Komputer.
  4. Mengkloning VHD (dipasang sebagai drive) ke hard disk baru lainnya (USB laptop HD terpasang dalam kasus saya) DriveImage XML atau alat kloning disk serupa. Anda sekarang pada dasarnya telah mengkloning hard disk virtual .vdi ke bare metal.
  5. Instal hard disk baru di mesin. (dalam kasus saya tukar HDD laptop)
  6. Masukkan Windows 8.1 instal USB / CD, boot dari sana, pilih Opsi Lanjutan dan Perbaikan Otomatis. Perbaikan otomatis akan membuat hard disk baru dapat di-boot.
  7. Boot dari hard disk baru dengan Windows 8.1 yang dikloning dan jalankan Pembaruan Windows. Ini akan mengunduh driver untuk perangkat keras komputer Anda yang tidak tahu kapan Anda menjalankan Windows di VirtualBox. Anda harus menginstal driver yang hilang secara manual jika ada.
  8. Hapus instalan Penambahan Tamu VirtualBox. Secara opsional instal VirtualBox sehingga bare metal Windows 8.1 Anda dapat menjadi host VirtualBox.
Jan H
sumber
1
Dari @sum: Anda dapat mencoba BootICE untuk mengganti langkah ke-6 dan pastikan untuk menginstal MBR yang benar.
fixer1234
Terima kasih. Apakah BootICE lebih andal dalam beberapa hal daripada yang diinstal Windows 8.1? Akankah langkah 6 yang saya jelaskan mungkin mengacaukan MBR?
Jan H
1
Ini diposting sebagai jawaban oleh pengguna baru (saya percaya superuser.com/users/523958/sum ). Itu akan dihapus karena itu tidak memenuhi syarat sebagai jawaban, jadi saya menyalin posting dan menyimpannya sebagai komentar sehingga tidak akan hilang. Saya pribadi tidak terbiasa dengannya.
fixer1234
3

Saya melakukan proses ini dengan sangat cepat, hanya dengan dua baris perintah di Linux:

#VBoxManage internalcommands converttoraw your_disk_virtual.vmdk your_disk_virtual.img

ATAU

#VBoxManage internalcommands converttoraw your_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img your_disk_virtual.iso

Artikel lengkap saya: http://www.previsioni.com.br/jailsonjan/?p=389

JailsonJan
sumber
Apakah .img dalam hal ini dapat di-boot?
Pumphouse
Saya pikir tidak. Saya telah melihat jawaban yang sama dari pengguna 0-rep, yang sepertinya cara mudah, namun ternyata tidak berguna.
T.Todua
0

Gunakan perintah berikut untuk mengonversi:

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

Berikut hasilnya:

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