Sanal bir makineden (VM) fiziksel bir sisteme geçiş


124

Aka: Bir .vdi veya .vmdk dosyasını fiziksel bir diskteki gerçek yüklemeye nasıl dönüştürebilirim?

Ubuntu Sanal Makine kurulumunu fiziksel bir makineye geçirmek mümkün mü / mümkün mü? Mümkünse, bunun başarılması ne kadar zor olacak ve göç için hazırlık yapmak için hangi adımları atmam gerekecek?

Bir VM üzerinde bazı testler yapmak istiyorum ve eğer işe yaramazsa, her şeyi yeniden yüklemek yerine bu sistemi fiziksel donanıma geçirin. Mümkün mü?


Yanıtlar:


98

Evet mümkün. Hatta değil o (Birden fazla iç diskleri yoksa) bu sadece biraz zaman, bir Ubuntu LiveCD, yapışkan arka plastik ve harici bir USB diski alır, sert.

Ön adım: Diski kullanışlı bir şeye dönüştürün

Hem VMWare hem de VirtualBox (diğerleri arasında), doğrudan diske yazılmaları için kendilerini iyi ödünç vermeyen disk formatlarını kullanır. Sen can ama ben şahsen ilk, aracılık standart görüntü yazmaya daha uygun olduğunu hissediyorum. Bunu, mevcut sisteminizden bir LiveCD'ye başlatmak zorunda kalmadan yapabilirsiniz.

  • Bir terminal yükleyin ve ateş edin:

    cd /media/wherever-the-image-is/
    
    # for VMWare
    sudo apt-get install qemu-kvm
    qemu-img convert your-vmware-disk.vmdk -O raw disk.img
    
    # For VirtualBox
    VBoxManage clonehd your-virtualbox-disk.vdi disk.img --format RAW
    
  • Yazmadığınız bir /media/wherever-the-image-is/disk.imgyere gidin. Şu anda oturduğu diske yazmayı planlıyorsanız, ayrı bir dahili diske veya en kötüye en kötü harici diske yapıştırmak isteyeceksiniz.

  • Aşağıdaki talimatlar, taşıdığınızı varsayar /media/dave/disk.img( daveharici bir USB disktir)

  • Herhangi bir ciddi yazı yapmadan önce yedekleriniz olduğundan emin olun . Söylenecek bir şey var ama bir yazım hatası var ve sisteminizi tehlikeye atmanız için çok gerçek bir olasılık var. İşlerin yanlış gideceğini ve hazırlanacağını varsayalım. CloneZilla, depolanacak verilerin bulunduğu bir yeriniz varsa, tüm disk yedeklemelerini almanıza yardımcı olabilir.

Görüntüyü kendi diskine yazın

Böyle bir şey yapmak isteyeceksiniz. Bu, bir diskin üzerine yazacağınızı varsayar. Bir Windows yüklemesinin yanı sıra yapmak istiyorsanız, bu talimatları izlemeyin! Mermilerin arkasına geç.

  • Bir Ubuntu Live CD'sine önyükleyin ve Ubuntu'yu Dene'yi tıklayın.

  • Vmdk görüntünüzün depolandığı yeri monte edin (örneğin harici USB disk gibi /media/dave). Do not size yazmak istediğiniz yere monte edin.

  • Sonra işe gideriz:

    sudo dd if=/media/dave/disk.img of=/dev/sdX
    

    sdXHedef diskinize doğru yol ile değiştirmek istiyorsanız . sudoŞifre boş, sadece vurmak geri dönüşüdür.

  • Daha sonra açabilirsiniz gpartedya da başka bir şey ve Ubuntu bölümünüzü diskte otururken görmelisiniz. Genişletebilmelisin.

Resmi başka bir işletim sisteminin yanında bir diske yazın

