Bagaimana cara meningkatkan ukuran hard disk mesin virtual?

257

masukkan deskripsi gambar di sini

Saya kehabisan ruang di mesin virtual WinXP saya, yang saya hanya berikan ruang 10 GB ketika saya membuatnya. Apakah ada cara mudah untuk meningkatkannya menjadi, katakanlah, 20 GB? Saya tidak bisa melihat opsi yang jelas dalam pengaturan VirtualBox.


Saran di bawah ini memberikan kesalahan ini

wim@wim-ubuntu:/media/data/winxp_vm$ VBoxManage modifyhd wim.vdi --resize 20000
VBoxManage: error: Cannot register the hard disk '/media/data/winxp_vm/wim.vdi' {46284957-2c09-4e70-8a49-bfbe0f7f681d} because a hard disk '/home/wim/VirtualBox VMs/winxp_vm/wim.vdi' with UUID {46284957-2c09-4e70-8a49-bfbe0f7f681d} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp

Menghapus .vdi dari VirtualBox sebelum memanggil perintah VBoxManage, lalu menambahkannya kembali, berhasil. Tapi sekarang saya tidak bisa boot mesin virtual, saya mendapatkan layar yang mengkhawatirkan ini:

masukkan deskripsi gambar di sini

Omong-omong, katanya FATAL: Could not read from the boot medium! System halted.


Vdi harus dipasang kembali ke VM setelah perintah VBoxManage. Selanjutnya, partisi harus diubah ukurannya dari jendela DALAM, karena Anda akan memiliki ruang kosong ini:

masukkan deskripsi gambar di sini

Saya dapat mengubah ukuran partisi dengan mudah menggunakan sedikit freeware yang disebut EASEUS Partition Master 9.1.0 Home Edition .

wim
sumber
3
Masalah Anda adalah Anda telah menautkan disk ke lokasi '/ media / data' dan tidak berada di lokasi asli '/ home / wim / VirtualBox VMs'. Saya sudah menjawab dengan bagaimana saya memperbaikinya.
stolsvik
1
Saya telah merinci pengalaman saya di sini: kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size jawaban "diterima" di bawah ini jauh dari adil.
kmonsoor
Ada kemungkinan lain "menyalin vdi yang ada" ke "vdi kosong baru, yang ukurannya lebih besar dari yang ada" ( merujuk- justintung.com/2011/01/06/… )
parasrish
juga, perhatikan bahwa, hanya mengubah ukuran mungkin tidak membantu, karena ukuran "vdi" akan meningkat, tetapi berdasarkan pada "vm-os-installation", partisi utama Anda tetap sama, dan ruang yang baru dialokasikan biasanya ditampilkan "tidak dialokasikan" ". Maka Anda perlu melakukan "alokasi ulang partisi" (Lihat tautan di atas).
parasrish

Jawaban:

325

Buka terminal dan arahkan ke folder dengan gambar disk VirtualBox, kemudian gunakan perintah berikut:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

mengganti YOUR_HARD_DISKdan SIZE_IN_MBdengan nama gambar Anda dan ukuran yang diinginkan. sudomungkin diperlukan di beberapa mesin atau Anda mungkin mengalami kesalahan. Jawaban ini dan penjelasan yang lebih lengkap ada di sini, di webupd8 . Terima kasih kepada Andrew di sana karena mengirim jawaban ini.

Setelah mengubah ukuran, ruang hard drive virtual tambahan perlu dipartisi dan diformat agar tamu dapat menggunakannya. Ini dapat dilakukan dengan gparted dengan mem-boot tamu dari ISO langsung. Kami juga dapat mengubah ukuran partisi yang ada menggunakan gparted. Untuk ini, kita mungkin perlu menonaktifkan /swapdan membuat partisi swap baru.

Tom Brossman
sumber
20
+1. Hanya menggunakan ini untuk meningkatkan ukuran disk Windows 7 saya dari 20 hingga 30 GB, dan itu bekerja dengan sangat lancar (tidak perlu membatalkan pendaftaran, dll.). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Pada awalnya Windows tidak mendeteksi peningkatan ruang, tetapi setelah poweroff melakukannya, dan kemudian saya dapat menggunakan alat Manajemen Disk bawaan untuk meningkatkan ukuran partisi C: saya.
Jonik
3
+1, Ini tentu saja merupakan cara terbersih untuk melakukannya.
Starx
20
@ asd Mengubah ukuran disk tidak cukup, Anda juga perlu mengubah ukuran partisi.
Bruno
5
Saya pikir dalam versi terbaru dari VirtualBox .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720sekarang. modifyhdjuga berfungsi - ada kompatibilitas dengan perintah yang lebih lama.
TranslucentCloud
2
Saya baru saja mengubah ukuran file vdi dari 25G menjadi 120G, tetapi manajer disk sistem Windows7 masih tidak dapat melihat ruang yang tidak terisi. Apakah disebabkan oleh file snapshot (saya memiliki snapshot sebelumnya), tetapi ketika saya mencoba untuk menghapus snapshot, laporan virtualbox macet, jadi saya tidak dapat menghapus snapshot. Ada ide? Tamu saya win7 masih melihat 25G. Terima kasih.
ollydbg23
25

