Come aumentare la dimensione del disco rigido della macchina virtuale?

239

HoesauritolospaziosullamiamacchinavirtualeWinXP,chehodatosolo10GBdispazioperquandol'hocreato.C'èunmodosempliceperaumentarlo,diciamo,20GB?NonriescoavederenessunaopzioneovvianelleimpostazionidiVirtualBox.

Ilsuggerimentodiseguitodàquestoerrore

[email protected]:/media/data/winxp_vm$VBoxManagemodifyhdwim.vdi--resize20000VBoxManage:error:Cannotregistertheharddisk'/media/data/winxp_vm/wim.vdi'{46284957-2c09-4e70-8a49-bfbe0f7f681d}becauseaharddisk'/home/wim/VirtualBoxVMs/winxp_vm/wim.vdi'withUUID{46284957-2c09-4e70-8a49-bfbe0f7f681d}alreadyexistsVBoxManage:error:Details:codeNS_ERROR_INVALID_ARG(0x80070057),componentVirtualBox,interfaceIVirtualBox,calleensISupportsContext:"OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp

Rimuovere il .vdi da VirtualBox prima di chiamare il comando VBoxManage, quindi aggiungerlo di nuovo, ha avuto successo. Ma ora non riesco ad avviare la macchina virtuale, ottengo questa schermata preoccupante:

Aproposito,diceFATAL:Couldnotreadfromthebootmedium!Systemhalted.

IlvdideveesserericollegatoallaVMdopoilcomandoVBoxManage.Inoltre,lapartizionedovràessereridimensionatadaWITHINwindows,perchéavraiquestospaziovuoto:

Sono riuscito a ridimensionare facilmente la partizione usando un po 'di freeware chiamato EASEUS Partition Master 9.1.0 Home Edition .

    
posta wim 18.12.2011 - 12:51

13 risposte

306

Apri un terminale e vai alla cartella con l'immagine del disco VirtualBox, quindi usa il seguente comando:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

sostituendo YOUR_HARD_DISK e SIZE_IN_MB con il nome dell'immagine e la dimensione desiderata. sudo potrebbe essere necessario in alcune macchine o potresti incontrare un errore. Questa risposta e una spiegazione più completa sono qui, su webupd8 . Ringraziamo Andrew per aver postato questa risposta.

Dopo il ridimensionamento, lo spazio extra su disco virtuale deve essere partizionato e formattato affinché il guest possa usarlo. Questo può essere fatto con gparted avviando il guest da un ISO live. Possiamo anche ridimensionare la partizione esistente usando gparted. Per questo potremmo aver bisogno di disabilitare /swap e creare una nuova partizione di swap.

    
risposta data Tom Brossman 18.12.2011 - 13:07
23

Quanto segue ha funzionato per me:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Tuttavia, capisco in che modo il chilometraggio può variare :-) Per quanto riguarda il ridimensionamento della partizione, in Windows 7, sono stato in grado di ridimensionare lo schermo visualizzato facendo clic con il pulsante destro del mouse sul C: guida nel pannello in basso e seleziona estendi volume.

    
risposta data Richard Povinelli 15.04.2012 - 13:53
17

Wim, penso che dovrai prima annullarne la registrazione da Vbox. File, Media Manager, fai clic su hdd e annullalo. Quindi riprovare.

    
risposta data tiempjuuh 19.12.2011 - 12:40
7

Dopo il ridimensionamento e l'impossibilità di visualizzare il ridimensionamento sul mio computer guest di Windows XP, ho dovuto

  1. clonalo
  2. ridimensionalo con "VBoxManage modifyhd winxppro \ Clone.vdi --resize 30720" e tutto ha funzionato

Ho visto in altri forum che le istantanee possono interferire con il ridimensionamento e non essere in grado di rimuovere tutte le istantanee per i diversi errori che ho ottenuto, l'unica soluzione trovata per me era clonarlo per rimuovere gli snapshot e poi ridimensionarlo, e tutto funzionava . Per ridimensionare le finestre esterne, un cd di avvio gparted che può essere trovato qui può aiutare

    
risposta data Philippe Gachoud 28.05.2013 - 13:11
5

Ho avuto lo stesso problema in cui avevo spostato un disco e sostituito l'originale con un collegamento simbolico. Ciò funziona in seguito, ma si incontrano problemi con il comando 'modifyhd', in quanto apparentemente canonicalizza il percorso del file vdi quando si lavora con esso. Questo fa sembrare che stai provando ad aggiungere un nuovo disco con lo stesso UUID ma su un percorso diverso - o qualcosa del genere.

C'erano due problemi:

  1. Il disco doveva essere rimosso dalla VM che lo utilizzava, ma anche "dall'elenco VirtualBox di hdds". Questo problema è stato risolto con il comando 'closemedium', che lo rimuove da quella lista.

  2. Il disco da ridimensionare era un "disco fisso" invece di "dinamico" e solo i dischi dinamici possono essere ridimensionati. È stato corretto con un comando "clone" (il clone è dinamico), quindi ridimensiona il disco risultante.

Questo è il mio log per come è stato fatto. Tieni presente che sono non in qualsiasi punto che esegue come root , tranne quando successivamente eseguo il ridimensionamento della partizione e del filesystem.

RIMUOVERE L'ASSOCIAZIONE AL DISCO DA VM.

PROBLEMA ANCORA PERSISTI:

[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, il disco è ancora "nel sistema":

[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

Rimuovi / elimina il disco dall'elenco di dischi di 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)

Prova nuovamente a ridimensionare:

[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, "fixed-size" NON FUNZIONA! 'clonehd' in soccorso, dato che lascia un disco clonato 'dinamicamente allocato':

[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

ORA FARE IL RESIZE (istantaneo):

[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%

ALLORA ALLORA ALCUNE VM, PER RIDIMENSIONARE. Questo è fatto come root. Si suppone di avere una sola partizione e possibilmente scambiare.

# 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.
    
risposta data stolsvik 09.04.2013 - 14:01
2

Questo ha funzionato per me con Virtualbox 5.2.6 installato su Ubuntu 16.04 Host Machine e Windows 10 Guest: aprire Virtualbox Manager, fare clic su Strumenti globali (in alto a destra) e selezionare Virtual Media Manager. Fare clic sulla scheda Disco rigido e selezionare il sistema operativo Guest. Nella parte inferiore della finestra fai clic sulla scheda Attributi. In basso puoi vedere le dimensioni del Disco Virtuale e con il cursore puoi aumentare le dimensioni a tuo piacimento. (Puoi solo aumentare, non diminuire le dimensioni con questo metodo). Clicca su Applica. Avvia il sistema operativo guest Windows, apri Gestione computer, fai clic con il tasto destro su C: Drive e seleziona Estendi volume per estendere il file system con la parte non allocata.

Questo è tutto ciò che dovevo fare, funziona perfettamente per me.

    
risposta data Judex 24.01.2018 - 18:55
1

Un modo sicuro è farlo allo stesso modo di passare a un disco rigido più grande che non è in esecuzione in una VM. Per prima cosa usa ccleaner o un programma simile in XP per ripulire tutti i file spazzatura che può. Quindi creare un HDD virtuale secondario della dimensione desiderata. Avvia con ISO clonezilla nel tuo disco ODD virtuale e clona oltre con l'opzione 'ridimensiona a nuova dimensione della partizione' selezionata. Quindi imposta il nuovo HDD virtuale come principale e non eliminare quello vecchio finché non sai che ha funzionato.

    
risposta data xyzzyman 19.12.2011 - 15:03
1

Ho ricevuto lo stesso errore fino a quando ho usato sudo per eseguire il comando, quindi ho funzionato perfettamente, ho ancora bisogno di avere partizione cresciuta all'interno del guest per utilizzare spazio aggiuntivo.

    
risposta data JJinCO 01.02.2012 - 10:34
1

In effetti, sembra che il modifyhd da solo non ti faccia bene in alcuni casi. Ho effettivamente espanso il mio vdi WinXP clonando l'immagine dopo l'espansione.

Ecco la guida passo-passo completa che ha funzionato per me un paio di settimane fa: link

    
risposta data 0x61696f 01.05.2012 - 21:25
1

Assicurati di aver effettuato l'accesso come utente con autorizzazioni di scrittura sul file immagine del disco. Quindi esegui

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Ho lavorato per me al primo tentativo di chiedere

    
risposta data tindase 27.03.2012 - 00:53
1

Puoi farlo anche usando il menu VirtualBox:

Seleziona File - & gt; % Co_de%

Si aprirà una finestra:

Seleziona il tuo disco e seleziona Virtual Media Manager ... . Ora sposta il cursore in basso.

Dopo aver avviato la macchina virtuale, Windows non riconoscerà il nuovo spazio.

Apri Properties (cercalo nel menu di avvio), seleziona Computer Management - & gt; Storage nel menu a sinistra. Seleziona la tua partizione (probabilmente C :), fai clic destro su di essa e seleziona Disk Management . Ora basta fare clic sul wizard e il gioco è fatto.

    
risposta data lenooh 06.07.2018 - 14:36
0

Ecco un modo per ridimensionare il tuo disco VirtualBox, indipendentemente dal fatto che si tratti di un formato fisso o di un disco in formato dinamico. In particolare, impedisce questo errore:

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

Sul tuo host:

  1. Apri una finestra di terminale.

    % Bl0ck_qu0te%
  2. Vai alla directory con il disco virtuale che desideri ridimensionare. Ad esempio:

    cd "My VMs"
    
  3. Crea un nuovo disco VirtualBox con il nome del file desiderato, dimensioni (in megabyte) e il formato (sia Standard (dinamico) o Fixed ). Ad esempio, per creare un disco in formato fisso da 50 GB chiamato MyNewDisk.vdi :

    VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
    
    % Bl0ck_qu0te%
  4. Copia il disco originale sul nuovo disco.

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
    
  5. Il ridimensionamento è terminato! Puoi controllare le proprietà del nuovo disco se lo desideri:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
    
  6. Cambia la macchina virtuale per utilizzare invece il nuovo disco.

Successivamente, sul sistema operativo guest è necessario ridimensionare le partizioni per utilizzare lo spazio appena disponibile.

    
risposta data Virtlink 18.08.2017 - 15:53
0

Se il computer host è Windows, è possibile eseguire il seguente comando per aumentare o ridurre la dimensione del disco virtuale in box virtuale:

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

Nel comando precedente sostituisci tuo_nome_utente con l'utente Windows reale e 20000 è la dimensione MB del disco.

    
risposta data Manish Jangir 03.08.2018 - 09:50

Leggi altre domande sui tag