Le macchine virtuali sono ormai onnipresenti per testare vari sistemi operativi e svolgere altre attività. Un programma popolare e gratuito per l'esecuzione di macchine virtuali è VirtualBox. Quando si crea una nuova macchina, è necessario creare un disco rigido per essa e specificarne le dimensioni. Ma non è sempre possibile indovinare quanto spazio occuperà una determinata macchina. Esistono dischi virtuali dinamici che occupano spazio solo quando vi si scrivono i file, ma si tratta di una soluzione incompleta al problema, perché non è possibile pianificare tutto in anticipo.
Ci sono tre formati principali che si possono usare in VirtualBox: VDI
, VHD
e VDMK
. Solo VDI
e VHD
possono essere ridimensionati. Esiste una soluzione per VDMK
.
Per aumentare le dimensioni è necessario utilizzare un comando nel terminale o nella riga di comando, purtroppo non esiste una funzione simile nella GUI. È inoltre necessario conoscere il percorso completo del disco. Supponiamo che il nostro disco si trovi in ~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi
in Linux. Diamo un'occhiata alle sue informazioni per conoscere la sua dimensione attuale:
$ VBoxManage showhdinfo ~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi
La dimensione è indicata nel campo della capacità e in questo esempio è di 22075 megabyte. È importante conoscere la capacità in megabyte perché è quella che useremo per ingrandire il disco. Per aumentare le dimensioni del disco virtuale di virtualbox si usa lo stesso comando, solo con il parametro modifyhd
:
$ VBoxManage modifyhd ~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi --resize 32075
Abbiamo aumentato il volume di 10 GB. È importante che la quantità specificata nel parametro resize
non sia inferiore alla dimensione attuale del disco, altrimenti i dati del sistema operativo potrebbero essere danneggiati e il senso di questa operazione perderebbe di significato.
Se la macchina dispone di istantanee di stato, è necessario ridimensionare anche queste, altrimenti non funzionerà nulla. Per farlo, si può utilizzare un ciclo come questo:
$ for x in ~/VirtualBox VMs/Ubuntu17.04/Snapshots/*.vdi ; do VBoxManage modifyhd $x --resize 32075 ; done
Ricordare che le dimensioni e i nomi devono corrispondere in tutti i comandi per la stessa macchina. VirtualBox non supporta il ridimensionamento del formato VDMK
, ma è possibile convertirlo in vdi
, ingrandirlo come descritto sopra e riconvertirlo:
$ VBoxManage clonehd "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdmk" "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi" --format vdi
$ VBoxManage modifyhd "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi " --resize 32075$ VBoxManage clonehd "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi " "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi_resized.vmdk" --format vmdk
In Windows OS, il comando avrà un aspetto leggermente diverso e il percorso del file inizierà dall'unità C:. Per eseguire il comando VBoxManage è necessario prima navigare nella cartella degli eseguibili di VirtualBox:
cd “C:Program FilesOracleVirtualBox”
Eseguire il comando per aumentare le dimensioni di virtualbox come descritto in precedenza, sostituendo il percorso del file con il proprio:
$ VBoxManage showhdinfoC:UsersAdminVirtualBox VMsWindows 7Windows 7.vdi
E modificare la dimensione di questo disco, ricordando che la dimensione deve essere specificata in megabyte e deve essere maggiore di quella attuale.
$ VBoxManage modifyhd "C:UsersAdminVirtualBox VMsWindows 7Windows 7.vdi" --resize 32075
Il fatto di aver aumentato la dimensione del disco disponibile non cambia nulla, proprio come non cambia nulla l'aggiunta di un nuovo disco rigido al sistema. Successivamente è necessario avviare la macchina virtuale, espandere il disco di virtualbox e aumentare lo spazio occupato dal file system; a tale scopo è possibile utilizzare l'utility Gparted. Nelle distribuzioni Linux è disponibile per impostazione predefinita:
Si vedrà lo spazio disponibile segnato in grigio alla fine del disco. Ora è possibile ridimensionare l'ultima partizione facendo clic con il tasto destro del mouse su di essa e richiamando il menu contestuale, quindi selezionando "ridimensiona/sposta":
Al termine, non dimenticate di fare clic su "Applica" per applicare tutte le operazioni.
Abbiamo visto come aumentare le dimensioni di un disco virtuale di virtualbox utilizzando la riga di comando e come condividere lo spazio risultante con il sistema guest.