Berikut ini bekerja untuk saya:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Namun, saya mengerti bagaimana jarak tempuh dapat bervariasi :-) Sejauh mengubah ukuran partisi, pada Windows 7, saya dapat mengubah ukuran pada layar yang Anda tunjukkan dengan mengklik kanan pada drive C: di panel bawah dan memilih memperpanjang volume.

Layar manajemen komputer

Richard Povinelli
sumber
12
sudoadalah tidak diperlukan. Ini dapat merusak izin di direktori home Anda, mengharuskan Anda untuk menggunakan sudovirtualbox yang merupakan ide buruk .
Lekensteyn
1
@Lekensteyn: Senang mengetahui bahwa itu tidak perlu. Saya menggunakannya karena yang lain mengatakan itu tidak berfungsi tanpa menjadi root. Sejauh korupsi izin berjalan, chmod bekerja dengan baik untuk memperbaiki kesalahan tersebut.
Richard Povinelli
@Lekensteyn: chown akan memperbaiki kesalahan kepemilikan. Saya menyebutkan chmod dan chown, karena saya harus memperbaiki masalah yang Anda rujuk berkali-kali :-)
Richard Povinelli
2
Ini bagus untuk Windows, tetapi jika Anda memiliki OS tamu Linux, tautan ini dapat membantu mengubah ukuran partisi: forums.virtualbox.org/viewtopic.php?f=35&t=50661
Jon
Jika Anda menjalankan windows di dalam linux Anda harus mengikuti opsi ini, dan memperpanjang disk, jika tidak windows tidak akan menambah ruang tambahan yang kami tambahkan
Ajith R Nair
18

Wim, saya pikir Anda harus membatalkan registrasi dari Vbox terlebih dahulu. File, Media Manager, Klik pada Anda hdd, dan batalkan registrasi. Kemudian coba lagi.

tiempjuuh
sumber
2
Tidak diperlukan di Linux dalam VirtualBox. Hanya harus mematikan OS tamu sepenuhnya.
Undervers
15

Anda juga dapat melakukannya menggunakan menu VirtualBox:

Pilih File->Virtual Media Manager ...

Sebuah jendela akan terbuka: masukkan deskripsi gambar di sini

Pilih disk Anda, dan pilih Properties. Sekarang gerakkan slider di bagian bawah.

Setelah Anda memulai mesin virtual, windows tidak akan mengenali ruang baru.

Di windows, buka Computer Management(cari di menu mulai), pilih Storage-> Disk Managementdi menu sebelah kiri. Pilih partisi Anda (mungkin C :), klik kanan padanya dan pilih Extend Volume .... Sekarang cukup klik melalui wizard dan Anda selesai.

lenooh
sumber
Apa yang perlu Anda lakukan Releasesebelum itu? Saat ini slider berwarna abu-abu. Atau apakah Anda memilih partisi dinamis?
Royi
Royi: ketika Anda membuat disk virtual, pastikan itu memiliki ukuran yang dinamis.
lenooh
10

Setelah mengubah ukuran dan tidak dapat melihat ukurannya di mesin windows XP guest, saya harus

  1. mengkloningnya
  2. ubah ukurannya dengan "VBoxManage modifiedhd winxppro \ Clone.vdi --resize 30720" dan semuanya bekerja

Saya melihat di forum lain bahwa snapshots dapat mengganggu pengubahan ukuran dan tidak dapat menghapus semua snapshots untuk kesalahan berbeda yang saya dapatkan, satu-satunya solusi yang ditemukan bagi saya adalah mengkloningnya untuk menghapus snapshots dan kemudian mengubah ukurannya, dan semuanya bekerja. Untuk mengubah ukuran jendela luar, cd boot gparted yang dapat ditemukan di sini dapat membantu

Philippe Gachoud
sumber
6

Saya memiliki masalah yang sama ketika saya memindahkan disk, dan mengganti yang asli dengan symlink. Ini berfungsi dengan baik setelah itu, tetapi Anda mengalami masalah dengan perintah 'memodifikasihd', karena itu tampaknya mengkanonik jalur ke file vdi ketika bekerja dengannya. Ini membuatnya tampak seperti Anda mencoba untuk menambahkan disk baru dengan UUID yang sama tetapi pada jalur yang berbeda - atau sesuatu seperti itu.

