Windows'u yükledikten sonra Windows'un Yeniden Etkinleştirilmesine neden olmayan bir VirtualBox Makinesi klonu oluşturun


14

VirtualBox'a Windows'u yüklemek için hızlı Windows işleri için bir şablon görevi görecek kılavuzların çoğu, Windows'u yüklemeden önce Sanal Makineyi hazırlamak için birkaç adım atmanızı söyler (bulduğum en iyi kılavuz: grahamrhay.wordpress.com ; oldukça iyi bir kılavuz: www .windowstablettv.com ). Maalesef, şablon olarak kullanmak istediğim VM'ye Windows'u yüklemeden ve etkinleştirmeden önce bu kılavuzları okumadım.

Zaten etkin olan VM'mi Windows'dan yeniden etkinleştirme gerektirmeyecek şekilde klonlamayı bilmek istiyorum.

Şablon VM Definition dosyasına (VM için VBOX veya XML dosyası) bakıldığında, /VirtualBox/Machine/Hardware(XPath ID) düğümü hiçbir uuidözniteliğe sahip değildir . Ancak, VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid>şablon VM'si için yeni bir UUID ayarlamak için kullanmaya çalışırsam , şablon VM'si etkinleştirme durumunu kaybeder! (Neyse ki, şablonun bir yedeğini almıştım.) Bu yüzden, amacımı gerçekleştirmek için, henüz Windows'u yüklememiş gibi davranarak bu kılavuzları takip edemiyorum.

Yanıtlar:


11

Neyse ki, tüm Sanal Makinelerim hakkında, bu kılavuzların ana hatlarıyla belirttiği gibi hazırlamadığım bir şey fark ettim.

Koştum VBoxManage showvminfo <uuid|name>ve değerin değerle UUIDeşleştiğini fark ettim, Hardware UUIDherhangi bir VM Tanımının düğümde bir uuidözniteliği yoksa /VirtualBox/Machine/Hardware, VM'nin "Donanım UUID" değeri olarak "Makine UUID" değerini kullanacağını tahmin ettim . Yani, şablon VM için kullanabileceğim bir "Donanım UUID" vardı; Yapacağım klonlara nasıl aktaracağımı bulmak zorundaydım.

UUID'nin aktarıldığından emin olmak için iki yaklaşımdan birini kullanabilirsiniz:

  • Şablon VM Tanım dosyasını doğrudan düzenleyebilirsiniz. Eğer "Donanım UUID" sadece klon transfer olacak /VirtualBox/Machine/Hardwaresahiptir uuidniteliğini. Bu nedenle, /VirtualBox/Machine uuidözniteliği kopyalayın ve özniteliğe ekleyin /VirtualBox/Machine/Hardware uuid. Muhtemelen bundan sonra, çalıştırdığınız herhangi bir VirtualBox işlemini kapatarak / öldürerek VirtualBox makine veritabanını yeniden başlatmak istiyorsunuz. (VBoxSVC bazen Windows'da kalır; Görev Yöneticisi'nden öldürmeniz gerekebilir.)
  • Şablonunuzu klonlayabilir ve yeni bir şablon VM'si oluşturabilir ve ardından VBoxManage modifyvm <uuid|name> --hardwareuuid <uuid>yeni şablonun "Donanım UUID'sini" orijinal şablonun "Makine UUID" / "Donanım UUID" değerine ayarlamak için kullanabilirsiniz . Yeni bir şablon VM oluşturmak için VM'yi klonlamanız gerektiğini söylüyorum, çünkü orijinal şablonda bu komutla "Donanım UUID" ni ayarlamaya çalışırsanız , yine de ima edebileceği uuidiçin /VirtualBox/Machine/Hardwaredüğüme öznitelik eklemez "Makine UUID" den alınır ve dolayısıyla bu değeri yaptığı hiçbir klonla kopyalamaz.

İlk aşamada hangi VM'den bahsettiğinizden net değil; Ayrıca kullanmak daha iyidirVBoxManage modifyvm --hardwareuuid <uuid>
CharlesB

2
modifyvmKomut belirlemeyeceğinden /VirtualBox/Machine/Hardwaredüğüm uuidEğer SM'nin aynı değere sahip bir UUID geçirirseniz niteliğini /VirtalBox/Machinedüğümü uuidöznitelik. VBOX dosyasını doğrudan düzenlemeniz gerekir.
palswim

