Ringkasan:
VBoxManage.exe modifyhd --resize
dapat meningkatkan (tetapi tidak mengurangi) ukuran logis dari disk image (ukuran yang dilihat oleh OS tamu).
VBoxManage.exe modifyhd inputfile.vdi --compact
dapat mengurangi ukuran gambar disk fisik (ukuran file gambar pada disk seperti yang terlihat oleh OS host). Namun ini tidak mengubah ukuran disk logis. Perhatikan bahwa ini hanya berfungsi jika ruang kosong telah diberi nol di OS tamu terlebih dahulu.
modifyhd
hanya berfungsi hanya dengan varian format dinamis ("gambar yang dialokasikan secara dinamis").
modifyhd
hanya bekerja dengan format gambar VDI dan VHD.
- Jika Anda menggunakan snapshot, Anda harus mengkloning snapshot VDI terbaru dari subfolder "Snapshots".
Untuk perinciannya lihat bagian 8.23. VBoxManage memodifikasihd dalam manual.
Alasan mengapa mengurangi ukuran disk logis dari VDI belum diimplementasikan adalah untuk mencegah korupsi data yang dapat terjadi dan Anda akan memiliki VM yang tidak dapat di-boot sebagai akibatnya. Oleh karena itu, ketika --resize
opsi digunakan, ukuran disk baru harus lebih besar dari ukuran saat ini. Itu tidak boleh kurang dari atau sama dengan ukuran saat ini. Dengan kata lain disk 40 GB hanya dapat diubah ukurannya menjadi 41 GB atau lebih besar dari itu, tidak dapat diubah ukurannya menjadi 40 GB (itu hanya bodoh) atau 39 GB atau kurang dari itu.
Versi lama VirtualBox membuat file VDI sebagai varian format "tetap". Pengaturan default baru sekarang untuk membuat varian format "dinamis" ketika file VDI (gambar disk virtual) baru dibuat. (Saya menduga ini adalah kasus sejak diperkenalkannya varian format dinamis, versi apa pun yang diperkenalkan.)
Jadi arti dari pesan kesalahan "operasi untuk format ini belum diterapkan" adalah bahwa file VDI Anda menggunakan varian format "tetap". Untuk mengatasi masalah ini, Anda harus mengkloning file VDI Anda menggunakan clonehd
perintah. Untuk melihat varian format file VDI Anda saat ini, Anda dapat menggunakan showhdinfo
perintah.
Contoh Kerja
Tampilkan informasi VDI tentang disk saat ini.
Perintah input: vboxmanage.exe showhdinfo path\inputfile.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi"
UUID: 132e9af1-0428-49f4-bc45-4d84680e17f5
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\VirtualBox VMs\sg2_win7_x64_lab\sg2_win7_x64_lab.
vdi
Storage format: VDI
Format variant: fixed default
Capacity: 40960 MBytes
Size on disk: 40962 MBytes
In use by VMs: sg2_win7_x64_lab (UUID: dcd106b3-7ed6-4f19-ad94-820ab4dc10d3)
C:\Program Files\Oracle\VirtualBox>
Lihat di mana dikatakan "default tetap"? Itu sebabnya ia memuntahkan kesalahan di atas ketika Anda mencoba untuk mengubah ukurannya.
Mengkloning file VDI lama ke file VDI baru.
Perintah input: vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe clonehd "%userprofile%\virtual
box vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" "%userprofile%\virtualbox vms\sg2
_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 34dafa68-3093-4946-926a-8237ea263
e5c
C:\Program Files\Oracle\VirtualBox>
Voa! File lama sekarang telah dikloning ke file baru. Karena pengaturan default di versi baru VirtualBox adalah menggunakan varian format "dinamis", Anda tidak perlu mendefinisikannya secara eksplisit. Meskipun, jika Anda bekerja dengan versi VirtualBox yang lebih lama, maka Anda mungkin ingin mengatur opsi menjadi "dinamis" (jika tersedia) untuk memastikan kompatibilitas dan / atau fleksibilitas yang lebih baik dengan versi VirtualBox yang akan datang.
Tampilkan informasi VDI tentang disk yang dikloning.
Perintah input: vboxmanage.exe showhdinfo path\inputfile_clone.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID: 34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 40960 MBytes
Size on disk: 7806 MBytes
C:\Program Files\Oracle\VirtualBox>
Lihat bagaimana sekarang mengatakan "default dinamis"? Bagusnya!
(Di samping catatan! Alasannya mengatakan 7806 MB sebagai ukuran fisik di sini adalah karena saya telah menggunakan --compact
opsi pada file VDI asli dalam upaya untuk menegakkan konversi ke varian format dinamis. Hanya sesuatu yang saya baca di forum VirtualBox, konon katanya. akan bekerja dengan versi yang lebih lama, jadi saya pikir saya mungkin juga mencobanya. Tidak berhasil.)
Mengubah ukuran disk yang dikloning.
Perintah input: vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi" --resize 51200
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
C:\Program Files\Oracle\VirtualBox>
Keberhasilan! Tidak ada format omong kosong lagi. Ingatlah untuk mengubah ukuran disk yang baru dan dikloning, dan bukan yang asli. Perlu diingat bahwa ukurannya dinyatakan dalam MB. Saya percaya Anda dapat menggunakan mis 51200
serta 50G
(atau mungkin "GB"). Ada juga opsi --resizebyte
yang dapat digunakan untuk mengekspresikan ukuran dalam byte.
Tampilkan informasi VDI tentang disk klon yang diubah ukurannya.
Perintah input: vboxmanage.exe showhdinfo path\inputfile_clone.vdi
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe showhdinfo "%userprofile%\virt
ualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_clone.vdi"
UUID: 34dafa68-3093-4946-926a-8237ea263e5c
Parent UUID: base
State: created
Type: normal (base)
Location: C:\Users\Name\virtualbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab_
clone.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 51200 MBytes
Size on disk: 7806 MBytes
C:\Program Files\Oracle\VirtualBox>
Itu dia! Dari sini yang harus Anda lakukan adalah menambahkan drive kloning ini sebagai VDI baru Anda untuk VM. Anda melakukannya di dalam VirtualBox. Saya tidak akan membahasnya. Jika Anda sudah bisa membaca dan memahami ini sejauh ini maka Anda mungkin tidak perlu panduan lebih lanjut. Anda dapat menghapus file "tetap" lama, atau membiarkannya sebagai cadangan. Pastikan Anda menguji file VDI baru sebelum Anda menghapus file sumber asli.
Catatan! Anda tidak akan langsung melihat ukuran baru dari disk yang dikloning. Anda harus mem-boot VM dengan itu, dan kemudian Anda harus menggunakan alat manajemen partisi Anda untuk memperluas partisi Anda untuk mengisi disk virtual (atau membuat lebih banyak partisi). Untuk Windows, jalankan saja diskmgmt.msc
dan Anda akan dapat memperluas partisi di sana.
Tangkapan layar
Referensi