Bermigrasi dari mesin virtual (VM) ke sistem fisik


124

Aka: Bagaimana saya bisa mengubah .vdi atau .vmdk menjadi instalasi nyata pada disk fisik?

Apakah mungkin / layak untuk melakukan migrasi instalasi Virtual Machine Ubuntu ke mesin fisik? Jika memungkinkan, seberapa sulit hal ini untuk dicapai dan langkah apa yang harus saya ambil untuk mempersiapkan migrasi.

Saya ingin melakukan beberapa pengujian pada VM dan jika berhasil bermigrasi sistem itu ke perangkat keras fisik daripada menginstal ulang semuanya. Apakah ini mungkin?


Jawaban:


98

Iya itu mungkin. Ini bahkan tidak bahwa sulit, itu hanya membutuhkan beberapa waktu, Ubuntu LiveCD, lengket-back-plastik, dan USB disk eksternal (jika Anda tidak memiliki lebih dari satu disk internal).

Langkah awal: Konversikan disk menjadi sesuatu yang bermanfaat

Baik VMWare dan VirtualBox (antara lain) menggunakan format disk yang tidak cocok untuk ditulis langsung ke disk. Anda bisa, tetapi secara pribadi saya merasa lebih nyaman untuk menulisnya ke perantara, gambar standar terlebih dahulu. Anda dapat melakukan ini dari sistem Anda saat ini tanpa harus boot ke LiveCD.

  • Muat terminal dan masukkan:

    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
    
  • Pindah ke /media/wherever-the-image-is/disk.imgsuatu tempat yang Anda tidak akan menulis. Jika Anda berencana untuk menuliskannya ke disk yang saat ini diduduki, Anda ingin menempelkannya di disk internal yang terpisah, atau, disk eksternal yang paling buruk.

  • Petunjuk berikut menganggap Anda telah memindahkannya /media/dave/disk.img( daveadalah disk USB eksternal)

  • Sebelum Anda melakukan tulisan serius, pastikan Anda memiliki cadangan . Ini hal klise untuk dikatakan tapi salah ketik dan ada kemungkinan yang sangat nyata Anda akan merusak sistem Anda. Asumsikan bahwa segala sesuatu akan salah dan bersiaplah. CloneZilla dapat membantu Anda mengambil seluruh cadangan disk jika Anda memiliki tempat untuk menyimpan data itu.

Tulis gambar ke disk-nya sendiri

Anda pasti ingin melakukan hal seperti ini. Ini mengasumsikan Anda akan menimpa seluruh disk. Jika Anda ingin melakukan instalasi bersama-Windows, jangan ikuti instruksi ini! Lewati setelah peluru.

  • Boot ke Live CD Ubuntu dan klik Coba Ubuntu.

  • Pasang tempat Anda di mana vmdk image Anda disimpan (misalnya disk USB eksternal sebagai /media/dave). Jangan tidak me-mount tempat di mana Anda ingin menulis untuk.

  • Lalu kami pergi bekerja:

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

    Anda ingin mengganti sdXdengan jalur yang benar ke disk tujuan Anda. Kata sudosandi kosong, tekan saja kembali.

  • Anda kemudian dapat membuka gpartedatau sesuatu yang lain dan Anda akan melihat partisi Ubuntu Anda duduk di disk. Anda harus dapat mengembangkannya.

Tulis gambar ke disk di samping sistem operasi lain