Ada dua masalah:

  1. Disk harus dihapus dari VM yang menggunakannya, tetapi kemudian juga "dari daftar VirtualBox dari hdds". Ini diperbaiki dengan perintah 'closemedium', yang menghapusnya dari daftar itu.

  2. Disk yang akan diubah ukurannya adalah "disk tetap", bukan "dinamis", dan hanya disk dinamis yang dapat diubah ukurannya. Itu diperbaiki dengan perintah 'klon' (klon itu dinamis), dan kemudian mengubah ukuran disk yang dihasilkan.

Ini adalah log saya untuk bagaimana hal itu dilakukan. Perhatikan bahwa saya tidak menjalankan root , kecuali ketika saya kemudian mengubah ukuran partisi dan sistem file.

HAPUS ASOSIASI KE DISK DARI VM.

MASALAH MASIH BERTAHAN:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
VBoxManage: error: Cannot register the hard disk '/datadisk/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' {6cd99209-e4db-4178-a6c2-53f9581b1fad} because a hard disk '/home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' with UUID {6cd99209-e4db-4178-a6c2-53f9581b1fad} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp

Ah, disk masih "di sistem":

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

UUID:        6cd99209-e4db-4178-a6c2-53f9581b1fad
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi
State:       created
Type:        normal

Hapus / hapus disk dari daftar disk VirtualBox ("closemedium"):

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

Coba ubah ukurannya lagi:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Sial, "ukuran tetap" TIDAK BEKERJA! 'clonehd' untuk penyelamatan, karena itu meninggalkan disk kloning 'dialokasikan secara dinamis':

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage clonehd TestInception\ 64\ bit.vdi TestInception\ 64\ bit-cloned.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 8e237500-173b-401a-9e63-9e64da110da9

SEKARANG LAKUKAN RESIZE (instan):

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd --resize 8192 TestInception\ 64\ bit-cloned.vdi 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

MAKA LAMPIRAN UNTUK BEBERAPA VM, UNTUK MENYESUAIKAN. Ini dilakukan sebagai root. Berasumsi bahwa Anda hanya memiliki satu partisi dan mungkin swap.

# fdisk /dev/sdb  # <- The extra disk, just attached to be resized
// The procedure looks like this:
// m - print help
// p - print table
// d ... - delete partition (delete both if you have root and swap)
// n - new partition (create root/first partition starting on exact same sector as before, typically 2048, but ends on last, or last minus swap)
//  ... n.. (.. then add the swap partition. Calculate how many sectors using original table)
// t - change type of partition (swap partition, if any, to 82 - not 83 which is "normal Linux").
// w - write partition table (write out, with the resized partition)

# e2fsck -f /dev/sdb1

e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 99918/122160 files (0.3% non-contiguous), 471032/487936 blocks

# resize2fs /dev/sdb1

resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/sdb1 to 1965824 (4k) blocks.
The filesystem on /dev/sdb1 is now 1965824 blocks long.
stolsvik
sumber
Ini berhasil bagi saya, ikuti panduan di sini: yinfor.com/2015/05/…
marijnz0r
4

Ini bekerja untuk saya dengan Virtualbox 5.2.6 diinstal pada Ubuntu 16.04 Host Machine dan Windows 10 Guest: buka Virtualbox Manager, klik Global Tools (sudut kanan atas) dan pilih Virtual Media Manager. Klik pada Tab Hard Disk dan pilih OS Tamu Anda. Di bagian bawah kotak klik pada Tab Atribut. Di bagian bawah Anda dapat melihat ukuran Disk Virtual, dan dengan bilah geser Anda dapat menambah ukuran sesuai keinginan Anda. (Anda hanya dapat menambah, tidak mengurangi ukuran dengan metode ini). Klik Terapkan. Mulai OS Windows Guest Anda, buka Computer Management, klik kanan pada C: Drive, dan pilih Extend Volume untuk memperpanjang sistem file dengan bagian yang tidak terisi.

Itu yang harus saya lakukan, bekerja dengan sempurna untuk saya.

Judex
sumber
Bekerja dengan baik. Bukankah ini jawaban yang diterima, setidaknya untuk versi terbaru dari VirtualBox?
AlwaysLearning
2

Cara yang pasti untuk melakukannya adalah melakukan hal yang sama seperti pindah ke hard drive yang lebih besar yang tidak berjalan di VM. Pertama-tama gunakan ccleaner atau program serupa di XP untuk membersihkan semua file sampah yang ada. Kemudian buat HDD virtual sekunder dengan ukuran yang Anda inginkan. Boot dengan clonezilla ISO di drive ODD virtual Anda dan clone bersama dengan opsi 'resize to new partisi size' yang dipilih. Kemudian atur HDD Virtual baru sebagai primer, dan jangan hapus yang lama sampai Anda tahu itu bekerja.

xyzzyman
sumber
2

Saya menerima kesalahan yang sama sampai saya menggunakan sudo untuk menjalankan perintah, kemudian bekerja dengan sempurna, masih perlu partisi yang tumbuh dari dalam tamu untuk menggunakan ruang tambahan.

JJinCO
sumber
Beberapa orang melaporkan hal ini menyebabkan dir home memiliki izin yang buruk
Jonathan
2

Pastikan Anda masuk sebagai pengguna dengan izin menulis ke file gambar disk. Lalu lari

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Bekerja untuk saya saat pertama kali bertanya

tindase
sumber
1
Apakah Anda harus menginstal ulang / memformat ulang / partisi ulang? atau apakah itu baru boot kembali?
Jonathan
2

Jika mesin host Anda adalah windows, maka Anda dapat menjalankan perintah berikut untuk menambah atau mengurangi ukuran disk vdi di kotak virtual:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\your_user_name\VirtualBox VMs\Ubuntu18LTS\Ubuntu18LTS.vdi" --resize 20000

Dalam perintah di atas, ganti your_user_name dengan pengguna windows nyata dan 20000 adalah ukuran disk MB.

Manish Jangir
sumber
1

Sebagai soal fakta, tampaknya modifyhdsendirian saja tidak ada gunanya bagimu dalam beberapa kasus. Saya benar-benar memperluas vdi WinXP saya dengan mengkloning gambar setelah ekspansi.

Berikut panduan langkah demi langkah lengkap yang bekerja untuk saya beberapa minggu yang lalu: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/

0x61696f
sumber
Bisakah Anda jelaskan langkah-langkahnya di sini? Jawaban dengan sedikit lebih banyak daripada tautan ke situs lain biasanya tidak disukai di sini, dan dapat dihapus .
Tom Brossman
1
Nah, Anda perlu memahami apa yang dilakukan modifikasiHd, yang tidak lebih dari memperluas disk virtual yang mendasarinya, itu saja. Anda masih perlu memperluas sistem file yang ada di dalamnya.
Marcin Kaminski
1

Berikut adalah cara untuk mengubah ukuran disk VirtualBox Anda, terlepas dari apakah itu format tetap atau disk format dinamis. Secara khusus, ini mencegah kesalahan ini:

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

⚠️ Cadangkan disk virtual. Anda tidak pernah tahu apa yang salah.

Di host Anda:

  1. Buka jendela terminal.

    Di Windows: Buka prompt perintah cmd.

  2. Pergi ke direktori dengan disk virtual yang ingin Anda ubah ukurannya. Sebagai contoh:

    cd "My VMs"
  3. Buat disk VirtualBox baru dengan nama file yang Anda inginkan, ukuran (dalam megabita) dan format (baik Standard(dinamis) atau Fixed). Misalnya, untuk membuat disk format tetap 50 GB bernama MyNewDisk.vdi:

    VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed

    Jika VBoxManagetidak dikenali sebagai perintah, tentukan path lengkap untuk itu. Itu dapat ditemukan di direktori instalasi VirtualBox. Pada Windows perintah di atas akan menjadi:

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
    
  4. Salin disk asli ke disk baru.

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
  5. Mengubah ukuran selesai! Anda dapat memeriksa properti disk baru jika Anda ingin:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
  6. Ubah mesin virtual untuk menggunakan disk baru sebagai gantinya.

Selanjutnya, pada OS tamu Anda, Anda perlu mengubah ukuran partisi untuk menggunakan ruang yang baru tersedia.

Daniel AA Pelsmaeker
sumber
1

Bagi mereka yang memiliki Windows pada VHD, seperti yang saya lakukan, pertama-tama konversikan ke VDI dengan mengkloning dengan perintah Linux berikut. (Catatan, Windows VM dimatikan.)

VBoxManage clonehd Windows10.vhd Windows10.vdi --format vdi

Ini akan menggandakan vhd.

Kemudian VDI dapat diubah ukurannya dengan yang berikut ini. Perhatikan bahwa VDI tidak akan benar-benar tumbuh sampai digunakan.

VBoxManage modifyhd Windows10.vdi --resize 80000

Setelah memperbaiki pemasangan penyimpanan di perangkat lunak host VM, dan menyalakan VM, Windows melakukan boot, tetapi partisi masih akan berukuran sama. Google untuk alat Windows yang dapat mengubah ukuran partisi drive C. Saya menggunakan EaseUs Partition Master untuk menumbuhkan partisi drive C ke ukuran baru saya.

Akhirnya, VHD dapat dihapus.

jws
sumber