Mengapa saya tidak dapat mengubah ukuran VDI dinamis dengan perintah ubahhd?

29

Saya melihat di sini Bagaimana cara meningkatkan ukuran hard disk dari mesin virtual .

Seharusnya bekerja dengan perintah seperti

VBoxManage modifyhd xp.vdi --resize 2000

Ketika VDI memiliki ukuran tetap Anda bisa mendapatkan kesalahan ini:

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Diskusi dan solusi untuk itu ada di sini .

Tapi saya mendapatkan kesalahan itu sementara VDI saya dinamis

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)

Mengapa demikian?

Komunitas
sumber
masalah yang sama di sini dengan Ubuntu 16.04LTS dan vdi dinamis. sangat aneh
Luckyrings

Jawaban:

26

Untuk menggunakan VBoxManage modifyhdkami memiliki peringatan berikut:

  • Drive harus dalam format .VDI atau .VHD.
  • Drive harus dalam format dinamis, bukan diperbaiki (disk tetap dapat dikonversi menjadi dinamis dengan membuat klon).
  • Ukuran drive hanya akan mempengaruhi ukuran logis , bukan ukuran fisik.
  • Mengecilkan drive hingga sama atau di bawah ukuran fisiknya tidak dimungkinkan.
  • Untuk mengecilkan ukuran fisik kita harus mengisi ruang drive yang tidak digunakan 0.
  • VDI Windows mungkin harus didefragmentasi sebelum menyusut ukuran fisiknya.

Pada contoh di atas dicoba untuk mengubah ukuran disk dinamis dengan ukuran fisik 4693 MB hingga 2000 MB, yang tidak dimungkinkan. Karena itu kesalahannya.

Takkat
sumber
1
Saya tersandung di sini juga. sakit sekali.
nicolas
2
Untuk memodifikasi drive dalam format tetap, ikuti jawabannya oleh @ ripper234
Sharun
periksa jawaban saya itu memiliki semua detail yang Anda butuhkan dan saya dapat menyatakan bahwa itu berfungsi
Mauricio Gracia Gutierrez
Saya membuat gambar ini lebih dari dua tahun yang lalu, saya sudah lama lupa itu adalah ukuran tetap dan tidak dinamis. Membacanya dalam jawaban Anda mengingatkan saya. Saya telah menghabiskan lebih dari satu jam mencoba mencari tahu mengapa saya tidak bisa melakukan ini: (... Terima kasih
Madivad
Terima kasih, ini membantu. Untuk linux jangan lupa jalankan pvresizeperintah untuk menggunakan ruang itu untuk linux
Maksim Luzik
24

Solusi ini berhasil untuk saya:

  1. Matikan mesin
  2. Buat drive baru melalui antarmuka admin dengan ukuran yang Anda inginkan
  3. Gunakan clonemedium VBoxManage dengan --existingbendera

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    

Catatan : Sekarang disk baru akan memiliki ruang berlebih sebagai tidak terisi, dan Anda harus menggunakan gparted untuk memperluas ukuran ke maksimum.

Tidak yakin mengapa orang-orang VirtualBox tidak dapat menggunakan hal di atas untuk mengimplementasikan ini alih-alih melemparkan VBOX_E_NOT_SUPPORTED... setidaknya tautan ke ini :)

ripper234
sumber
1
Bagaimana saya bisa mengalokasikan kelebihan ruang di windows?
Ken
4
@Ken tidak yakin jika Anda mengetahuinya; Mulai -> Jalankan -> diskmgmt.msc, klik kanan pada C: (atau apa pun drive utama) dan pilih rentangkan.
Trent
2
ini membantu. Saya tidak menggunakan GUID tetapi dengan nama file drive
Luckyrings
3
@ ripper234 Tiga langkah membutuhkan penjelasan mendalam - untuk orang-orang seperti saya yang tidak begitu yakin apa yang mereka lakukan. Dalam 2) apakah kita membuat disk tetap baru atau apa? .vdi .vdmk ?? Tolong beri contoh yang tepat, mungkin dengan grafik. Juga 3) Apa yang dilakukan clonemedium sebagai lawan clonehd? Dari mana dua pemandu itu berasal - khususnya yang dituju - sudah ada meskipun kita kloning? Terima kasih
mwarren
Terima kasih. Sekarang, saya diarahkan di sini sebagai pengguna Windows (meskipun ini adalah askUbuntu), jadi saya akan menambahkan di sini bahwa, dalam versi Windows dari VBoxManage, Anda harus meletakkan jalur ke hard drive virtual, bukan VM PANDUAN.
Sean Burchett
4

