Molte volte si ha la necessità di avviare le macchine virtuali create con VirtualBox in modalità background direttamente da shell. Questo metodo risulta eccezionalmente utile se si ha una piccolo Server Casalingo accessibile solo tramite protocollo ssh e si vuole startare alcune macchine virtuali. Io personalmente lo utilizzo sopratutto quando devo fare dei test e ho bisogno di startare da remoto (in ssh sul mio server) una macchina virtuale! Vediamo come fare.
Il primo passo da fare è sicuramente creare la VM attraverso l’interfaccia grafica, oppure per i più smanettoni crearla usando il comando:
$ vboxmanage createvm --name <nomevm> --ostype <tipoOs> --basefolder <path> $ vboxmanage registervm <path-vm>/namvm.vbox
Non ci prolungheremo sulla spiegazione della creazione attraverso shell ma per chi volesse sperimentarsi potete benissimo visionare il man o l’helper di vboxmanage.
Per avviare la VirtualMachine in background da shell, la sintassi del comando da utilizzare è la seguente:
$ vboxheadless --startvm <nomevm> &
Se si vuole ridiriggere l’output in un file la sintassi è:
$ nohup vboxheadless --startvm <nomevm> &
il quale creerà un file nella nostra home “nohup.out”
Il nome delle VM è possibile reperirlo semplicemente lanciando il comando:
$ ls /home/$USER/VirtualBox\ VMs
Vi riporto ad esempio le mie VirtualMachine:
alessio@pluto ~ $ ls /home/$USER/VirtualBox\ VMs ArchLinux CentOS RedHat Squid Test_Win alessio@pluto ~ $
Supponiamo di voler startare la VM di ArchLinux il comando sarà:
$ nohup vboxheadless --startvm "ArchLinux" &
Ho creato per voi un piccolo script in bash scaricabile che vi da attraverso due comandi la possibilità di:
- vedere la lista delle vostre VirtualMachine controllando quali sono startate e quali no
- la possibilità di startare la VM
Vediamo come funziona. Per prima cosa scarichiamolo con il coamando:
$ wget http://www.archlinuxitalia.com/wp-content/uploads/2012/04/start_vm.sh_.tar.gz
Una volta scaricato estraetelo con il comando:
$ tar xvfz start_vm.sh_.tar.gz
rendiamolo eseguibile con il comando:
$ chmod +x start_vm.sh
lanciamolo senza opzioni per visualizzare l’help:
$ ./start_vm.sh
verrà visualizzato un output come questo:
alessio@pluto ~ $ ./start_vm.sh start_vm ver: 0.2.1 stable usage: start_vm <options> <vm> options: {-s --startvm} start a vm <name vm> {-l --listvm} show list avaiable vm
Per visualizzare la lista delle vostre vm lanciate il comando:
$ ./start_vm.sh -l
ed avrete la lista delle vostre vm come nell’esempio sotto:
alessio@pluto ~ $ ./start_vm.sh -l ==> Name: ArchLinux Status: stopped ==> Name: CentOS Status: stopped ==> Name: RedHat Status: stopped ==> Name: Squid Status: stopped ==> Name: Test_Win Status: stopped
Per Startare ad esempio la VirtualMachine ArchLinux lanciate:
$ ./start_vm.sh -s ArchLinux
NOTA se avete modificato il path delle vostre virtualmachine ricordate di cambiarlo nello script.