it-swarm.dev

Jak mohu zvětšit velikost pevného disku virtuálního počítače?

enter image description here

Na virtuálním stroji WinXP jsem došel nedostatek místa, kterému jsem při vytvoření vytvořil pouze 10 GB místa. Existuje snadný způsob, jak ji zvýšit, řekněme na 20 GB? V nastavení VirtualBox nevidím žádnou zjevnou možnost.


Níže uvedený návrh uvádí tuto chybu

[email protected]:/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

Odstranění .vdi z VirtualBoxu před voláním příkazu VBoxManage a jeho následným přidáním bylo úspěšné. Ale teď nemohu spustit virtuální stroj, mám tuto znepokojující obrazovku:

enter image description here

Mimochodem, to říká FATAL: Could not read from the boot medium! System halted.


Vdi musí být znovu připojen k příkazu VM po příkazu VBoxManage. Dále bude třeba změnit velikost oddílu z oken v rámci SIN, protože budete mít toto prázdné místo:

enter image description here

Změnil jsem velikost oddílu snadno pomocí trochu freewaru zvaného EASEUS Partition Master 9.1.0 Home Edition .

270
wim

Otevřete terminál a přejděte do složky s bitovou kopií disku VirtualBox a poté použijte následující příkaz:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

nahrazení YOUR_HARD_DISK a SIZE_IN_MB názvem vašeho obrázku a požadovanou velikostí. V některých počítačích může být nutné Sudo nebo se může stát chyba. Tato odpověď a podrobnější vysvětlení jsou zde, na webupd8 . Kredit tam Andrew za zveřejnění této odpovědi.

Po změně velikosti je navíc místo na pevném disku musí být rozděleno a naformátováno , aby jej mohl host použít. Toho lze dosáhnout zavedením hosta ze živého ISO. Můžeme také změnit velikost existujícího oddílu pomocí gparted. Z tohoto důvodu bude možná nutné deaktivovat /swap A vytvořit nový odkládací oddíl.

338
Tom Brossman

Následující pracoval pro mě:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Chápu však, jak se počet najetých kilometrů může lišit :-) Pokud jde o změnu velikosti oddílu, v systému Windows 7 jsem byl schopen změnit velikost na obrazovce, kterou jste zobrazili kliknutím pravým tlačítkem myši na jednotku C: ve spodním panelu a výběrem rozšířit hlasitost.

Computer management screen

28

Můžete to také provést pomocí nabídky VirtualBox:

Vyberte File -> Virtual Media Manager ...

Otevře se okno: enter image description here

Vyberte disk a vyberte Properties. Nyní jen posuňte jezdec dole.

Po spuštění virtuálního počítače systém Windows nerozpozná nový prostor.

V systému Windows otevřete Computer Management (hledejte v úvodní nabídce), vyberte Storage -> Disk Management v levé nabídce. Vyberte oddíl (pravděpodobně C :), klikněte na něj pravým tlačítkem a vyberte Extend Volume .... Nyní stačí kliknout na průvodce a je hotovo.

25
lenooh

Wim, myslím, že se budeš muset nejprve odhlásit z Vboxu. File, Media Manager, klikněte na hdd a zrušte registraci. Pak to zkuste znovu.

18
tiempjuuh

Po změně velikosti a nemožnosti zobrazit velikost na mém systému Windows XP hostující počítač) jsem musel

  1. klonovat
  2. změňte velikost pomocí "VBoxManage modifikhd winxppro\Clone.vdi - velikost 30720" a vše fungovalo

Na jiných fórech jsem viděl, že snímky mohou zasahovat do změny velikosti a nejsou schopny odstranit všechny snímky pro různé chyby, které jsem dostal. Jediným nalezeným řešením pro mě bylo klonování, aby se odstranily snímky a pak se velikost změnila, a všechno fungovalo. Při změně velikosti vnějších oken může pomoci zaváděcí disk CD, který lze najít, zde

10
Philippe Gachoud

Měl jsem stejný problém, kde jsem přesunul disk, a originál jsem nahradil symbolickým odkazem. Poté to bude v pořádku, ale narazíte na problémy s příkazem 'modifikhd', protože to zjevně kanonikalizuje cestu k souboru vdi, když s ním pracujete. Vypadá to, že se pokoušíte přidat nový disk se stejným UUID, ale na jinou cestu - nebo podobně.

Byly tam dva problémy:

  1. Disk musel být odebrán z VM, který jej použil, ale pak také ze "seznamu VirtualBox seznamu hdds". To bylo opraveno příkazem 'closemedium', který jej odstranil z tohoto seznamu.

  2. Disk, který má být změněn, byl místo „dynamického“ pevného disku „pevný disk“ a velikost lze změnit pouze u dynamických disků. To bylo opraveno příkazem „klon“ (klon je dynamický) a pak změnil velikost výsledného disku.

Toto je můj protokol o tom, jak se to stalo. Všimněte si, že nejsem nikoliv v žádném okamžiku běžícím jako root, s výjimkou případů, kdy později provedu změnu velikosti oddílu a souborového systému .

ODSTRAŇTE PŘIDRUŽENÍ NA DISK Z VM.

PROBLÉM STILL PERSISTS:

[email protected]:~/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 je stále "v systému":

[email protected]:~/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

Odebrat/odstranit disk ze seznamu disků VirtualBox ("closemedium"):

[email protected]:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
[email protected]:~/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)