Ini mungkin cara yang lebih aman untuk melakukan sesuatu. Idenya sangat mirip selain Anda melakukan instalasi Ubuntu yang benar dan kemudian hanya menyinkronkan file dari disk.img.

  • LiveCD Anda kali ini harus versi Ubuntu yang sama dengan instalasi virtual Anda. Boot ke Live CD dan, sekali lagi, klik Install.

  • Ikuti pemasang melalui, partisi ulang hal-hal yang Anda inginkan. Sekitar 10 menit kemudian, Anda akan menginstal dan akan meminta Anda untuk reboot. Jangan reboot. Tidak masalah jika Anda melakukannya secara tidak sengaja, pastikan Anda kembali ke LiveCD untuk instruksi selanjutnya.

  • Pasang partisi instal baru Anda dan disk eksternal tempat Anda menyimpannya disk.imgsebelumnya (cukup klik dua kali di nautilus).

  • Pasang disk Anda. Img ISO di terminal:

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

    -Catatan - Setelah membuat file .img yang diinginkan, kadang-kadang ketika Anda mencoba memasangnya sebagai perangkat loop Anda mungkin mendapatkan kesalahan berikut

    "Tanda tangan NTFS hilang. Gagal me-mount '/ dev / loop0': Argumen tidak valid Perangkat '/ dev / loop0' tampaknya tidak memiliki NTFS yang valid."

    File .img terkadang berisi catatan boot master dan tabel partisi sebelum partisi sebenarnya yang mungkin ingin Anda pasang. Karenanya Anda perlu mencari tahu offset dari partisi yang diperlukan. Untuk ini, seseorang dapat menggunakan alat berpisah . Sebagai contoh, lihat jawaban oleh sisco311 di tautan ini http://ubuntuforums.org/archive/index.php/t-1576011.html

    Jadi, jika Anda telah menentukan offset Anda menjadi 'xxx' maka Anda dapat memasang partisi Anda menggunakan

    sudo mount -o loop,offset=xxx /media/dave/disk.img /media/oldinstall
    
  • Dari sana Anda dapat memilih file ceri atau menyalin semua yang ada di atas instalasi Ubuntu baru Anda menggunakan sesuatu seperti:

    sudo rsync /media/oldinstall/ /media/my-new-install/
    
  • Reboot dan Anda harus disambut dengan Anda VMWare tua menginstal, tetapi pada besi kosong. Jika Anda mendapatkan masalah grub yang tidak menyenangkan, Anda dapat memperbaikinya dengan kembali ke Live CD, chroot, dan memperbaiki beberapa hal .


7
Apakah Anda mengetahui alat yang melakukan ini secara otomatis?
the_drow

1
Untuk pengaturan pada Windows / VirtualBox, VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXperintah masih akan berfungsi. Yang diperlukan hanyalah melakukan cd Program Files\Oracle\VirtualBoxsebelum menjalankan perintah pertama.
Aust

2
@Aust saya ragu itu /dev/sdXadalah target yang valid di Windows. AFAIK itu akan menjadi \\Device\Harddisk0atau sesuatu seperti ini.
Danatela

3
VBoxManage internalcommands converttoraw your-virtualbox-disk.vdi /dev/sdXtidak bekerja Di Linux memberikan kesalahan: VBoxManage: error: Cannot create destination file "/dev/sdX": VERR_ALREADY_EXISTS. Penting untuk menggunakan VBoxManageperintah untuk mengirimnya ke gambar terlebih dahulu. Kemudian gunakan DD untuk meletakkan gambar ke disk fisik.
LD James

8

Mungkin itu bukan apa yang Anda minta, tetapi mungkin bisa memenuhi apa yang ingin Anda lakukan.

Karena semua pengaturan Anda disimpan di direktori home Anda, Anda bisa membuat salinan cadangannya ke partisi lain di disk nyata. Setelah Anda menginstal Ubuntu baru pada disk nyata, jalankan saja program cadangan sekali lagi untuk memulihkan direktori home Anda dengan semua pengaturan utuh.

Anda dapat menggunakan program cadangan yang sangat rapi yang disebut Déjà Dup .

Info dari pusat perangkat lunak ubuntu:

Déjà Dup adalah alat cadangan sederhana. Ini menyembunyikan kompleksitas back up Right Way (dienkripsi, di luar situs, dan reguler) dan menggunakan duplikat sebagai backend.

Fitur:

  • Dukungan untuk lokasi cadangan lokal, jarak jauh, atau cloud, seperti Amazon S3 atau Rackspace Cloud Files

  • Enkripsi dan kompres data Anda dengan aman

  • Cadangkan secara bertahap, memungkinkan Anda memulihkan dari cadangan tertentu

  • Jadwalkan cadangan reguler

  • Terintegrasi dengan baik ke desktop GNOME Anda

masukkan deskripsi gambar di sini

Anda akan selesai dalam waktu kurang dari dua jam!

semoga berhasil!


1
Kedengarannya mudah. Bisakah s / o mengkonfirmasi itu benar-benar berfungsi seperti itu?
Mateng

antara lain .... UID (nomor pengguna) mungkin berbeda pada saat itu.
Tomachi

5

Coba UDPCast

Idenya adalah untuk mengalirkan seluruh vmdk Anda dari Virtual Machine ke mesin fisik, di mana ia ditulis ke hdd fisik.

Prosedur diuraikan di bawah ini.

Karena Anda memiliki file vmdk, Anda mungkin memiliki VMWare Workstation yang Anda inginkan, bahkan menyelesaikan Mesin Virtual vmdk ini dilampirkan. Jalankan Mesin Virtual Anda dengan vmdk khusus ini terpasang, tetapi alih-alih boot biasa gunakan live CD PartedMagic untuk boot dari.

Ketika liveCD dimulai, navigasikan ke menu utama dan temukan UDPCast Disk Cloning. Dialognya cukup jelas (lihat tangkapan layar) Layar mulai Kloning Disk UDPCast

