Sanal makineleri fiziksel ortamlara dönüştürmek mümkün mü?


78

Bir .vdi dosyasını bir cd veya dvd'ye yazılabilecek bir .iso'ya dönüştürmek ve bir yükleyici gibi yapmak mümkündür. Veya sanal makineleri fiziksel ortamlara dönüştürmek mümkün mü?


1
AskUbuntu.com üzerindeki bu cevabı muhtemelen Linux ana makineler üzerinde çalışan ortamlarda bir sürü için geçerlidir: askubuntu.com/a/32506/31592
blong

Yanıtlar:


64

Evet ve hayır.

Sen edebilir bir disk görüntüsü içine VDI'yı dönüştürmek VBoxManage aracı. Bu komut , kayıtlı bir sanal disk görüntüsünü başka bir görüntü dosyasına klonlar . Sanal diskinizi başka bir formata dönüştürmek istiyorsanız, bu [*] kullanmak için resmi VirtualBox aracıdır.

VBoxManage clonehd file.vdi output.img --format RAW
  • Dinamik bir VDI kullanıyorsanız ve daha eski bir VirtualBox sürümüne sahipseniz , clonehd düzgün çalışmayabilir. VBoxManage'ın dahili komutları aracı, dinamik bir VDI'yı bir ham disk görüntüsüne ( kaynak ) [+] dönüştürebilen converttoraw öğesini içerir .

VBoxManage internalcommands converttoraw file.vdi output.img

Ancak ... bu çıkış IMG dosyası bir ISO görüntüsü değildir ve yüklü olan işletim sistemi önyüklenebilir bir CD / DVD'den çalışacak şekilde yapılandırılmaz. IMG'yi bir sabit sürücüye "yazabilir" (yazabilirsiniz) ve donanımdan (örneğin sanal bir makinede değil) önyükleme yapabilir. Ancak bu IMG'ye yüklenen işletim sistemi VirtualBox'ın sağladığı sanal donanımı görmeyi beklediği için beklemiyorsunuz ve siz de onu beklemeyeceğiniz gerçek bir donanıma açıyorsunuz.

Windows'un bazı sürümleri bu durumu iyi işlemez; bazı Linux dağıtımları yapar. Bazen bir işletim sistemini (önceden veya sonradan) bir ortamdan diğerine geçirecek şekilde yapılandırmak mümkündür, ancak belirli adımlar tamamen taşınan işletim sistemine bağlıdır.


Windows'ta, programın tam yolunu belirtmeniz gerekebilir:

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

Ekle \ Program Files \ Güneş \ VirtualBox: C , kısa sürümü kullanacak şekilde PATH.


[*] "--Format RAW" seçeneğinin, fiziksel bir sabit sürücüde dd komutunu kullanıyormuşsunuz gibi standart bir disk görüntüsüne dönüştüğünü farz ediyorum . Ama açıkçası, bunu destekleyen hiçbir belge bulamadım, bu yüzden bunun doğru olmayabileceğini unutmayın.

[+] VirtualBox 3.1.2 altındaki her iki komutu da test ettim. Her iki çıktı dosyası md5sum'a göre aynıdır , ancak çıktı dosyalarını tam olarak test etmedim.

Ayrıca bkz "Tüm VDIs hakkında" öğretici VirtualBox forumlarda.


3
Peki ya VDI'nin büyüklüğü? Önemi var? Diyelim ki VDI boyutu 20GB ve aslında HDD boyutu 200GB ... Ne olur?
Pwnna

Bu ilk yöntem "clonehd" awefully yavaş görünüyor. Fakat ikinci bir tedavi çalıştı.
Matt H

1
Ayrıca, önyükleme yapmak için bir Windows işletim sistemi edinmeyi başarırsanız, çoğu durumda onu yeniden etkinleştirmeniz gerekeceğini unutmayın.
Kimmax

Ya sysprep /generalizeönce sanal kurulumda olsaydınız ? Bu kesinlikle yeni bir donanıma (veya bu durumda fiziksel donanıma) kurulacak kurulumu hazırlar
Robula

1
@Pwnna Bir sabit diskin bir görüntüsünü kopyalıyorsunuz (sadece bir bölüm değil, bölümlerin bulunduğu bütün bir bölüm haritası). Bunu geçmişte yaptım ve bu cevabın ne anlama geldiğini, sonunda kullanılmayan / bölümlenmemiş alanı gördüğümü hatırlayın: serverfault.com/questions/268889/…
sudo

21

Vdi dosyanız bölümler içeriyorsa ve bunlardan yalnızca birini çıkarmak istiyorsanız, aşağıdakileri kullanın:

Öncelikle, quack quixote'un daha önce söylediği gibi, vdi dosyasını ham görüntü dosyasına dönüştürün:

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