3

Bu powershell betiği şunları yapar:

  1. etkinleştirilmiş olan makineyi klonlayın.
  2. görev yöneticisinden sanal kutu öncelerini kapatın.
  3. değişkenleri değerlerinizle değiştirerek bu komut dosyasını çalıştırın.

Sanal makine adlarının büyük / küçük harfe duyarlı olduğunu unutmayın.

$ORIGVirtualMachineName="BaseDevWin7"
$clonedVirtualMachineName="DevWin7a"
$vboxDir="c:\Program Files\Oracle\VirtualBox"
cd $vboxDir
$uid=$($($(.\VBoxManage.exe showvminfo $ORIGVirtualMachineName|select-string "Hardware UUID:").ToString()).Split())[4]
.\VBoxManage modifyvm $clonedVirtualMachineName --hardwareuuid $uid

2

Yukarıdaki ipuçları sayesinde, Win7 konukunun bir Kubuntu ana bilgisayarında yeniden etkinleştirilmeden test amacıyla çalışan bir makineyi başarıyla klonladım.

Makinem zaten etkinleştirildi ve (yukarıda açıklandığı gibi) aslında donanım UUID'si yoktu.

Benim için MACHINE UUID sadece Virtualbox yönetimi içindir, DONANIM UUID Windows aktivasyon mantığı tarafından kullanılır. Donanım UUID'si yoksa, Virtualbox konuklara makine UUID'sini sağlar, yani Microsoft makine UUID'sini bilir.

Benim durumumda yeniden etkinleştirme olmadan bu şekilde iyi çalıştı: 1) Sanal makineyi (klasör) normal dosya tarayıcısıyla kopyalayın. 2) .vbox dosyasını basit bir metin düzenleyicisinde açın. 3) "Donanım" için UUID özelliği olmadığından, makine UUID özelliğini (örn. Uuid = "{xxx11111-2222-3333-4444-xxxxxxxxxxxx}") "donanım" girişine kopyalayın. 4) Makine için yeni bir UUID oluşturun, örneğin uuidgenerator.net ile. 5) UUID makinesinin VALUE değerini oluşturulan UUID değeri ile değiştirin. => Tamamlandı.

VB Manager'da her iki makineyi paralel olarak yönetmek için daha zordur:
1. Klonların sabit disk .vdi dosyasını yeniden adlandırın.
2. Komut satırında "VBoxManage internalcommands sethduuid .vdi. Komutu ile sabit diske yeni bir UUID sağlayın. VBManager yeni bir UUID ayarlayacak ve görüntüleyecektir.
3. VB Manager'da yeni makineyi ekleyin. Yeni sabit disk dosyasını ekleyerek makineyi düzenleyin. (ve hala varsa orijinal vdi'yi çıkarın).

Artık tüm sanal makineler ve sabit diskler için benzersiz kimlikleriniz var. VB Yöneticisi içindeki her iki makineyi de paralel olarak yönetebilirsiniz.


1

Makineyi tam klonlayın. Başlamayın.

Komut satırından:

VBoxManage modifyvm "Klonlanmış VM adı" - hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

UUID olarak orijinal makineden makine kimliğini (veya varsa donanım kimliğini) kullanın.

Bu UUID'yi kullanmak için:

VBoxManage showvminfo "Orijinal VM adı"

Bu çalışmalı. Windows 10'da test edildi, zaten etkinleştirildi.


Bu , soru ve başka bir yorumun belirttiği gibi , UUID'nin VM /VirtalBox/Machinedüğümünün uuidözelliğiyle eşleştiği durumlar dışında çoğu durumda çalışır .
palswim

0

Yukarıdaki cevap işe yarıyor! Bir Windows 10 şablonunda test ettim.

"Makineyi tam klonlayın. Çalıştırmayın. Komut satırından: VBoxManage modifyvm" Klonlanmış VM adı "- hardwareuuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx UUID olarak makinenin kimliğini (veya varsa donanım kimliğini) kullanın. Bu UUID kullanmak için: VBoxManage showvminfo "Orijinal VM adı"

Bu çalışmalı. Windows 10'da test edildi, zaten etkinleştirildi.

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.