Zkuste znovu změnit velikost:

[email protected]:~/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!

DAMN, "pevná velikost" NEVYKONÁVEJTE PRÁCI! "Clonehd" k záchraně, protože to ponechává "dynamicky přidělený" klonovaný disk:

[email protected]:/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

TEĎ DO VELIKOSTI (okamžité):

[email protected]:/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%

POTVRZENÍ K NĚKTERÉMU VM, PRO ZMĚNU. To se provádí jako root. Předpokládá se, že máte pouze jeden oddíl a možná odkládací prostor.

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

To pro mě fungovalo s nainstalovaným Virtualbox 5.2.6 na hostitelském počítači Ubuntu 16.04 a Windows 10 Host: otevřete Virtualbox Manager, klikněte na Globální nástroje (v pravém horním rohu) a zvolte Virtual Media Manager. Klikněte na kartu Pevný disk a vyberte svůj hostující OS. V dolní části pole klikněte na kartu Atributy. Ve spodní části můžete vidět velikost virtuálního disku a pomocí posuvníku můžete velikost zvětšit podle svých představ. (Pomocí této metody můžete zvětšit, nikoli zmenšit velikost). Klikněte na Použít. Spusťte svůj operační systém Windows, otevřete Správa počítače, klikněte pravým tlačítkem na jednotku C: a vyberte možnost Rozšířit svazek, abyste rozšířili systém souborů o nepřidělenou část.

To je vše, co jsem musel udělat, perfektně pro mě funguje.

4
Judex

Ujistěte se, že jste přihlášeni jako uživatel s právy zápisu do souboru bitové kopie disku. Pak běžte

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Pracoval jsem pro mě při prvním dotazu

2
tindase

Pokud je váš hostitelský počítač Windows, můžete spustit následující příkaz a zvětšit nebo zmenšit velikost disku vdi ve virtuálním poli:

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

Ve výše uvedeném příkazu nahraďte your_user_name skutečným uživatelem systému Windows a 20000 je velikost MB disku.

2
Manish Jangir

Stejnou chybu jsem dostal, dokud jsem nepoužil Sudo ke spuštění příkazu, a pak jsem pracoval perfektně, stále je třeba rozdělit oddíl z hosta, abych mohl využít další prostor.

2
JJinCO

Jistým způsobem je to udělat to samé jako přechod na větší pevný disk, který není spuštěn ve virtuálním počítači. Nejprve použijte ccleaner nebo podobný program v XP) k vyčištění všech nevyžádaných souborů, které dokáže. Potom vytvořte sekundární virtuální HDD požadované velikosti. Spusťte s clonezilla ISO ve vaší virtuální ODD jednotka a klonujte spolu s možností 'změnit velikost na novou velikost oddílu'. Poté nastavte nový virtuální HDD jako primární a starý neodstraňujte, dokud nebudete vědět, že to funguje.

2
xyzzyman

Ve skutečnosti se zdá, že samotný modifyhd vám v některých případech nepomůže. Vlastně jsem rozšířil svůj WinXP vdi klonováním obrázku po rozšíření.

Zde je kompletní průvodce krok za krokem, který pro mě pracoval před pár týdny: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/

1
0x61696f

Zde je způsob, jak změnit velikost disku VirtualBox, bez ohledu na to, zda se jedná o pevný nebo dynamický disk. Konkrétně zabraňuje této chybě:

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

⚠️ Zálohujte virtuální disk. Nikdy nevíš, co by se mohlo pokazit.

Na hostiteli:

  1. Otevřete okno terminálu.

    V systému Windows: Otevřete příkaz Prompt cmd.

  2. Přejděte do adresáře s virtuálním diskem, který chcete změnit velikost. Například:

    cd "My VMs"
    
  3. Vytvořte nový disk VirtualBox s požadovaným názvem souboru, velikostí (v megabajtech) a formátem (buď Standard (dynamický) nebo Fixed). Chcete-li například vytvořit disk s pevným formátem 50 GB s názvem MyNewDisk.vdi:

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

    Pokud VBoxManage není rozpoznán jako příkaz, zadejte úplnou cestu k němu. Najdete jej v instalačním adresáři VirtualBoxu. Ve Windows se výše uvedený příkaz stane:

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
    
  4. Zkopírujte původní disk na nový disk.

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
    
  5. Změna velikosti je hotová! Vlastnosti nového disku můžete zkontrolovat, pokud chcete:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
    
  6. Změňte virtuální počítač a místo toho použijte nový disk.

Ve vašem hostujícím OS musíte dále změnit velikost oddílů, aby bylo možné využívat nově dostupný prostor.

Pro ty, kteří mají Windows na VHD, jako jsem to udělal, nejprve převeďte na VDI klonováním s následujícím příkazem Linux. (Poznámka: Windows VM vypnuto.)

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

Tím se duplikuje VHD.

Pak lze velikost VDI změnit následujícím způsobem. Všimněte si, že VDI nebude ve skutečnosti růst, dokud nebude použit.

VBoxManage modifyhd Windows10.vdi --resize 80000

Po opravě připojení úložiště v VM hostitelský software a zapnutí počítače VM, Windows bootuje, ale diskový oddíl bude mít stále stejnou velikost. Google pro nástroj Windows, který může změnit velikost C Použil jsem EaseUs Partition Master, abych rozdělil diskový oddíl C na novou velikost.

Nakonec lze VHD odstranit.

1
jws