Ardından görüntü için bir döngü cihazı kurun:

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

Ham dosyadaki her bölüm için aygıt oluşturmak için kpartx kullanın:

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

Şimdi hangi cihazlara sahip olduğumuzu görün. Bu örnekte, ham görüntüde yalnızca bir bölüm olduğundan tek bir aygıt var:

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

Şimdi, hepsinin düzgün çalıştığını doğrulamak için monte edin:

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

Bölüm içeriğini başka bir hedef bölüme kopyalamak için dd kullanın:

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

İşiniz bittikten sonra cihaz eşlemelerini tekrar kaldırın:

# kpartx -d file.raw

Bu Windows ile mümkün mü?
Ehsan

13

Cevap, ev sahibi ve konuk sisteminizin Linux olması durumunda kesin bir evet. Paketleri ile yapılır qemuve TKLPatch. Hem VDI hem de VMDK dosyalarını kullanabilirsiniz.

Daha fazla oku:


3
+1 "kesin" ihtar ile ".. konuğunuz linux olduğu sürece" . ve onların (sizin?) çözümü bazı TurnKey Linux araçlarına dayanır. ancak prosedür ses görünüyor. (Super
User'a

5

Denedim VBoxManage clonehd file.vdi output.img --format RAWdan kabul edilen yanıt ama çok başarılı olamadı.

Benim için Windows 7 ana bilgisayarındaki bir Windows 8.1 sanal makinesiyle çalıştığım şudur:

  1. VirtualBox'da bir Windows 8.1 makinesi hazırlayın, kurun ve kullanın normalde bir VM'de yaptığınız gibi.
  2. , Windows VHD Sanal Kutu VDI sabit diski dönüştürme ileVBoxManage clonehd source.vdi target.vhd --format vhd
  3. VHD'yi ana Windows makinesine sürücü olarak takın (Bilgisayar Yönetimi'nde disk yöneticisine bir VHD takabilirsiniz.
  4. VHD'yi (sürücü olarak monte edilmiş) başka bir yeni sabit diske (benim açımdan bir USB bağlı dizüstü bilgisayar HD'si ) DriveImage XML veya benzeri bir disk klonlama aracına klonlayın . Artık temelde metalin çıplak olması için sanal sabit diski .vdi'yi klonladınız.
  5. Yeni sabit diski bir makineye takın. (benim durumumda dizüstü HDD değiştir)
  6. Bir Windows 8.1 kurulum USB / CD'si yerleştirin, önyükleyin, Gelişmiş Seçenekler ve Otomatik Onarım'ı seçin. Otomatik onarım yeni sabit diski önyüklenebilir hale getirecek.
  7. Klonlanmış Windows 8.1 ile yeni sabit diskten önyükleme yapın ve Windows Update'i çalıştırın. Bu, Windows’un VirtualBox’da ne zaman çalıştırıldığını bilmiyordu. Varsa, eksik sürücüleri manuel olarak yüklemeniz gerekecektir.
  8. VirtualBox Konuk Eklemeleri'ni kaldırın. İsteğe bağlı olarak, sanal metal Windows 8.1'in bir VirtualBox ana bilgisayarı olabilmesi için VirtualBox'ı kurun.

1
Kimden: 6. adımı değiştirmek için BootICE programını deneyebilir ve doğru MBR'yi yüklediğinizden emin olabilirsiniz.
fixer1234

Teşekkürler. BootICE, bazı sularda Windows 8.1'den daha güvenilir midir? Tanımladığım 6. adım muhtemelen MBR'yi bozacak mı?
Jan H

1
Bu yeni bir kullanıcı tarafından cevap olarak gönderildi (Ben süper kullanıcı.com/users/523958/sum inanıyorum ). Bir cevap olarak nitelendirilmediği için silinecekti, ben de yazıyı kopyaladım ve bir yorum olarak kaydettim, böylece kaybedilmeyecekti. Ben şahsen buna aşina değilim.
fixer1234

3

Bu işlemi çok hızlı bir şekilde yapıyorum, Linux'ta sadece iki komut satırıyla:

#VBoxManage internalcommands dönüştürmek_disk_virtual.vmdk your_disk_virtual.img

VEYA

#VBoxManage internalcommands dönüştürmek_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img Instagram Hesabındaki Resim ve Videoları your_disk_virtual.iso

Yazımın tamamı: http://www.previsioni.com.br/jailsonjan/?p=389


Bu durumda .img önyüklenebilir olur mu?
Pumphouse,

Bence hayır. 0-rep kullanıcısından benzer bir cevap gördüm, bunun kolay bir yolu görünüyordu, ancak işe yaramaz hale geldi.
T.Todua

0

Dönüştürmek için aşağıdaki komutu kullanın:

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

İşte çıktı:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.