Perché non riesco a ridimensionare un VDI dinamico con il comando edithd?


29

Vedo qui Come posso aumentare le dimensioni del disco rigido della macchina virtuale .

Dovrebbe funzionare con un comando simile

VBoxManage modifyhd xp.vdi --resize 2000

Quando il VDI ha una dimensione fissa è possibile ottenere questo errore:

~/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!

La discusione e la soluzione sono qui .

Ma ottengo quell'errore mentre il mio VDI è dinamico

~/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)

Perché?


stesso problema qui con Ubuntu 16.04LTS e vdi dinamico. molto strano
Luckyrings il

Risposte:


26

Per usare VBoxManage modifyhdabbiamo le seguenti avvertenze:

  • Le unità devono essere in formato .VDI o .VHD.
  • Le unità devono essere in formato dinamico, non riparato (un disco fisso può essere convertito in dinamico creando un clone).
  • La dimensione dell'unità influirà solo sulla dimensione logica , non sulla dimensione fisica.
  • Non è possibile ridurre un'unità a un valore uguale o inferiore alle dimensioni fisiche.
  • Per ridurre le dimensioni fisiche dobbiamo riempire lo spazio su disco inutilizzato 0.
  • Potrebbe essere necessario deframmentare un VDI di Windows prima di ridurne le dimensioni fisiche.

Nell'esempio sopra è stato provato a ridimensionare un disco dinamico con una dimensione fisica da 4693 MB a 2000 MB, il che non è possibile. Da qui l'errore.


1
Sono inciampato anche qui. che dolore.
nicolas,

2
Per modificare le unità in formato fisso, segui la risposta di @ ripper234
Sharun

controlla la mia risposta ha tutti i dettagli di cui hai bisogno e posso certificare che funziona
Mauricio Gracia Gutierrez,

Ho creato questa immagine oltre due anni fa, da tempo avevo dimenticato che era una dimensione fissa e non dinamica. Leggerlo nella tua risposta mi ha ricordato. Ho trascorso più di un'ora a cercare di capire perché non potevo farlo: (... Grazie
Madivad,

Grazie, questo mi ha aiutato. Per Linux non dimenticare di eseguire il pvresizecomando per utilizzare lo spazio per Linux
Maksim Luzik,

24

Questa soluzione ha funzionato per me:

  1. Spegni la macchina
  2. Crea una nuova unità tramite l'interfaccia di amministrazione con le dimensioni che desideri
  3. Usa il clonemedium di VBoxManage con il --existingflag

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

Nota : ora il nuovo disco avrà lo spazio in eccesso come non allocato e sarà necessario utilizzare gparted per estendere le dimensioni al massimo.

Non so perché i ragazzi di VirtualBox non abbiano potuto usare quanto sopra per implementare questo invece di lanciare VBOX_E_NOT_SUPPORTED... almeno link a questo :)


1
Come posso allocare lo spazio in eccesso su Windows?
Ken

4
@Ken non sono sicuro se l'hai capito; Avvia -> Esegui -> diskmgmt.msc, fai clic con il pulsante destro del mouse su C: (o qualunque sia l'unità primaria) e scegli Estendi.
Trento,

2
questo ha aiutato. Non l'ho fatto con GUID ma con il nome file dell'unità
Luckyrings

3
@ ripper234 I tre passaggi necessitano di una spiegazione approfondita - per le persone come me che non sono molto sicure di ciò che stanno facendo. In 2) stiamo creando un nuovo disco fisso o cosa? .vdi .vdmk ?? Per favore, fai un esempio corretto, magari con una grafica. Inoltre 3) Cosa sta facendo il clonemedium rispetto al clonehd? Da dove provengono le due guide - in particolare quella di destinazione - esiste già anche se stiamo clonando? Grazie
mwarren,

Grazie. Ora, sono stato diretto qui come utente Windows (anche se questo è askUbuntu), quindi aggiungerò qui che, nella versione Windows di VBoxManage, devi inserire i percorsi dei dischi rigidi virtuali, anziché della VM GUID.
Sean Burchett,

4

Ecco l'intero processo, cercherò di essere il più dettagliato possibile

  1. Assicurarsi che la macchina che si sta per aumentare di dimensioni sia nello stato "Arresto" (non nello stato "salvato" o in qualsiasi altro stato)

Nel mio caso è una macchina di dimensioni di 32 GB e la chiamerò SMALL VM

  1. Crea una nuova macchina virtuale con le nuove dimensioni desiderate

Nel mio caso ho deciso di creare una nuova macchina virtuale da 70 GB, ripristinando al contempo i contenuti della piccola macchina all'interno di questa nuova macchina virtuale e la chiamerò LARGE VM

  1. Eseguire il comando VBoxManage list hddso Apri Virtual Media Manager per ottenere il GUID della SMALL VM (origine) e anche il GUID della LARGE VM (destinazione)

Con questi GUID costruisci il seguente comando

VBoxManage clonemedium SMALL_VM_GUID LARGE_VM_GUID - esistente

Nel mio caso ORIGIN - SMALL VM è: 39143127-42b6-478a-afb2-5e58f14218b

Nel mio caso DESINATION - LARGE VM è: bb808b5b-b88c-49b2-a646-3414af906d84

Ovviamente i tuoi GUID saranno diversi dai miei

Assicurarsi di non invertire i GUID, altrimenti la macchina nuova sostituirà il contenuto della macchina esistente !!!!

Dopo esserti assicurato di non aver unito origine e destinazione, esegui questo comando:

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

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

Supporto clone creato nel formato 'VDI'. UUID: bb808b5b-b88c-49b2-a646-3414af906d84

  1. Avviare la nuova LARGE VM creata al passaggio 2.

  2. Verificare nella finestra di dialogo Gestione computer che la macchina abbia effettivamente più spazio inutilizzato / non formattato

  3. Se preferisci, puoi eseguire "chkdsk" sull'unità C per assicurarti che tutto sia pronto (questo potrebbe richiedere due riavvii sulla VM GRANDE )

  4. Usando gparted-live * .iso, "inseriscilo" nella nuova macchina virtuale e riavvialo

  5. Avvia nell'ambiente gparted

  6. Fai crescere la tua partizione e salva le modifiche

  7. "Espelli" gparted-live * .iso per riavviare Windows

  8. Verificare nello strumento della finestra Gestione computer che la macchina ora disponga di un'unità C più grande per risolvere i problemi relativi alle specifiche

Ho avuto le schermate di questi processi ma ho deciso di non includerli poiché renderà la mia risposta grande e intimidatoria per le persone che "hanno fretta" di ottenere spazio libero sulla loro macchina virtuale Windows


Grazie per la guida Nel passaggio 3, da dove ottieni i GUID? Non sono sicuro di cosa sia un Virtual Media Manager.
A.Wan

3
Non importa, penso di averlo ottenutoVBoxManage list hdds
A.Wan

@A.Wan questo è il Virtual Media Manager - google.com.co/…
Mauricio Gracia Gutierrez
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.