Saya ingin mengubah mesin fisik yang menjalankan MS Windows 7 menjadi mesin virtual VirtualBox. Ini mudah, saya telah melakukan ini sebelumnya, tetapi kali ini saya membutuhkan ukuran virtual / kapasitas disk untuk menjadi ukuran yang tetap dan lebih kecil .
Itu perlu diperbaiki karena saya akan menginstal enkripsi disk PGP untuk alasan kepatuhan. Ini akan memperluas disk dinamis ke ukuran maksimum.
Selain kasus khusus ini ada alasan lain untuk menginginkan disk lebih kecil dan diperbaiki. Apakah pengalaman saya. Jika Anda menjalankan misalnya membangun server Jenkins pada disk yang berkembang secara dinamis, Anda dapat melihat disk tersebut berkembang dengan cepat ke ukuran maksimumnya sementara di OS guest penggunaan ruang disk stabil dan ada banyak ruang kosong.
Menggunakan Disk2vhd saya telah membuat file vhdx. File ini saya konversikan ke format vdi.
vboxmanage clonehd --format VDI MSWIN7.VHDX MSWIN7.vdi
Konon dengan vdi Anda bisa mengurangi ukuran / kapasitas virtual dengan perintah yang mirip dengan
vboxmanage modifyhd MSWIN7.vdi --resize 160000
Saya menemukan bahwa ini tidak berhasil. Bahkan jika Anda mencoba varian, Anda secara konsisten akan mendapatkan pesan kesalahan seperti:
Status kemajuan: VBOX_E_NOT_SUPPORTED VBoxManage: error: Ubah ukuran operasi hard disk untuk format ini belum diimplementasikan!
Di bawah ini adalah tata letak disk dari vdi disk saya. Saya menambahkan ini ke VM Ubuntu untuk melihatnya menggunakan Gparted dan CloneZilla. Kapasitas sekitar 300GB. 145GB yang tidak dialokasikan. Digunakan sekitar 153GB.
Saya ingin mengecilkan kapasitas menjadi sekitar 160GB. Ini harus cukup sesuai /dev/sdb1
dan /dev/sdb2
.
BTW, saya mencoba CloneZilla tetapi juga sepertinya tidak suka mengecilkan kapasitas ke disk yang lebih kecil. Saya mencoba berbagai pengaturan di CloneZilla tetapi tidak berhasil.
Bagaimana saya bisa mengurangi ukuran / kapasitas virtual?
sumber
vboxmanage clonehd "source-disk.vdi" "new-disk.vdi" --existing
menghancurkan tabel partisi pada gambar target.Pada akhirnya saya berhasil memecahkan teka-teki ini dengan cara mudah yang tidak terduga menggunakan utilitas baris perintah yang telah diinstal
dd
lihat Kloning Disk . Seperti yang ditunjukkan di bawah ini saya sekarang memiliki drive 160GB saya di OS tamu saya disimpan dalam file VirtualBox vdi 160GB tetap.Saya memecahkannya menggunakan langkah-langkah berikut:
MSWIN7.vdi
dengan MS Windows 7 ke Ubuntu VM sebagai disk kedua./dev/sda1
dengan menjalankan Ubuntu VM,/dev/sdb2
dengan sumberMSWIN7.vdi
dan/dev/sdc1
dengan vdi baru./dev/sdc
. CloneZilla melakukan ini untukku. Itu tidak menyalin data tetapi membuat partisi yang saya inginkan. Tentu saja Anda dapat melakukan ini secara manual.sdb
kesdc
dengandd
perintah yang mirip dengansudo dd if=/dev/sdb of=/dev/sdc
. Perintah diakhiri dengan pesan error no space left, yang diharapkan. Ini saya abaikan karena ini hanyalah ruang yang tidak terisi yang gagal disalin.Saya pikir mungkin untuk menjalankan perintah untuk setiap partisi. Mungkin lebih baik dan tidak akan menampilkan pesan kesalahan.
sudo dd if=/dev/sdb1 of=/dev/sdc1
dansudo dd if=/dev/sdb2 of=/dev/sdc2
.sumber
Saya percaya solusi ini sangat berbahaya! Itu bergantung pada semua file yang berada di 153 GB pertama dari partisi 300 GB asli. Perintah dd tidak menyalin file. Ini hanya menyalin SEMUA blok secara berurutan. Jadi, jika Anda kurang beruntung memiliki file penting SETELAH cutoff 160 GB, dd tidak akan tahu untuk menyalinnya.
Solusi khas yang saya lihat di banyak, banyak posting adalah untuk menghidupkan VM Windows dan menggunakan beberapa kombinasi alat defrag dan alat administratif untuk menggabungkan semua file ke depan disk - kesulitannya adalah banyak alat defrag tidak bergerak tidak bergerak. File-file sistem Windows (saya harus mematikan System Recovery untuk menghapus 7 GB disk yang tidak dapat dipindahkan), yang berada di suatu tempat di tengah ruang yang Anda coba konsolidasi.
Setelah Anda menggabungkan file ke depan disk (MyDefrag adalah alat freeware yang menyediakan tampilan di mana pada disk file Anda berada), Anda harus mengurangi ukuran partisi Windows Anda. Saya menggunakan alat diskpart dengan opsi menyusut.
Pada titik ini, Anda dapat menggunakan dd untuk menyalin partisi yang sekarang lebih kecil ke vdi baru.
Saya juga telah menggunakan vboxmanage modifymedium win10.vdi --compact, pada host Linux saya, tetapi saya pertama-tama harus menjalankan sdelete.exe dalam sistem Windows untuk menghapus semua ruang yang tidak digunakan terlebih dahulu (sdelete -zc :). Menggunakan vboxmanage untuk memadatkan file vdi yang ada memungkinkan Anda melakukan semuanya di tempat (tetapi selalu memiliki cadangan).
sumber
Dalam kasus saya, saya memiliki VM windows dengan 50GB vdi untuk menyusut menjadi 20GB.
Saya sudah mencoba solusi Andre Figueiredo tapi saya punya masalah dengan kloning
vdi
.Ketika saya menerapkan solusi Andre Figueiredo dan melampirkan menyusut
vdi
ke VM, saat boot, Virtualbox berhenti dengan kesalahan I / O.Mungkin ini terkait dengan
btrfs
sistem file saya (saya dengarbtrfs
menyebabkan masalah dengan Vritualboxvdi
).Solusi saya:
Saya mencoba solusi yang berbeda untuk mengecilkan disk VM (
vdi
), bernama OVdi , ( OVdi memiliki ukuran disk 50GB, partisi ntf tunggal dengan ruang kosong 40GB).Mari kita ikuti langkah-langkah ini (ini adalah kasus saya, Anda dapat mengadaptasi / menciptakan berbagai nama vdi ):
hentikan VM (poweroff)
buat disk baru (
vdi
) dengan nama DVdi ukuran yang diinginkan (20GB kasus saya ..)pasang DVdi ke VM
boot VM dan instal utilitas EaseUS Backup Free
Jalankan EasyUS dan gunakan fungsi EasyUS Clone (itu mengkloning OVdi MBR, dan partisi ntfs dari OVdi dengan menyusutkan ke disk DVdi baru )
Matikan VM
Lepaskan OVdi dari VM
Periksa apakah DVdi adalah perangkat boot pertama untuk VM
reboot VM
Selamat bersenang-senang
Jangan lupa untuk menghapus volume OVdi .
Mengikuti langkah-langkah ini saya berhasil mengurangi ukuran disk VM dari 50GB menjadi 20GB
sumber
Seperti yang disebutkan orang lain, jawaban Andre Figueiredo berdasarkan keberuntungan karena tidak ada jaminan bahwa "X gb pertama" ruang adalah ruang Anda, kecuali jika Anda defrag, dalam hal ini masih berisiko.
Jawaban Paul Hursky jauh lebih aman. Saya akan mencantumkan beberapa langkah tambahan yang saya lakukan (perhatikan ini untuk Windows, milik saya adalah XP tetapi juga berfungsi untuk orang lain):
1) Dapatkan edisi gratis "MiniTool Partition Wizard Free 12" di tautan ini
2) Pasang di dalam OS tamu dan sesuaikan ukuran drive Anda, tinggalkan ruang bernafas hanya untuk aman (jangan menariknya sepanjang jalan kembali ..). Karena Anda kemungkinan besar mengubah ukuran hard drive OS saat ini, itu akan memberi Anda opsi untuk memulai kembali dan melakukan tindakan, lakukan ini.
3) Sekarang menggunakan program Partisi MiniTool yang sama, pilih ruang Anda sekarang tidak terisi (di bawah
*:
) -> Klik Kanan -> Hapus Partisi -> Isi Sektor dengan Nol (Cepat).4) Sekarang dengan aman mematikan OS tamu. Pergi ke folder VirtualBox di mana VBoxManage.exe ada, buka cmd di jalur ini dan jalankan ini:
5) Dan sekarang semuanya seharusnya bekerja secara ajaib. Ketika Anda selanjutnya membuka OS tamu, itu akan menjalankan check disk, LET IT RUN, ia menemukan "file yatim" yang tampak seperti file sistem.
sumber