Bu belki de bir şeyler yapmanın tamamen güvenli bir yoludur. Fikri sizden çok benzer, Ubuntu'nun uygun bir kurulumunu yapın ve ardından sadece dosyaları senkronize edin disk.img.

  • LiveCD'nizin bu sefer sanal yüklemenizle aynı Ubuntu sürümü olması gerekir. Canlı CD'ye önyükleme yapın ve tekrar Yükle'yi tıklatın.

  • Yükleyiciyi takip edin, uygun gördüğünüz şeyleri yeniden bölümlere ayırın. Yaklaşık 10 dakika sonra yüklenecek ve sizden yeniden başlatmanızı isteyecek. Yeniden başlatma. Yanlışlıkla yapmanız önemli değil, bir sonraki talimatlar için LiveCD'ye geri döndüğünüzden emin olun.

  • Yeni kurulumunuzun bölümünü ve harici diskinizi disk.imgdaha önceleri depoladığınız yere yerleştirin (nautilus'a çift tıklayın).

  • Diskinizi takın.img ISO bir terminale:

    sudo mkdir /media/oldinstall
    sudo mount -o loop /media/dave/disk.img /media/oldinstall
    

    -Note - İstediğiniz .img dosyasını oluşturduktan sonra, bazen onu bir loop aygıtı olarak bağlamaya çalıştığınızda aşağıdaki hatayı alabilirsiniz.

    "NTFS imzası eksik. '/ Dev / loop0' bağlanmadı: Geçersiz argüman '/ dev / loop0' aygıtı geçerli bir NTFS'ye sahip değil gibi görünüyor."

    Bir .img dosyası bazen bir ana önyükleme kaydı ve monte etmek isteyebileceğiniz gerçek bölümden önce bir bölüm tablosu içerir. Bu nedenle gerekli bölümün ofsetini bulmanız gerekir. Bunun için, parçalanmış aracı kullanabilirsiniz . Bir örnek için, bu linke sisco311 tarafından verilen cevaba bakınız: http://ubuntuforums.org/archive/index.php/t-1576011.html

    Öyleyse, ofsetinizi 'xxx' olarak belirlediyseniz, kullanarak disk bölümünü takabilirsiniz.

    sudo mount -o loop,offset=xxx /media/dave/disk.img /media/oldinstall
    
  • Buradan, kirazlı toplama dosyalarını ya da sadece yeni bir Ubuntu kurulumunuzun üstündeki her şeyin üzerine kopyalayabilirsiniz:

    sudo rsync /media/oldinstall/ /media/my-new-install/
    
  • Sistemi yeniden başlatın, gereken eski VMWare yüklemek ile karşılandı ama çıplak metale edilecek. Kötü grub sorunları yaşarsanız, Live CD'ye geri dönerek, chrooting yaparak ve işleri düzelterek düzeltebilirsiniz .


7
Bunu otomatik olarak yapan bir aracın farkında mısın?
the_drow

1
Windows / VirtualBox'taki kurulumlar için VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXkomut yine de çalışacaktır. Tek gereken, Program Files\Oracle\VirtualBoxilk komutu çalıştırmadan önce cd'ye koymak .
Aust

2
@Aust /dev/sdXWindows'ta geçerli bir hedef olduğundan şüpheliyim . AFAIK olacak \\Device\Harddisk0ya da böyle bir şey.
Danatela

3
VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXçalışmıyor Linux'ta bu hata veriyor: VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS. VBoxManageÖnce bir görüntüye göndermek için komutu kullanmak gerekir . Sonra görüntüyü fiziksel diske koymak için DD kullanın.
LD James

8

Belki de tam olarak istediğin şey değildir, ama yapmak istediğini yapabilir.

Tüm ayarlarınız ana dizininizde saklandığından, yedek bir kopyasını gerçek bir diskteki başka bir bölüme alabilirsiniz. Gerçek bir diske yeni bir Ubuntu yükledikten sonra, ana dizininizi tüm ayarlarınız bozulmadan geri yüklemek için bir kez daha yedekleme programını çalıştırın.

Déjà Dup adında çok temiz bir yedekleme programı kullanabilirsiniz .

Ubuntu yazılım merkezinden bilgi:

Déjà Dup basit bir yedekleme aracıdır. Doğru Yolu yedekleme (şifreli, site dışı ve düzenli) karmaşıklığını gizler ve arka uç olarak çiftliği kullanır.

Özellikleri:

  • Amazon S3 veya Rackspace Cloud Files gibi yerel, uzak veya bulut yedekleme konumları için destek

  • Verilerinizi güvenle şifreler ve sıkıştırır

  • Herhangi bir yedeklemeden geri yüklemenizi sağlayan artımlı olarak yedekler

  • Düzenli yedeklemeler zamanlar

  • GNOME masaüstünüze iyi entegre olur

görüntü tanımını buraya girin

İki saatten daha kısa bir sürede bitmiş olacaksınız!

iyi şanslar!


1
Kulağa hoş geliyor. Gerçekten böyle çalıştığını onaylayamıyor mu?
Mateng,

diğer şeylerin yanı sıra .... UID (kullanıcı numaraları) zamanın o noktasında belki de farklı olabilir.
Tomachi,

5

UDPCast'ı deneyin

Buradaki fikir, vmdk'nizi Sanal Makineden fiziksel makineye, fiziksel fiziksel belleğe yazıldığı yere aktarmak.

Prosedür aşağıda açıklanmıştır.

Bir vmdk dosyanız olduğundan, kullanımınıza sunulan bir VMWare İş İstasyonu olabilir, hatta bu vmdk'in bağlı olduğu Sanal Makine'yi bile doldurabilirsiniz. Sanal Makinenizi bu vmdk bağlı olarak çalıştırın, ancak normal önyükleme yerine önyükleme yapmak için PartedMagic liveCD kullanın.

LiveCD başlatıldığında, ana menüye gidin ve UDPCast Disk Cloning. Diyalogları açıklayıcıdır (ekran görüntüsüne bakın) UDPCast Disk Klonlama başlangıç ​​ekranı

Bu Sanal Makineyi seçtikten sonra sender, hangi sürücüyü yayınlamak istediğinizi seçmelisiniz (Unix notasyonu kullanarak, / dev / sda gibi).

Başladıktan sonra sender, receiveraynı zamanda başlamanız gerekir . Fiziksel bir hdd’niz olduğundan, farz ediyorum ki, bu hdd’nin ekli olduğu eksiksiz bir PC’niz de var. Burada da aynı: uygun fiziksel hdd'nin yanı sıra bu zamanı UDPCast Disk Cloningseçerek liveCD'ye başlamanız gerekir receiver.

Sanal Makineniz ve fiziksel donanımınız arasında ağ bağlantısına sahip olmak için gerekli tüm düzenlemeleri yapmanız gerektiğini belirtmekte fayda var. Vmdk'niz özel veriler içeriyorsa, içeriğini ağınız üzerinden etkin bir şekilde aktaracağından gerekli önlemleri almalısınız. Başka bir şey de, hedef hdd'nizin vmdk'in kapasitesinden daha az depolama kapasitesine sahip olmaması gerektiğidir. Açıktır, ancak görüntünüzün hedef hdd'de bire bir düzenlendiğini ve yeni hdd'nizin kapasitesinden daha fazla yararlanmak için gparted veya benzeri bir işlemle uygun işlemler yapmanız gerektiğini belirtmek gerekir.


Bu yöntemin gerçekten basit ve gerçekleştirmesi kolay olduğunu not etmek isterim. Yani, atmanız gereken tek hazırlık adımı LiveCD'nizi UDPCast ile birlikte veya UDPCast'i indirmek ve çalıştırmak için yeterli olan herhangi bir LiveCD'yi hazırlamaktır. Biraz sanal hd görüntünüz varsa, onu zaten kurulmuş ve hazır olan bir Sanal Makinede kesinlikle kullandınız, öte yandan fiziksel sisteminizi hazırladınız ve bu görev için de hazır.
PF4Public

Dahası var: UDPCast doğrudan PXE'den çalıştırılabilir. udpcast.linux.lu/bootloader.html#pxe
PF4Public

4

Eğer VirtualBox yüklediyseniz, o zaman dönüştürebilirsiniz VDI (VirtualBox sürücü görüntüsünü) IMG formata kullanarak VBoxManagekomutu, daha sonra fiziksel diskin, örneğin kopyalamak

VBoxManage clonehd --format RAW file.vdi file.img

Sonra dddosyayı fiziksel bölüme kopyalamak için komutu kullanabilirsiniz :

dd if=./file.img of=/dev/<partition_here>

Not: Gerekirse sudo kullanın. / Dev aygıtındaki doğru aygıtı belirtirken dikkatli olun.


0

VM sanal diskinin açık olduğu makineye bağlı yeni fiziksel diske sahipseniz, VDI'yi bir ara dönüşüm olmadan fiziğe dönüştürebilir, muhtemelen bir sürü zaman ve disk alanı kazanabilirsiniz. Bu, fiziksel diskinizin sanal diskin maksimum boyutuyla aynı veya daha büyük olduğunu varsayar. Benim durumumda amaç, bir VDI'yi bir ZFS zvol'e dönüştürmekti, ancak yaklaşım herhangi bir blok cihazıyla aynı olmalıdır.

Öncelikle blok cihazınıza işaret eden bir VMDK dosyası oluşturun:

VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX

Ardından (VM kapatıldığında!) VDI'yı VMDK'ya klonlayabilirsiniz:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk

Bu biraz zaman alacak ... İşlem tamamlandığında, sanal cihazı bulmak için yalnızca VirtualBox için işaretçi olarak kullanıldığından VMDK dosyasını silebilirsiniz.

Benim durumumda, yeni zvol tam olarak sanal disk ile aynı boyuttaydı. Fiziksel diskinizin muhtemelen farklı olduğu göz önüne alındığında, tüm diski doldurmak için bir tür bölüm yeniden boyutlandırma mekanizması kullanmanız gerekir. Gparted ya da belki bir şey. Yine de VM makinesine bağlıyken fiziksel / dev / sdX cihazında bunu işaret edebilmelisiniz, böylece CD'nin fiziksel ana bilgisayarını açmak zorunda kalmazsınız.

Yeniden boyutlandırma bittiğinde, sürücüyü fiziksel makinenize yerleştirin, parmaklarınızı çaprazlayın ve açın.

Fiziksel sürücüyü VirtualBox ile kullanmaya devam etmek istemeniz durumunda, VMDK'yi etrafta tutun VBoxManage storageattachve VM'ye bağlamak için kullanın.


Çalışıyor gibi görünüyor, ancak veriler bir şekilde bozuluyor ve işletim sistemi düzgün açılmıyor.
Sarge Borsch
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.