Saya memiliki mesin virtual dengan sekitar 30 foto di cabang. Jalur pengembangan saat ini adalah 22 foto ditambah disk dasar. Jumlah file tampaknya memiliki dampak sekarang pada IO dan laptop dev yang saya gunakan (tidak tahu apakah itu masalah kinerja disk host dengan ukuran total 140GB lebih dari banyak fragmen, atau hanya fakta bahwa itu adalah memukul sektor yang didistribusikan di banyak file).
Saya ingin menggabungkan cabang pengembangan snapshots saat ini dengan disk dasar, tetapi saya tidak yakin apakah perintah berikut akan menghasilkan hasil yang benar. Saya tidak dapat mem-boot disk ini setelah prosedur selesai (5-6 jam).
vboxmanage clonehd "C:\VPC-Storage\.VirtualBox\Machines\CRM\Snapshots\{245b27ac-e658-470a-b978-8e62137c33b1}.vhd" "E:\crm-20100624.vhd" --format VHD --type normal
Adakah yang bisa mengkonfirmasi apakah ini pendekatan yang benar atau tidak?
virtualbox
vhd
merge
snapshot
Henrik
sumber
sumber
Jawaban:
Apa yang ingin Anda lakukan adalah dari dialog snapshots, pilih snapshot orang tua Anda yang ingin Anda gabungkan semua snapshot sesudahnya menjadi satu VDI.
Dari uraian Anda, sepertinya ini adalah akar dari pohon.
Klik kanan dan pilih 'Hapus Snapshot'.
Ini akan melakukan apa yang Anda inginkan --- itu akan menggabungkan semua perubahan dari semua foto anak menjadi satu VDI.
Selain itu - mengkloning citra disk yang ada dalam snapshot terbaru - juga akan menggabungkan disk yang membedakan dengan induknya (dan induknya, seterusnya, hingga Anda mendapatkan jenis hard disk yang 'normal').
Saya menduga bahwa 'menghapus snapshot' menjalankan perintah clonehd.
Periksa pengaturan VM Anda (khususnya IO APIC diaktifkan / dinonaktifkan) dan pastikan cocok.
sumber
Jika Anda hanya ingin menyimpan satu snaphot, jadikan ini sebagai kondisi Anda saat ini & kemudian ekspor VM & impor kembali. Peralatan yang diekspor tidak menyimpan riwayat potretnya.
Atau Anda bisa menggunakan ini vboxmerge.py script untuk menangani penggabungan untuk Anda. Mengingat jumlah foto yang Anda miliki, saya berharap siklus ekspor / impor menjadi lebih cepat.
sumber
Berikut adalah teknik (diuji pada VirtualBox 4.3.4) yang menggunakan perintah 'Klon' untuk menggabungkan dan memadatkan semua foto ke VM baru yang berisi file VDI tunggal:
Ganti nama VM sehingga Anda dapat menggunakan kembali nama saat ini untuk VM kloning (Anda dapat mengubah nama VM dari tab 'Dasar' pada pengaturan 'Umum').
Klik kanan pada VM dan jalankan perintah 'Klon ...':
Hapus VM lama (klik kanan pada VM dan jalankan perintah 'Hapus ...').
sumber
Jika host Anda adalah Windows atau Anda dapat mengakses file VHD dari windows, ada trik untuk MERGE semua perubahan menjadi induk, grand-orangtua, dll.
Itu menggunakan alat DiskPart dan dua perintah:
select vdisk file="whatever your file is, with full path"
merge vdisk depth=#
Di mana # adalah jumlah level hierarki yang ingin Anda pindahkan, 1 untuk orang tua dirent, 2 untuk grand parent, dll.
Itu melakukannya di tempat, jauh lebih sedikit memakan waktu daripada kloning, dll.
Ingat, setelah menggabungkan semua VHD perantara dapat dihapus (itu tidak menghapusnya untuk Anda) dan jangan lupa untuk melampirkan ke dalam VirtualBox bahwa induk tempat Anda bergabung.
Contoh:
Disk3.vhd adalah anak dari Disk2.vhd, Disk2.vhd adalah anak dari Disk1.vhd
Jika Anda ingin di Disk1.vhd semua perubahan pada Disk3.vhd cukup gunakan
depth=2
dan pilih Disk3.vhd. Jika Anda ingin di Disk1.vhd semua perubahan Disk2.vhd cukup gunakandepth=1
pilih Disk3.vhd.Juga ingat tidak perlu untuk Snapshots VirtualBox jelek, Anda dapat menggunakan DiskPart membuat perintah vdisk untuk membuat disk yang membedakan dari yang sudah ada (yang juga bisa menjadi disk pembeda, dll), juga dapat membuat pohon besar.
Untuk semua yang lain: Poster ini menggunakan VHD (bukan VDI) sehingga dapat menggunakan alat asli seperti DiskPart dan Disk Managment untuk mengakses disk tersebut dari Tamu (pada Host, jika Host adalah Windows).
Bagi Anda, poster: Ingatlah untuk selalu memiliki BackUp penuh sebelum Penggabungan, klon VirtualBox tidak berfungsi, itu membuat file baru (salin saat menulis), tetapi gabungan DiskPart berfungsi di tempat (ubah file, jangan buat yang baru).
Harapan yang dapat memberikan pendekatan berbeda karena VHD / VHDX sedang digunakan (tidak berlaku untuk VMDK, VDI, dll, hanya untuk Windows Host).
Catatan: Windows 7 dan Atas, XP dan Vista dapat me-mount VHD dengan alat M $ eksternal tetapi DiskPart tidak memiliki dukungan VHD pada XP & Vista ... semua ini juga berfungsi pada edisi Windows HOME (7 dan Atas), tidak perlu untuk Edisi SERVER.
sumber