Spesso per lavoro, o per semplice passione, lavori con un certo sistema operativo, ma hai bisogno di averne un altro – in genere virtualizzato tramite VirtualBox, Docker, Vmware o chi più ne ha più ne metta… – per fare test ed esperimenti.
Nel caso di Virtualbox, disponibile gratuitamente su tante piattaforme e semplice da usare, ti sarà sicuramente capitato di chiederti come fare a cambiare le dimensioni del disco virtuale che hai creato. Ad esempio, il tuo Windows virtuale ha scaricato l’ultimo service pack, hai installato molte librerie e software nuovi ed il disco virtuale ha esaurito lo spazio.
Esempio da cui partire
Ti faccio un esempio usando il mio pc dell’ufficio, basato su Kde Neon 5.11.5 (per cui su linux) in cui Virtualbox ha necessità di essere lanciato da root (utente amministratore). Il problema che ho avuto è semplice: il mio Windows 7 su macchina virtuale aveva a disposizione un disco virtuale da 24Gb. Ho installato, per motivi di sicurezza, tutti gli ultimi aggiornamenti del sistema operativo, dei vari software che uso e lo spazio si è esaurito.
Il mio scopo è dunque quello di estendere il disco da 24Gb e farlo arrivare ad avere 100Gb.
Come procedere
Mi raccomando, prima di fare qualunque cosa, ferma Docker, Vagrant o semplicemente Virtualbox: qualunque servizio usi il disco virtuale di Virtualbox e a sua volta esso stesso.
Apri un terminale e portati dentro la cartella in cui è fisicamente salvato il disco virtuale in oggetto (chiamiamo la directory “Esempio” ed il disco virtuale esempio.vdi).
cd/media/andymnc/VMs/Esempio
Ribadisco che nel caso in cui il proprietario del disco o l’esecutore di Virtualbox sia root, tutti i comandi dovranno essere preceduti dal canonico sudo.
A questo punto, se il disco è nel formato vmdk, Virtualbox non supporta la sua espansione. Devi prima convertirlo (clonandolo) in formato vdi, poi espanderlo ed infine clonarlo nuovamente in formato vmdk. In questo caso, segui tutta la procedura. Se invece stai lavorando già con un vdi, esegui il solo secondo passaggio
Passo primo, clono in formato vdi (se e solo se il disco è vmdk)
VBoxManage clonehd esempio.vmdk esempio.vdi --format vdi
Vedrai lo stato di avanzamento 0%...10%...20%...
sino al 100%.
Secondo, espando il disco
Il seguente comando accetta valori in Mb. Poichè il mio scopo è di espanderlo a 100Gb, tale valore verrà riportato in Mb.
VBoxManage modifyhd esempio.vdi --resize 100000
Terzo, trasformo di nuovo in vmdk (sempre solo se in origine il disco era un vmdk)
In questo caso, per evitare di fare disastri, posso pensare di copiare il vecchio esempio.vmdk in un’altra directory.
Clono il nuovo (e grande!) disco da vdi a vmdk:
VBoxManage clonehd esempio.vdi esempio2.vmdk --format vmdk
Elimino il file vdi di passaggio:
rm -Rf esempio.vdi
Come usi il nuovo disco vmdk espanso in Virtualbox?
Ora, avviando Virtualbox, da interfaccia seleziona la macchina virtuale che utilizzava il disco esempio.vmdk
.
Clicca sull’icona dell’ingranaggio (Impostazioni), vai su archiviazione e, sul controller in cui vedi esempio.vmdk
:
- clicca sull’icona dell’HDD con il + e clicca su “Scegli un disco esistente”
- cerca
esempio2.vmdk
nella cartella in cui hai eseguito il clone. Nel mio casocd/media/andymnc/VMs/Esempio
- clicca su Apri.
Il disco esempio2.vmdk
ora appare in coda agli altri. Rimuovi il collegamento di archiviazione, selezionando in cima esempio.vmdk
e cliccando sul disco azzurro con il simbolo “-” rosso.
Non ti preoccupare: è vero che il disco verrà rimosso dalla gestione archiviazione di VirtualBox, ma esso sarà fisicamente sempre presente nella directory. Per cui anche ripristinabile all’interno di VirtualBox stesso.
A questo punto, avviando la macchina virtuale, essa utilizzerà il nuovo disco che però, al primo avvio si presenterà delle stesse dimensioni del vecchio (24Gb nel nostro esempio).
Riavvia la VM. Il sistema dovrebbe finalmente mostrare le nuove dimensioni del disco.
Se così non fosse:
- qualora la Virtual Machine fosse Windows, utilizza l’applicazione Gestione disco per selezionare il medesimo ed espandere la partizione di modo che utilizzi l’intero spazio disponibile
- se fosse Linux, usa gparted e ridimensiona la partizione di modo che utilizzi tutto lo spazio disponibile
Non ti preoccupare, tratterò l’argomento gestione partizioni in un prossimo articolo.