Inilah keseluruhan prosesnya, saya akan mencoba sedetail mungkin

  1. Pastikan ukuran mesin yang akan Anda kembangkan berada dalam kondisi "Shutdown" (bukan "diselamatkan" atau kondisi lainnya)

Dalam kasus saya ini adalah mesin ukuran 32 GB dan akan menyebutnya sebagai VM KECIL

  1. Buat Mesin Virtual baru dengan ukuran yang diinginkan baru

Dalam kasus saya, saya memutuskan untuk membuat Mesin Virtual 70 GB yang baru, sambil memulihkan konten mesin kecil di dalam VM baru ini dan saya akan menyebutnya sebagai VM BESAR

  1. Jalankan perintah VBoxManage list hddsatau Buka Virtual Media Manager untuk mendapatkan GUID dari VM KECIL (asal) dan juga GUID dari VM BESAR (tujuan)

Dengan GUID tersebut, bangun perintah berikut

VBoxManage clonemedium SMALL_VM_GUID LARGE_VM_GUID - ada

Dalam kasus saya ORIGIN - SMALL VM adalah: 39143127-42b6-478a-afb2-5e58f14218b

Dalam DESINASI kasus saya - VM BESAR adalah: bb808b5b-b88c-49b2-a646-3414af906d84

Tentu saja GUID Anda akan berbeda dari milikku

Pastikan Anda tidak membalikkan GUID jika tidak, mesin baru akan mengganti konten mesin Anda yang sudah ada !!!!

Setelah memastikan Anda tidak mencampur asal dengan tujuan jalankan perintah ini:

$ VBoxManage clonemedium 39143127-42b6-478a-afb2-5e58f14218b2 bb808b5b-b88c-49b2-a646-3414af906d84 - ada

0% ... 10% ... 20% ... 30% ... 40% ... 50% ... 60% ... 70% ... 80% ... 90% ... 100%

Media klon dibuat dalam format 'VDI'. UUID: bb808b5b-b88c-49b2-a646-3414af906d84

  1. Mulai VM BESAR baru yang Anda buat pada langkah 2.

  2. Periksa di jendela alat Computer Managment bahwa mesin memiliki ukuran yang lebih besar tidak terpakai / tidak terformat

  3. Jika Anda mau, Anda dapat menjalankan "chkdsk" pada drive C untuk memastikan semuanya siap (ini mungkin membawa Anda dua reboot pada LARGE VM )

  4. Menggunakan gparted-live * .iso, "masukkan" ke mesin virtual baru dan reboot

  5. Boot ke lingkungan gparted

  6. Kembangkan partisi Anda dan simpan perubahan

  7. "Keluarkan" gparted-live * .iso untuk mem-boot lagi ke Windows

  8. Periksa di jendela alat Manajemen Komputer bahwa mesin sekarang memiliki drive C yang lebih besar untuk menyelesaikan masalah spesifikasi Anda

Saya memiliki tangkapan layar dari proses ini tetapi memutuskan untuk tidak memasukkannya karena ini akan membuat jawaban saya menjadi besar dan menakutkan bagi orang-orang yang "terburu-buru" untuk mendapatkan ruang kosong di mesin virtual Windows mereka

Mauricio Gracia Gutierrez
sumber
Terima kasih untuk panduannya. Pada langkah 3, dari mana Anda mendapatkan GUID? Saya tidak yakin apa itu Virtual Media Manager.
A.Lan
3
Sudahlah, saya pikir saya mendapatkannya dariVBoxManage list hdds
A.Wan
@ A.Apakah ini Virtual Media Manager - google.com.co/…
Mauricio Gracia Gutierrez