VirtualBox: amministrazione da terminale: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
 
(21 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
{{Versioni compatibili}}{{Virtualbox}}
{{Virtualbox}}
 
== Introduzione ==
= Introduzione =
 
{{Box|Nota|La configurazione della macchina [[host]] presa in esame per la guida  prevede come indirizzo IP di <code>eth0</code> il seguente:  <code>'''192.168.0.100'''</code>.}}
{{Box|Nota|La configurazione della macchina [[host]] presa in esame per la guida  prevede come indirizzo IP di <code>eth0</code> il seguente:  <code>'''192.168.0.100'''</code>.}}
VirtualBox mette a disposizione lo strumento <code>VBoxManage</code> per creare e amministrare le macchine virtuali da terminale. È uno strumento molto potente e complesso e permette di gestire le proprie macchine virtuali in maniera molto dettagliata; ciononostante in questa guida vedremo solo i comandi e le opzioni principali.<br>
VirtualBox mette a disposizione lo strumento <code>VBoxManage</code> per creare e amministrare le macchine virtuali da terminale. È uno strumento molto potente e complesso e permette di gestire le proprie macchine virtuali in maniera molto dettagliata; ciononostante in questa guida vedremo solo i comandi e le opzioni principali.<br>
Per una spiegazione dettagliata del tool consiglio di far riferimento alla User Guide di VirtualBox: http://www.virtualbox.org/manual/UserManual.html#vboxmanage
Per una spiegazione dettagliata del tool consiglio di far riferimento alla User Guide di VirtualBox: [http://www.virtualbox.org/manual/UserManual.html#vboxmanage VBoxManage].
 
{{Suggerimento|Onde evitare complicazioni al momento di avviare la VM si consiglia di decidere subito quale utente si intende usare per avviarla, in modo da usare subito il suddetto utente per la procedura di creazione della medesima.}}
= Creazione di una Virtual Machine =


== Creazione di una Virtual Machine ==
Creiamo innanzitutto una directory dove conservare tutte le nostre macchine virtuali. Io la creerò sotto <code>/opt</code>, ma siete liberi di metterla dove meglio credete (ricordatevi di modificare il percorso nei comandi seguenti!):
Creiamo innanzitutto una directory dove conservare tutte le nostre macchine virtuali. Io la creerò sotto <code>/opt</code>, ma siete liberi di metterla dove meglio credete (ricordatevi di modificare il percorso nei comandi seguenti!):
<pre>
<pre>
Riga 23: Riga 21:
* <code>createvm</code> indica a VBoxManage di creare una nuova virtual machine
* <code>createvm</code> indica a VBoxManage di creare una nuova virtual machine
* <code>--name</code> consente di specificare il nome della nuova virtual machine. Consiglio di usare nomi senza spazi o caratteri strani
* <code>--name</code> consente di specificare il nome della nuova virtual machine. Consiglio di usare nomi senza spazi o caratteri strani
* <code>--basefolder</code> permette di specificare la directory dove sarà creata la virtual machine. All'interno di questa directory sarà automaticamente creata una directory avente il nome che abbiamo assegnato alla virtual machine. Si noti che a meno di non indicare un percorso assoluto tutti i file e le cartelle saranno creati all'interno di <code>~/.Virtualbox</code>.
* <code>--basefolder</code> permette di specificare la directory dove sarà creata la virtual machine. All'interno di questa directory sarà automaticamente creata una directory avente il nome che abbiamo assegnato alla virtual machine.
{{Warningbox|Si noti che a meno di non indicare un percorso assoluto tutti i file e le cartelle saranno creati all'interno della directory <code>~/.Virtualbox</code> dell'utente che sta creando la macchina virtuale.}}
* <code>--register</code> permette di importare in VirtualBox il file XML contenente le specifiche della virtual machine
* <code>--register</code> permette di importare in VirtualBox il file XML contenente le specifiche della virtual machine
<br>
 
Ora modifichiamo la configurazione della nostra nuova virtual machine:
Ora modifichiamo la configurazione della nostra nuova virtual machine:
<pre>
<pre>
# VBoxManage modifyvm prova --memory 1024MB --acpi on --boot1 dvd --boot2 disk --nic1 bridged --bridgeadapter1 eth0 --ostype Windows2003 --usb on
# VBoxManage modifyvm prova --memory 1024 --acpi on --boot1 dvd --boot2 disk --nic1 bridged --bridgeadapter1 eth0 --ostype Windows2003 --usb on
</pre>
</pre>
Le modifiche che abbiamo introdotto nella nostra virtual machine sono le seguenti:
Le modifiche che abbiamo introdotto nella nostra virtual machine sono le seguenti:
Riga 69: Riga 68:
</pre>
</pre>


= Avvio di una macchina virtuale =
Se invece vogliamo utilizzare il lettore CD/DVD della macchina host, anziché ricorrere all'utilizzo di un'immagine ISO, allora:
 
<pre>
=== Importante ===
# VBoxManage storageattach "prova" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium Host:/dev/cdrom
 
</pre>
Qualora si abbia la necessità di accedere a dispositivi USB ricordarsi di aggiungere l'utente usato per creare e amministrare le  macchine virtuali al gruppo ''vboxusers'':
<pre># adduser  nome_utente vboxusers</pre>


== Metodo 1 ==
== Avvio di una macchina virtuale ==
{{Box|IMPORTANTE|
* Qualora si abbia la necessità di accedere a dispositivi USB ricordarsi di aggiungere l'utente usato per creare e amministrare le  macchine virtuali al gruppo ''vboxusers'':<br/>
<pre># adduser nome_utente vboxusers</pre>
* Una macchina virtuale creata e registrata da un certo utente non sarà avviabile da utenti diversi dal medesimo, a meno di non ripetere la procedura di configurazione e registrazione della macchina anche per gli altri utenti o di esportarla e poi importarla.
}}


=== Metodo 1 ===
{{Warningbox|Per utilizzare il protocollo VRDP è necessario aver installato l'extension pack}}
{{Warningbox|Per utilizzare il protocollo VRDP è necessario aver installato l'extension pack}}


Riga 95: Riga 98:
dagli effetti identici al primo, ma senza che la nostra [[shell]] sia resa inutilizzabile. Si noti che in virtualbox i parametri per configurare ''vrdp'' contengono la parola chiave ''vrde'' (e non appunto ''vrdp'' come inve ci si potrebbe aspettare).
dagli effetti identici al primo, ma senza che la nostra [[shell]] sia resa inutilizzabile. Si noti che in virtualbox i parametri per configurare ''vrdp'' contengono la parola chiave ''vrde'' (e non appunto ''vrdp'' come inve ci si potrebbe aspettare).


== Metodo 2 ==
=== Metodo 2 ===
 
Un secondo metodo, molto simile al precedente, prevede di usare in primis screen per generare una sessione di terminale aggiuntiva in cui avviare la macchina virtuale, in secondo luogo di usare il protocollo ''VNC'' al posto di ''VRDE'' (che come già detto è la versione oracle di VRDP). Un volta avviato screen e superata la schermata di benvenuto digitare:
Un secondo metodo, molto simile al precedente, prevede di usare in primis screen per generare una sessione di terminale aggiuntiva in cui avviare la macchina virtuale, in secondo luogo di usare il protocollo ''VNC'' al posto di ''VRDE'' (che come già detto è la versione oracle di VRDP). Un volta avviato screen e superata la schermata di benvenuto digitare:
<pre># VBoxHeadless -s prova -n -m numero_porta</pre>
<pre># VBoxHeadless -s prova -n -m numero_porta</pre>
Riga 103: Riga 105:
* '''-m''' definisce il numero della porta su cui la macchina virtuale rimarrà in ascolto.
* '''-m''' definisce il numero della porta su cui la macchina virtuale rimarrà in ascolto.


= Gestione di una macchina virtuale =
== Gestione di una macchina virtuale ==
 
=== Condividere una o più directory tra host e guest ===
== Condividere una o più directory tra host e guest ==
 
A macchina virtuale spenta è possibile mettere in condivisione automaticamente una o più risorse col seguente comando:
A macchina virtuale spenta è possibile mettere in condivisione automaticamente una o più risorse col seguente comando:
<pre># VBoxManage sharedfolder add prova --name "nome_arbitrario" --hostpath "/percorso/risorsa/host" --automount</pre>
<pre># VBoxManage sharedfolder add prova --name "nome_arbitrario" --hostpath "/percorso/risorsa/host" --automount</pre>
In windows aprendo esplora risorse dette cartelle figureranno ciascuna come dischi di rete cui è già stata assegnata la prima lettera dell'alfabeto disponibile, mentre in linux risulteranno visibili sotto <code>/media</code>, ma ai loro nomi sarà stato sistematicamente aggiunto il prefisso ''sf''. Per maggiori informazioni si veda l'apposita [http://www.virtualbox.org/manual/ch04.html#sharedfolders pagina] del manuale.
In windows aprendo esplora risorse dette cartelle figureranno ciascuna come dischi di rete cui è già stata assegnata la prima lettera dell'alfabeto disponibile, mentre in linux risulteranno visibili sotto <code>/media</code>, ma ai loro nomi sarà stato sistematicamente aggiunto il prefisso ''sf''. Per maggiori informazioni si veda l'apposita [http://www.virtualbox.org/manual/ch04.html#sharedfolders pagina] del manuale.


== Collegamento alla VM da Windows XP ==
=== Collegamento alla VM da Windows XP ===
 
Aprite "Connessione Desktop Remoto" e digitate l'indirizzo IP del vostro server Debian: si aprirà la console della macchina virtuale che avete avviato.
Aprite "Connessione Desktop Remoto" e digitate l'indirizzo IP del vostro server Debian: si aprirà la console della macchina virtuale che avete avviato.


=== Comandi utili di "Connessione Desktop Remoto" ===
==== Comandi utili di "Connessione Desktop Remoto" ====
 
* <code>ALT+PGSU</code>: Passa da un programma all'altro da sinistra verso destra.
* <code>ALT+PGSU</code>: Passa da un programma all'altro da sinistra verso destra.
* <code>ALT+PGGIU</code>: Passa da un programma all'altro da destra verso sinistra.
* <code>ALT+PGGIU</code>: Passa da un programma all'altro da destra verso sinistra.
Riga 130: Riga 128:
* La combinazione <code>CTRL+ALT+CANC</code> ha sempre effetto sul desktop del computer locale. Per inviare la combinazione <code>CTRL+ALT+CANC</code> al computer remoto, è necessario premere <code>'''CTRL+ALT+FINE'''</code>.
* La combinazione <code>CTRL+ALT+CANC</code> ha sempre effetto sul desktop del computer locale. Per inviare la combinazione <code>CTRL+ALT+CANC</code> al computer remoto, è necessario premere <code>'''CTRL+ALT+FINE'''</code>.


== Collegamento alla VM da Linux ==
=== Collegamento alla VM da Linux ===
 
{{Box|Importante|A partire dalla versione 4.1.X la connessione tramite vrde/vrdp è possibile solo dopo aver installato l'extension pack sulla macchina host, anche se la macchina virtuale viene avviata specificando di usare vrde/vrdp.}}


=== VRDE (VRDP) ===
==== VRDE (VRDP) ====
Dalla macchina client aprire un terminale e digitare:
Dalla macchina client aprire un terminale e digitare:
<pre>$ rdesktop -a 16 192.168.0.100</pre>
<pre>$ rdesktop -a 16 192.168.0.100</pre>
Riga 138: Riga 138:
Alternativamente è possibile usare altri applicativi come ''vinagre'' (in tal caso ricordarsi di selezionare il giusto protocollo, cioè RDP e non VNC!) e ''gnome-rdp'' in GNOME, o ''krdc'' in KDE.
Alternativamente è possibile usare altri applicativi come ''vinagre'' (in tal caso ricordarsi di selezionare il giusto protocollo, cioè RDP e non VNC!) e ''gnome-rdp'' in GNOME, o ''krdc'' in KDE.


=== VNC ===
==== VNC ====
Se per un qualsiasi motivo non si riesce (o non si vuole) usare VRDE, perché per esempio si riceve un messaggio d'errore come il seguente:
Se per un qualsiasi motivo non si riesce (o non si vuole) usare VRDE, perché per esempio si riceve un messaggio d'errore come il seguente:
<pre>
<pre>
Autoselected keyboard map it
Autoselected keyboard map it
ERROR: arrakis: unable to connect
ERROR: nome_macchina: unable to connect
</pre>
</pre>
provare ad avviare ''VBoxHeadless'' specificando ''VNC'' come protocollo (opzione ''-n'', si veda il precedente paragrafo ''metodo 2'') ed usare dei client VNC, come i già citati ''vinagre'' e ''krdc''.
provare ad avviare ''VBoxHeadless'' specificando ''VNC'' come protocollo (opzione ''-n'', si veda il precedente paragrafo ''metodo 2'') ed usare dei client VNC, come i già citati ''vinagre'' e ''krdc''.


== Arresto della VM ==
=== Arresto della VM ===
 
Per arrestare la macchina virtuale è possibile sfruttare l'apposita funzione all'interno del sistema guest se si è collegati tramite un client vnc, oppure direttamente dal terminale del server digitando:
Per arrestare la macchina virtuale è possibile sfruttare l'apposita funzione all'interno del sistema guest se si è collegati tramite un client vnc, oppure direttamente dal terminale del server digitando:
<pre># VBoxManage controlvm prova savestate</pre>
<pre># VBoxManage controlvm prova savestate</pre>
Riga 158: Riga 157:
<pre># VBoxManage closemedium dvd "/home/ferdy/w2003.iso"</pre>
<pre># VBoxManage closemedium dvd "/home/ferdy/w2003.iso"</pre>


= Importazione di una Virtual Machine =
== Importazione di una Virtual Machine ==
 
Se  abbiamo già una virtual machine creata in precedenza, possiamo  importarla all'interno della nostra installazione di VirtualBox per poi  avviarla. Per importare una virtual machine esistente si utilizzi il  comando:
Se  abbiamo già una virtual machine creata in precedenza, possiamo  importarla all'interno della nostra installazione di VirtualBox per poi  avviarla. Per importare una virtual machine esistente si utilizzi il  comando:
<pre>
<pre>
Riga 165: Riga 163:
</pre>
</pre>


= Avvio automatico di una Virtual Machine =
== Avvio automatico di una Virtual Machine ==
 
{{Warningbox|
* È bene ricordare che una macchina virtuale creata e registrata da un certo utente non sarà avviabile da utenti diversi dal medesimo, a meno di non ripetere la procedura di configurazione e registrazione della macchina anche per gli altri utenti o di esportarla e poi importarla.
* Non usare nomi contenenti spazi per le VM che si vuole avviare automaticamente.
}}
 
Per avviare una virtual machine come demone al boot di Debian sono sufficienti pochi passi.


Per avviare una virtual machine come demone al boot di Debian sono sufficienti pochi passi.<br>
Innanzitutto creiamo un file per il nostro script di boot:
Innanzitutto creiamo un file per il nostro script di boot:
<pre>
<pre>
Riga 325: Riga 329:
:
:
</pre>
</pre>
I parametri che l'utente può/deve modificare secondo le sue convenzioni sono tre:
* ''VNAME'', se non si è scelto di usare il nome proposto in quest'esempio per la creazione della macchina virtuale.
* ''THIS_FILE'', se non si è scelto di usare il nome proposto in quest'esempio per la creazione dello script.
* ''RUNAS_USERNAME'', se a differenza di quest'esempio non si è creata la VM usando l'utenza di ''root''.
Rendiamo eseguibile lo script appena creato:
Rendiamo eseguibile lo script appena creato:
<pre>
<pre>
Riga 338: Riga 348:
</pre>
</pre>


= Salvare uno snapshot di una Virtual Machine =
=== Disabilitazione script ===
 
Qualora si rendesse necessario disabilitare l'avvio automatico è sufficiente digitare da terminale:
<pre># update-rc.d -f provavm remove</pre>
Rimuovere fisicamente lo script dalla directory <code>/etc/init.d/</code> è facoltativo.
 
== Salvare uno snapshot di una Virtual Machine ==


Anche da linea di comando è possibile lavorare con gli snapshot di una macchina virtuale. Vediamo come.
Anche da linea di comando è possibile lavorare con gli snapshot di una macchina virtuale. Vediamo come.
Riga 358: Riga 374:
</pre>
</pre>


= Aggiunta di una seconda Virtual Machine =
== Condividere cartelle tra host e guest ==
 
Si veda l'omonima sezione della guida dedicata all'[[VirtualBox: amministrazione da interfaccia grafica#Condividere cartelle tra host e guest| interfaccia grafica]].
 
== Aggiunta di una seconda Virtual Machine ==
Nel caso volessimo avere più di una Virtual Machine sullo stesso server fisico, occorrerà ripetere per ogni macchina virtuale le operazioni descritte fino a qui.


Nel caso volessimo avere più di una Virtual Machine sullo stesso server fisico, occorrerà ripetere per ogni macchina virtuale le operazioni descritte fino a qui.<br/>
In più sarà necessario indicare a VirtualBox la porta RDP su cui mettere in ascolto ogni altra Virtual Machine diversa dalla prima, tenendo a mente che ad ogni porta può corrispondere solo una macchina virtuale. Poichè di default VRDP si pone in ascolto sulla porta 3389 (a questa porta risponderà la prima Virtual Machine installata), impostiamo come porta per la nostra seconda Virtual Machine la porta successiva:
In più sarà necessario indicare a VirtualBox la porta RDP su cui mettere in ascolto ogni altra Virtual Machine diversa dalla prima, tenendo a mente che ad ogni porta può corrispondere solo una macchina virtuale. Poichè di default VRDP si pone in ascolto sulla porta 3389 (a questa porta risponderà la prima Virtual Machine installata), impostiamo come porta per la nostra seconda Virtual Machine la porta successiva:
<pre>
<pre>
Riga 367: Riga 387:
In questa maniera otterremo due macchine virtuali, entrambe avviabili al boot del server; la prima in ascolto sulla porta 3389, la seconda in ascolto sulla porta 3390 all'indirizzo IP del nostro server.
In questa maniera otterremo due macchine virtuali, entrambe avviabili al boot del server; la prima in ascolto sulla porta 3389, la seconda in ascolto sulla porta 3390 all'indirizzo IP del nostro server.


= Eliminazione di una macchina virtuale =
== Eliminazione di una macchina virtuale ==
 
{{Warningbox|Tutte le seguenti operazioni vanno effettuate a VM spenta.}}
{{Warningbox|Tutte le seguenti operazioni vanno effettuate a VM spenta.}}


<pre># VBoxManage unregistervm prova --delete</pre>
<pre># VBoxManage unregistervm prova --delete</pre>
L'opzione ''--delete'' permette una contestuale eliminazione dei file associati. Qualora la cartella <code>/opt/vm/prova</code> non fosse stata automaticamente eliminata provvedere manualmente per recuperare spazio su disco.<br/>
L'opzione ''--delete'' permette una contestuale eliminazione dei file associati. Qualora la cartella <code>/opt/vm/prova</code> non fosse stata automaticamente eliminata provvedere manualmente per recuperare spazio su disco.
 
Secondariamente rimuovere dai dispositivi conosciuti il disco dati:
Secondariamente rimuovere dai dispositivi conosciuti il disco dati:
<pre>VBoxManage closemedium disk /opt/vm/prova/prova.vdi</pre>
<pre>VBoxManage closemedium disk /opt/vm/prova/prova.vdi</pre>
[[Categoria:Virtualizzazione]] [[Categoria:Non-Free]]
2 853

contributi

Menu di navigazione