Setelah memilih Mesin Virtual ini untuk menjadi sender, Anda harus memilih drive mana yang ingin Anda siarkan (menggunakan notasi Unix, seperti / dev / sda).

Setelah memulai sender, Anda harus memulai receiverjuga. Karena Anda memiliki hdd fisik, saya berasumsi, Anda juga memiliki PC lengkap dengan hdd ini terpasang padanya. Hal yang sama di sini: Anda perlu memulai liveCD dengan UDPCast Disk Cloningmemilih receiverwaktu ini serta hdd fisik yang sesuai.

Perlu dicatat, bahwa Anda harus membuat semua pengaturan yang diperlukan untuk memiliki konektivitas jaringan antara Mesin Virtual Anda dan perangkat keras fisik. Anda harus mengambil tindakan pencegahan yang diperlukan jika vmdk Anda berisi data pribadi, karena kontennya akan mengalir secara efektif melalui jaringan Anda. Hal lain adalah bahwa hdd target Anda harus memiliki kapasitas penyimpanan yang tidak kalah, dari kapasitas vmdk Anda. Jelas, tetapi juga patut dicatat bahwa gambar Anda diletakkan satu-ke-satu pada hdd target Anda dan Anda perlu melakukan operasi yang sesuai dengan gparted atau sejenisnya untuk memanfaatkan kapasitas yang lebih besar dari hdd baru Anda.


Saya ingin mencatat, bahwa metode ini sangat mudah dan relatif mudah dilakukan. Yaitu, satu-satunya langkah persiapan yang perlu Anda ambil adalah menyiapkan LiveCD Anda dengan UDPCast di atasnya atau LiveCD lainnya, yang cukup untuk mengunduh dan menjalankan UDPCast. Jika Anda memiliki beberapa gambar hd virtual, Anda pasti menggunakannya di Mesin Virtual, yang sudah diatur dan siap, di sisi lain Anda telah menyiapkan sistem fisik Anda dan juga siap untuk tugas tersebut.
PF4Public

Masih ada lagi: UDPCast dapat dijalankan langsung dari PXE. udpcast.linux.lu/bootloader.html#pxe
PF4Public

4

Jika Anda sudah menginstal VirtualBox, maka Anda dapat mengonversi file VDI (VirtualBox drive image) ke format IMG dengan menggunakan VBoxManageperintah, kemudian menyalin ke dalam disk fisik, misalnya

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

Kemudian Anda dapat menggunakan ddperintah untuk menyalin file ke partisi fisik:

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

Catatan: Gunakan sudo jika diperlukan. Hati-hati saat menentukan perangkat yang tepat di / dev.


0

Jika Anda memiliki disk fisik baru yang terpasang pada mesin disk virtual VM aktif, Anda dapat mengkonversi VDI ke fisik tanpa konversi perantara, mungkin menghemat banyak waktu & ruang disk. Ini dengan asumsi disk fisik Anda sama atau lebih besar dari ukuran maksimum disk virtual. Dalam kasus saya, tujuannya adalah untuk mengubah VDI ke ZFS zvol, tetapi pendekatannya harus sama dengan perangkat blok apa pun.

Pertama buat file VMDK yang menunjuk ke perangkat blok Anda:

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

Kemudian (dengan VM shutdown!) Anda dapat mengkloning VDI ke VMDK:

VBoxManage clonemedium --existing virtual.vdi physical.vmdk

Itu akan memakan waktu cukup lama ... Setelah selesai, Anda dapat menghapus file VMDK karena hanya digunakan sebagai pointer untuk VirtualBox untuk menemukan perangkat fisik.

Dalam kasus saya, zvol baru berukuran persis sama dengan disk virtual. Mengingat bahwa disk fisik Anda mungkin berbeda, Anda harus menggunakan semacam mekanisme pengubahan ukuran partisi untuk mengisi disk penuh. Gparted atau sesuatu mungkin. Anda harus dapat menunjukkan bahwa pada perangkat fisik / dev / sdX sementara masih terpasang pada mesin VM sehingga Anda tidak perlu menggunakan CD boot host fisik.

Setelah pengubahan ukuran selesai, pop drive di mesin fisik Anda, silangkan jari Anda, dan daya.

Jika Anda ingin tetap menggunakan drive fisik dengan VirtualBox, tetap gunakan VMDK, dan gunakan VBoxManage storageattachuntuk menghubungkannya ke VM.


Sepertinya berfungsi, tetapi data entah bagaimana rusak dan OS tidak bisa boot dengan benar.
Sarge Borsch
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.