5.09.2009

VirtualBox'a eski sanal makinaları aktarmak

VirtualBox'ta kolay bir import özelliğinin olmaması büyük bir eksiklik. Şimdiye kadar ben de eski sanal makinalarımı nasıl yeni kurduğum bir bilgisayara, veya başka bir bilgisayara aktarırım, bilmiyordum. Artık öğrendim.

Virtualbox her türlü meta verisini xml dosyalarında tutuyor. İki çeşit xml dosyası var. Bunlardan birisi kullanıcının profil klasörünün içindeki .virtualbox (başındaki noktaya dikkat!) klasörünün içinde bulunan Virtualbox.xml dosyası. Bu dosya, genel olarak programın ayarlarını, ana pencereyi açtığınızda görülen sanal makinaların listesini ve sisteme kayıtlı olan sabit diskler ve cd kalıp dosyalarını (image files) saklıyor. Diğer xml dosyası ise kurulu bir sanal makinanın ayarlarını (kaç disk bağlı, snapshot'lar nerede vs.) saklıyor. Eğer çalışan sisteminizin birinci olarak bahsettiğim Virtualbox.xml dosyası elinizde ise bunu hedef bilgisayarda oturum açmış kullanıcının profilindeki .virtualbox klasörüne taşıyarak tüm dertlerinizden kurtulabilirsiniz. Ama eğer Virtualbox.xml dosyası artık ulaşılamıyorsa, yani gerçekten bir "import" özelliğine ihtiyaç duyuyorsanız, bu dosyayı sıfırdan tırnaklarınızla yaratmanın yolu burada.

Muhtemel senaryomuz şöyle olsun: C: sürücüsünü formatladınız, Virtualbox.xml dosyası gitti. Ama Default Hard Disk Folder ile Default Machine Folder zarar görmeden duruyor. Bu durumda VirtualBox'ı bir kez çalıştırıp, Default Hard Disk ve Default Machine klasörlerini ayarlayıp kapatın. Bu sayede kullanıcı profiliniz içindeki .virtualbox klasöründeki Virtualbox.xml dosyasını oluşturdunuz. Şimdi bu dosyaya eskiden kurmuş olduğunuz makinaları ekleyelim.

Virtualbox.xml dosyası en üstte bir xml bildirisi ile başlar. Bu satırı, diğer bütün satırları içine alacak VirtualBox ve Global tag'ları takip eder:


Bundan hemen sonra genel sistem bilgilerini tutan ExtraData tagı içindeki ExtraDataItem tag'ları vardır. Bunlara dokunmak zorunda kalmayacağız. Sanal makinamızı kaydedebilmek için MachineRegistry tag'ını bulun ve içine aşağıdaki gibi yeni bir MachineEntry tag'ı yaratın:


Bu eklemeyi yaparken Virtualbox'ın kapalı olması gerekir. Aksi halde Virtualbox.xml dosyasına yazılamayacaktır.

Yukarıdaki eklemeyi yaptıktan sonra makinamızın sabit disk(ler)ini eklemek gerek. Snapshot'larınızın da olduğunu varsayarak anlatacağım. Eklemek istediğiniz sanal makinaya ait xml dosyasını (yukarıdaki örnek için dummy.xml) açarak StorageControllers tag'ının içindeki Image tagını bulun ve bunun içindeki uuid özniteliğinin değerini kaydedin (Bütün uuid değerleri rastgele atanan benzersiz değerlerdir). Bu Image tag'larından birden fazla olacaktır (snapshot'lar için). Dosyanın içinde yer alma sırasına göre bunları MediaRegistry tag'ı içindeki HardDisks tagı içine ayrı ayrı HardDisk tagları olarak ile Virtualbox.xml dosyasına ilave edin. Şu şekilde gözükmelidir:


İlk HardDisk tag'ı ile diğer HardDisk tag'ları arasında bir fark var: ilkinin sonundaki type="Normal" özniteliği. İlki sanal makinanın ilk oluşturulan sabit diski. Diğerleri buna bağlı olarak çalışan snapshot dosyaları. Bunlarda type özniteliği yok. Hiyerarşik olarak en içteki HardDisk tagının (en son alınan snapshot'ın) kapalı bir tag olduğuna, diğerlerinin ayrıca /HardDisk öğesi ile kapatıldığına dikkat edin.

Takılacak sabit disklerin girişini yaptıktan sonra sistemde tanımlı bulunmasını istediğiniz CD/DVD kalıp dosyaları (iso dosyaları) varsa bunları da MediaRegistry tagının içine DVDImages içine yukarıdaki gibi yazabilirsiniz. Eğer dondurulmuş sanal makinalar yoksa bu adımın çok gerekli olduğunu sanmıyorum.

Hiç yorum yok: