Sanal makinenin sabit disk boyutunu nasıl artırabilirim?


257

görüntü tanımını buraya girin

WinXP sanal makinemde yer kalmadı, bu makineyi oluştururken sadece 10 GB alan verdim. Bunu 20 GB'a çıkarmanın kolay bir yolu var mı? VirtualBox ayarlarında bariz bir seçenek göremiyorum.


Aşağıdaki öneri bu hatayı veriyor

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

VBoxManage komutunu çağırmadan önce .vdi dosyasını VirtualBox'tan kaldırmak, sonra tekrar eklemek başarılı oldu. Ancak şimdi sanal makineyi ön yükleyemiyorum, bu endişe verici ekranı açıyorum:

görüntü tanımını buraya girin

Bu arada, diyor FATAL: Could not read from the boot medium! System halted.


VBox, VBoxManage komutundan sonra VM'ye yeniden bağlanmalıdır. Ayrıca, bu boş alana sahip olduğunuz için bölmenin WITHIN pencerelerinden yeniden boyutlandırılması gerekir:

görüntü tanımını buraya girin

EASEUS Partition Master 9.1.0 Home Edition adlı ücretsiz yazılımı kullanarak bölümü kolayca yeniden boyutlandırabilirdim .


3
Sorununuz, diski bir '/ media / data' konumuna işaretlemiş olmanız ve orijinal '/ home / wim / VirtualBox VM'lerinin konumunda bulunmamasıdır. Bunu nasıl düzelttiğime cevap verdim.
stolsvik

1
Burada deneyimimi ayrıntılı olarak anladım : kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size Aşağıdaki "kabul edilen" cevabım doğru olmaktan çok uzak.
kmonsoor

"Varolan vdi'yi" "boyutu varolandan daha büyük olan yeni bir boş vdi'ye" kopyalamak "için başka bir olasılık daha var ( başvurulardahaberintung.com/2011/01/06/… )
parasrish

ayrıca, "yeniden boyutlandırmanın" "vdi" boyutu artacağı için, sadece yeniden boyutlandırmanın yardımcı olamayacağını, ancak "vm-os-kurulumuna" dayanarak, birincil bölümünüzün aynı kaldığını ve yeni tahsis edilen alanın genellikle "ayrılmamış" olarak gösterildiğini unutmayın. ". Bu nedenle, "bölüm yeniden tahsisini" yapmanız gerekir (yukarıdaki bağlantıya bakınız).
parasrish

Yanıtlar:


325

Bir terminal açın ve VirtualBox disk görüntüsünün bulunduğu klasöre gidin, ardından aşağıdaki komutu kullanın:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

değiştirilmesi YOUR_HARD_DISKve SIZE_IN_MBgörüntü adı ve istenilen boyutta. sudobazı makinelerde gerekli olabilir veya bir hatayla karşılaşabilirsiniz. Bu cevap ve daha ayrıntılı bir açıklama burada, webupd8'de . Andrew'a bu cevabı gönderdiği için teşekkür ederiz.

Yeniden boyutlandırdıktan sonra, ekstra sanal sabit disk alanının , konuk tarafından kullanılabilmesi için bölümlendirilmesi ve biçimlendirilmesi gerekir. Bu, konuğu canlı bir ISO'dan çekerek gparted ile yapılabilir. Gparted kullanarak mevcut bölümü de yeniden boyutlandırabiliriz. Bunun için /swapyeni bir takas bölümünü devre dışı bırakıp oluşturmamız gerekebilir .


20
+1. Bunu Windows 7 diskimin boyutunu 20'den 30 GB'a çıkarmak için kullandım ve sorunsuz çalıştı (kayıt dışı bırakma vb. Gerekli değil). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Windows ilk başta artan alanı algılayamadı, ancak bir güç kaybından sonra, C: bölümümün boyutunu artırmak için yerleşik Disk Yönetimi aracını kullanabildim.
Jonik

3
+1, Bu kesinlikle yapmanın en temiz yoludur.
Starx,

20
@ Asd Disk boyutunu değiştirmek yeterli değil, ayrıca bölümü yeniden boyutlandırmanız gerekiyor.
Bruno

5
VirtualBox'ın son sürümlerinde .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720şimdi olduğunu düşünüyorum . modifyhdyine de çalışır - daha eski komutlarla geriye dönük uyumluluk vardır.
TranslucentCloud

2
25G'den 120G'ye vdi dosya boyutunu yeniden boyutlandırdım, ancak Windows7 sisteminin disk yöneticisi hala ayrılmamış alanı göremiyor. Neden bir anlık görüntü dosyasından kaynaklanıyor (daha önce bir anlık görüntüsüm var), ancak anlık görüntüyü silmeye çalıştığımda, sanal kutu raporu çöküyor, bu yüzden anlık görüntüyü silemiyorum. Herhangi bir fikir? Misafirim win7 hala 25G görüyor. Teşekkürler.
ollydbg23

25

Aşağıdaki benim için çalıştı:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Bununla birlikte, kilometrenin nasıl değişebileceğini anlıyorum :-) Bölmeyi yeniden boyutlandırırken, Windows 7'de, alt paneldeki C: sürücüsüne sağ tıklayarak ve genişletme birimini seçerek gösterdiğiniz ekranda yeniden boyutlandırmayı başardım.

Bilgisayar yönetimi ekranı


12
sudoolduğu değil gerekli. Ana dizininizdeki izinleri bozabilir ve sudobu, kötü bir fikir olan sanal kutu için kullanmanızı gerektirir .
Lekensteyn

1
@Lekensteyn: Gerekmediğini bilmek güzel. Bunu kullandım çünkü diğerleri root olmadan çalışmadığını söyledi. İzin bozulmalarına kadar chmod bu hataları düzeltmek için iyi çalışıyor.
Richard Povinelli

@Lekensteyn: chown mülkiyet hatalarını düzeltir. Chmod ve chown'dan bahsediyorum, çünkü birçok kez başvurduğunuz sorunu düzeltmek zorunda kaldım :-)
Richard Povinelli

2
Bu, Windows için harika, ancak bir Linux konuk işletim sisteminiz varsa, bu bağlantı bölümleri yeniden boyutlandırmanıza yardımcı olabilir: forums.virtualbox.org/viewtopic.php?f=35&t=50661
Jon

Linux içinde pencere kullanıyorsanız, bu seçenekleri izlemeniz ve diski genişletmeniz gerekir, aksi takdirde pencereler eklediğimiz ilave alanı eklemez
Ajith R Nair

18

Wim, bence önce Vbox'tan kaydını silmen gerekecek. Dosya, Medya Yöneticisi, size hdd tıklayın ve kaydını kaldırın. O zaman tekrar dene.


2
VirtualBox'da Linux'ta gerekli değildir. Sadece önce konuk işletim sistemini tamamen kapatmak zorunda kaldım.
17:17

15

VirtualBox menüsünü kullanarak da yapabilirsiniz:

Seç File->Virtual Media Manager ...

Bir pencere açılacaktır: görüntü tanımını buraya girin

Diski seçin ve seçin Properties. Şimdi sadece kaydırıcıyı en alta kaydır.

Sanal makine başlattıktan sonra, pencere olacak değil yeni bir alan tanır.

Pencerelerde, açın Computer Management(başlat menüsünde arayın), soldaki menüden Storage-> öğesini Disk Managementseçin. Bölümünüzü seçin (muhtemelen C :), üzerine sağ tıklayın ve seçin Extend Volume .... Şimdi sihirbazı tıklaman yeterli.


Bundan Releaseönce yapman gerekiyor mu? Şu anda olduğu gibi, kaydırıcı gridir. Yoksa dinamik bölüm seçtiniz mi?
Royi

Royi: Sanal diski yaparken, dinamik boyutta olduğundan emin olun.
lenooh

10

Yeniden boyutlandırdıktan ve yeniden boyutlandırmayı Windows XP konuk makinemde görüntüleyemedikten sonra,

  1. klonla
  2. "VBoxManage modifyhd winxppro \ Clone.vdi - resize 30720" ile yeniden boyutlandırın ve her şey çalıştı

Diğer forumlarda anlık görüntülerin yeniden boyutlandırmaya müdahale edebileceğini ve aldığım farklı hataların tüm anlık görüntülerini kaldıramadığımı gördüm, benim için tek çözüm, anlık görüntüleri kaldırmak ve onu yeniden boyutlandırmak için klonlamaktı ve her şey çalıştı. Dış pencereleri yeniden boyutlandırmak için burada bulunan gparted boot cd yardımcı olabilir


6

Aynı diski taşıdığımda da aynı problemi yaşadım ve orjinalini bir link ile değiştirdim. Bu daha sonra tamam işe yarar, ancak onunla çalışırken görünüşte vdi dosyasına giden yolu kanonize ettiği için 'modifyhd' komutuyla ilgili sorunlarla karşılaşırsınız. Bu, aynı UUID ile ancak farklı bir yolda yeni bir disk eklemeye çalışıyormuşsunuz gibi görünmesini sağlar.

İki problem vardı:

  1. Diskin kullanılan VM'den ve sonra da "hdd'lerin VirtualBox listesinden" çıkarılması gerekiyordu. Bu, onu listeden kaldıran 'closemedium' komutuyla giderildi.

  2. Yeniden boyutlandırılacak disk "dinamik" yerine "sabit disk" idi ve yalnızca dinamik diskler yeniden boyutlandırılabilir. Bu bir 'clone' komutu ile düzeltildi (klon dinamiktir) ve ardından ortaya çıkan diski yeniden boyutlandırın.

Bu nasıl yapıldığına dair logum. Daha sonra bölümün ve dosya sisteminin yeniden boyutlandırılması haricinde , root olarak çalışan hiçbir noktada olmadığımı fark etmeyin .

VM'den DERNEĞİ DERNEĞİ ÇIKARIN.

PROBLEM STILL PERSİSTLERİ:

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 hala "sistemde":

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

VirtualBox disk listesinden diski çıkarın / silin ("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)

Yeniden boyutlandırmayı tekrar deneyin:

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!

BARAJ, "sabit boyutlu" ÇALIŞMIYOR! 'dinamik olarak tahsis edilmiş' bir klonlanmış disk bıraktığı için kurtarmaya 'klon':

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

RESIZE YAPIN (anlık):

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%

Sonra yeniden boyutlandırma için, bazı sanal VM için ATTACH. Bu kök olarak yapılır. Yalnızca bir bölümünüz olduğunu ve değiştirilebileceğini varsayar.

# 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.

Bu benim için çalıştı, kılavuzu takip etti: yinfor.com/2015/05/…
marijnz0r

4

Bu benim için Ubuntu 16.04 Ana Makine ve Windows 10 Misafir yüklü Virtualbox 5.2.6 ile çalıştı: Virtualbox Manager'ı açın, Global Tools'a (sağ üst köşede) tıklayın ve Virtual Media Manager'ı seçin. Sabit Disk Sekmesine tıklayın ve Misafir İşletim Sisteminizi seçin. Kutunun altında, Öznitelikler Sekmesine tıklayın. En altta Sanal Diskin boyutunu görebilirsiniz ve kaydırıcıyla boyutu istediğiniz gibi artırabilirsiniz. (Bu yöntemle yalnızca boyutunu artırabilir, boyutunu küçültemezsiniz). Uygula üzerine tıklayın. Windows Guest OS'nizi başlatın, Bilgisayar Yönetimi'ni açın, C: Drive'a sağ tıklayın ve dosya sistemini ayrılmamış kısım ile genişletmek için Birimi Genişlet'i seçin.

Tek yapmam gereken buydu, benim için mükemmel çalışıyor.


Harika çalıştı. En azından VirtualBox'un son sürümleri için kabul edilen cevap bu değil mi?
zamanLearning

2

Bunun kesin bir yolu, bir VM'de çalışmayan daha büyük bir sabit sürücüye geçmekle aynı şekilde yapılmasıdır. Öncelikle, tüm gereksiz dosyaları temizlemek için ccleaner veya benzer programı XP'de kullanın. Ardından istediğiniz boyutta ikincil bir sanal HDD oluşturun. Sanal ODD sürücünüzdeki clonezilla ISO ile önyükleme yapın ve seçilen 'yeni bölüm boyutunu yeniden boyutlandır' seçeneğiyle birlikte klonlayın. Ardından, yeni Sanal HDD'yi birincil olarak ayarlayın ve çalışana kadar eskisini silmeyin.


2

Komutu çalıştırmak için sudo kullanıncaya kadar aynı hatayı aldım, daha sonra mükemmel çalıştım, yine de ek alan kullanabilmek için konuk odadan bölüm büyütmeye ihtiyacım vardı.


Bazı insanlar bunun ev direktörünün izinsiz olmasına neden olduğunu bildirdi
Jonathan

2

Disk görüntüsü dosyasına yazma izni olan bir kullanıcı olarak giriş yaptığınızdan emin olun. O zaman koş

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Sormak için ilk anda benim için çalıştı


1
Yeniden yüklemek / yeniden biçimlendirmek / yeniden bölümlendirmek zorunda mıydınız? ya da hemen geri önyükleme mi?
Jonathan,

2

Ana makineniz windows ise, sanal kutudaki vdi disk boyutunu artırmak veya azaltmak için aşağıdaki komutu çalıştırabilirsiniz:

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

Yukarıdaki komutta, user_ame isminizi gerçek windows kullanıcısı ile değiştirin ve 20000 MB büyüklüğünde bir disktir.


1

Aslına bakarsan, modifyhdbazı durumlarda yalnız başına sana hiçbir şey yapmıyor gibi görünüyor . Aslında WinXP vdi'mi genişlettikten sonra görüntüyü klonlayarak genişlettim.

İşte birkaç hafta önce benim için çalışan adım adım kılavuz: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/


Buradaki adımları açıklayabilir misiniz? Başka bir siteye bağlantıdan biraz daha fazlası olan cevaplar genellikle burada kaşlarını çattı ve silinebilir .
Tom Brossman

1
Pekala, modifikasyonun ne yaptığını anlamalısınız, ki bu temelde sanal diski genişletmekten çok değil, hepsi bu. Hala üzerinde bulunan dosya sistemini genişletmeniz gerekiyor.
Marcin Kaminski

1

Sabit disk veya dinamik format disk olup olmadığına bakılmaksızın, VirtualBox diskinizi yeniden boyutlandırmanın bir yolu. Özellikle, bu hatayı önler:

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

Disk️ Sanal diski yedekleyin. Neyin yanlış gidebileceğini asla bilemezsin.

Ev sahibinizde:

  1. Bir terminal penceresi açın.

    Windows'ta: Komut istemini açın cmd.

  2. Yeniden boyutlandırmak istediğiniz sanal diski olan dizine gidin. Örneğin:

    cd "My VMs"
  3. İstediğiniz dosya adı, boyut (megabayt cinsinden) ve format (ya da Standard(dinamik) veya Fixed) ile yeni bir VirtualBox diski oluşturun . Örneğin, adı verilen 50 GB sabit biçimli bir disk oluşturmak için MyNewDisk.vdi:

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

    Eğer VBoxManagebir komut olarak tanınmayan, bunun tam yolunu belirtin. VirtualBox kurulum dizininde bulunabilir. Windows'ta yukarıdaki komut şöyle olacaktır:

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
  4. Orijinal diski yeni diske kopyalayın.

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
  5. Yeniden boyutlandırma yapılır! İsterseniz yeni diskin özelliklerini kontrol edebilirsiniz:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
  6. Bunun yerine yeni diski kullanmak için sanal makineyi değiştirin.

Ardından, konuk işletim sisteminizde yeni kullanılabilir alanı kullanmak için bölümleri yeniden boyutlandırmanız gerekir.


1

VHD'de Windows yüklü olanlar için, benim yaptığım gibi, ilk önce aşağıdaki Linux komutunu kullanarak klonlayarak VDI'ye dönüştürün. (Not, Windows VM kapalı.)

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

Bu vhd'yi çoğaltacaktır.

Ardından VDI aşağıdakilerle yeniden boyutlandırılabilir. VDI gerçekten kullanılıncaya kadar büyümeyecek unutmayın.

VBoxManage modifyhd Windows10.vdi --resize 80000

VM ana bilgisayar yazılımındaki depolama birimini monte ettikten ve VM'yi açtıktan sonra Windows önyükleme yapar, ancak bölüm yine aynı boyutta olur. C sürücüsü bölümünü yeniden boyutlandırabilen bir Windows aracı için Google. C sürücü bölümünü yeni boyutuma büyütmek için EaseUs Partition Master programını kullandım.

Son olarak, VHD silinebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.