VirtualBox: amministrazione da terminale: differenze tra le versioni

nessun oggetto della modifica
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 2: Riga 2:
=Introduzione=
=Introduzione=
Virtualbox è un software di virtualizzazione sviluppato da Sun; normalmente viene utilizzato come un normale programma dotato di interfaccia grafica, ma con qualche accorgimento è possibile installarlo e utilizzarlo anche su una macchina server dove non sia stato installato il server grafico X.org.<br>
Virtualbox è un software di virtualizzazione sviluppato da Sun; normalmente viene utilizzato come un normale programma dotato di interfaccia grafica, ma con qualche accorgimento è possibile installarlo e utilizzarlo anche su una macchina server dove non sia stato installato il server grafico X.org.<br>
La configurazione della macchina host presa in esame per la guida prevede come indirizzo IP di <tt>eth0</tt> il seguente: <tt>'''192.168.0.100'''</tt>.
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>.
=Installazione=
=Installazione=
VirtualBox è rilasciato in due versioni e con due licenze diverse: la versione opensource ha alcune limitazioni (non gestisce l'USB, ad esempio); la versione completa non è opensource, ma è liberamente scaricabile per utilizzi non commerciali.<br>
VirtualBox è rilasciato in due versioni e con due licenze diverse: la versione opensource ha alcune limitazioni (non gestisce l'USB, ad esempio); la versione completa non è opensource, ma è liberamente scaricabile per utilizzi non commerciali.<br>
Per installare VirtualBox nella sua versione completa (quella opensource, chiamata <tt>virtualbox-ose</tt> è già presente nei repository di Debian) occorre aggiungere il repository di VirtualBox. Aprite il vostro sources.list:
Per installare VirtualBox nella sua versione completa (quella opensource, chiamata <code>virtualbox-ose</code> è già presente nei repository di Debian) occorre aggiungere il repository di VirtualBox. Aprite il vostro <code>sources.list</code>:
<pre>
<pre>
# nano /etc/apt/sources.list
# nano /etc/apt/sources.list
Riga 31: Riga 31:
# apt-get install linux-headers-$(uname -r) build-essential virtualbox-3.1
# apt-get install linux-headers-$(uname -r) build-essential virtualbox-3.1
</pre>
</pre>
Sostituite <tt>virtualbox-3.1</tt>
Sostituite <code>virtualbox-3.1</code>
* con <tt>virtualbox</tt> per installare VirtualBox 1.6.6
* con <code>virtualbox</code> per installare VirtualBox 1.6.6
* con <tt>virtualbox-2.0</tt> per installare VirtualBox 2.0.12
* con <code>virtualbox-2.0</code> per installare VirtualBox 2.0.12
* con <tt>virtualbox-2.1</tt> per installare VirtualBox 2.1.4
* con <code>virtualbox-2.1</code> per installare VirtualBox 2.1.4
* con <tt>virtualbox-2.2</tt> per installare VirtualBox 2.2.4
* con <code>virtualbox-2.2</code> per installare VirtualBox 2.2.4
* con <tt>virtualbox-3.0</tt> per installare VirtualBox 3.0.12
* con <code>virtualbox-3.0</code> per installare VirtualBox 3.0.12
Prima di effettuare l'installazione, controllate alla pagina http://www.virtualbox.org/wiki/Linux_Downloads che non esistano versioni più nuove di quelle elencate in questa guida; in caso ci fossero, sostituite il comando precedente con quello che si adatta alla versione che desiderate installate.<br>
Prima di effettuare l'installazione, controllate alla pagina http://www.virtualbox.org/wiki/Linux_Downloads che non esistano versioni più nuove di quelle elencate in questa guida; in caso ci fossero, sostituite il comando precedente con quello che si adatta alla versione che desiderate installate.<br>
Durante l'installazione, che purtroppo comprende come dipendenze circa 160 MB di librerie di KDE, di Gnome e di varia natura, vi verranno poste alcune domande:
Durante l'installazione, che purtroppo comprende come dipendenze circa 160 MB di librerie di KDE, di Gnome e di varia natura, vi verranno poste alcune domande:
Riga 53: Riga 53:
W: Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3
W: Possible missing firmware /lib/firmware/tigon/tg3.bin for module tg3
</pre>
</pre>
Se, come me, siete persone che non dormono all'idea di avere un sistema con un'incompletezza, aprite di nuovo il vostro <tt>sources.list</tt> e, poichè il firmware in oggetto si trova in un pacchetto disponibile solo per Sid, modificatelo aggiungendo questa riga:
Se, come me, siete persone che non dormono all'idea di avere un sistema con un'incompletezza, aprite di nuovo il vostro <code>sources.list</code> e, poiché il firmware in oggetto si trova in un pacchetto disponibile solo per Sid, modificatelo aggiungendo questa riga:
<pre>
<pre>
deb http://ftp.de.debian.org/debian sid main non-free
deb http://ftp.de.debian.org/debian sid main non-free
Riga 62: Riga 62:
# apt-get install firmware-linux-nonfree
# apt-get install firmware-linux-nonfree
</pre>
</pre>
che non porta con alcuna dipendenza.<br>
che non porta con alcuna dipendenza.<br>
Come è intuibile dal nome, siate consapevoli che state installando un pacchetto contenente firmware '''non liberi'''.<br>
Come è intuibile dal nome, siate consapevoli che state installando un pacchetto contenente firmware '''non liberi'''.<br>
Una volta completata l'operazione, modificate nuovamente il vostro <tt>sources.list</tt> ed '''eliminate ogni traccia di Sid'''!! (Siamo pur sempre su un server e vogliamo stabilità innanzitutto...).<br>
Una volta completata l'operazione, modificate nuovamente il vostro <code>sources.list</code> ed '''eliminate ogni traccia di Sid'''!! (Siamo pur sempre su un server e vogliamo stabilità innanzitutto...).<br>
Verificate infine che siano presenti i seguenti files:
Verificate infine che siano presenti i seguenti file:
<pre>
<pre>
/lib/firmware/tigon/tg3_tso5.bin  
/lib/firmware/tigon/tg3_tso5.bin  
Riga 71: Riga 71:
/lib/firmware/tigon/tg3.bin
/lib/firmware/tigon/tg3.bin
</pre>
</pre>
Per poter utilizzare VirtualBox come normale utente, occorre infine aggiungere quest'ultimo al gruppo <tt>vboxusers</tt>:
Per poter utilizzare VirtualBox come normale utente, occorre infine aggiungere quest'ultimo al gruppo <code>vboxusers</code>:
<pre>
<pre>
# adduser nome_utente vboxusers
# adduser nome_utente vboxusers
Riga 77: Riga 77:


=Utilizzare VirtualBox da linea di comando=
=Utilizzare VirtualBox da linea di comando=
VirtualBox mette a disposizione lo strumento <tt>VBoxManage</tt> per creare e amministrare le macchine virtuali da terminale. E' 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
==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 <tt>/opt</tt>, 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>
# mkdir /opt/vm
# mkdir /opt/vm
Riga 89: Riga 89:
</pre>
</pre>
Analizziamo il comando seguente:
Analizziamo il comando seguente:
* <tt>createvm</tt> indica a VBoxManage di creare una nuova virtual machine
* <code>createvm</code> indica a VBoxManage di creare una nuova virtual machine
* <tt>--name</tt> 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
* <tt>--basefolder</tt> 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
* <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
* <tt>--register</tt> 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>
<br>
Ora modifichiamo la configurazione della nostra nuova virtual machine:
Ora modifichiamo la configurazione della nostra nuova virtual machine:
Riga 99: Riga 99:
</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:
* <tt>--memory</tt> specifica in MB la dimensione della RAM da assegnare
* <code>--memory</code> specifica in MB la dimensione della RAM da assegnare
* <tt>--acpi</tt> abilita o disabilita la modalità ACPI
* <code>--acpi</code> abilita o disabilita la modalità ACPI
* <tt>--boot1</tt> specifica che il primo dispositivo di boot è nel nostro caso un DVD
* <code>--boot1</code> specifica che il primo dispositivo di boot è nel nostro caso un DVD
* <tt>--boot2</tt> specifica che il secondo dispositivo di boot è nel nostro caso l'hard disk virtuale
* <code>--boot2</code> specifica che il secondo dispositivo di boot è nel nostro caso l'hard disk virtuale
* <tt>--nic1</tt> indica che la prima interfaccia di rete virtuale utilizzerà la modalità bridge
* <code>--nic1</code> indica che la prima interfaccia di rete virtuale utilizzerà la modalità bridge
* <tt>--bridgeadapter1</tt> indica l'interfaccia di rete del nostro server Debian che verrà usata dalla virtual machine
* <code>--bridgeadapter1</code> indica l'interfaccia di rete del nostro server Debian che verrà usata dalla virtual machine
* <tt>--ostype</tt> permette di specificare il tipo di sistema virtuale che installeremo. Per un elenco si dia il comando <tt>VBoxManage list ostypes</tt>
* <code>--ostype</code> permette di specificare il tipo di sistema virtuale che installeremo. Per un elenco si dia il comando <code>VBoxManage list ostypes</code>
* <tt>--usb</tt> abilita o disabilita le porte USB
* <code>--usb</code> abilita o disabilita le porte USB
Ogni volta che, attraverso il parametro <tt>modifyvm</tt> apportate delle modifiche alla configurazione della vostra virtual machine, queste vengono registrate nel file XML creato in precedenza.
Ogni volta che, attraverso il parametro <code>modifyvm</code> apportate delle modifiche alla configurazione della vostra virtual machine, queste vengono registrate nel file XML creato in precedenza.
<br>
<br>
Ora preoccupiamoci di creare un hard disk virtuale per la nostra virtual machine:
Ora preoccupiamoci di creare un hard disk virtuale per la nostra virtual machine:
Riga 114: Riga 114:
</pre>
</pre>
Piccola spiegazione:
Piccola spiegazione:
* <tt>--filename</tt> specifica la directory dove creare il disco virtuale
* <code>--filename</code> specifica la directory dove creare il disco virtuale
* <tt>--size</tt> indica la dimensione del disco in MB
* <code>--size</code> indica la dimensione del disco in MB
<br>
<br>
Ora modifichiamo la virtual machine collegandole il disco virtuale che abbiamo appena creato:
Ora modifichiamo la virtual machine collegandole il disco virtuale che abbiamo appena creato:
Riga 121: Riga 121:
# VBoxManage modifyvm prova -hda /opt/vm/prova/prova.vdi
# VBoxManage modifyvm prova -hda /opt/vm/prova/prova.vdi
</pre>
</pre>
Possiamo collegare alla nostra macchina un massimo di 3 hard disk virtuali (<tt>hda</tt>, <tt>hdb</tt>, <tt>hdd</tt>). <tt>hdc</tt> è riservato per il CD/DVD.
Possiamo collegare alla nostra macchina un massimo di 3 hard disk virtuali (<code>hda</code>, <code>hdb</code>, <code>hdd</code>). <code>hdc</code> è riservato per il CD/DVD.
<br><br>
<br><br>
Arrivati a questo punto dobbiamo montare un'immagine ISO o un CD/DVD nel nostro lettore CD/DVD virtuale, in modo di poter installare il nostro sistema operativo virtuale. In questo esempio monterò un'immagine ISO:
Arrivati a questo punto dobbiamo montare un'immagine ISO o un CD/DVD nel nostro lettore CD/DVD virtuale, in modo di poter installare il nostro sistema operativo virtuale. In questo esempio monterò un'immagine ISO:
Riga 139: Riga 139:
# VBoxHeadless --startvm prova
# VBoxHeadless --startvm prova
</pre>
</pre>
Il comando <tt>VBoxHeadless</tt> avvia la virtual machine indicata e nel contempo inizializza una sessione VRDP Server (Virtual Remote Desktop Protocol). Purtroppo però, pur essendo il comando suggerito dalla User Guide di VirtualBox, ha il difetto di bloccare la sessione di terminale fino allo spegnimento della macchina virtuale. Per questo motivo consiglio di avviare una virtual machine con il comando alternativo:
Il comando <code>VBoxHeadless</code> avvia la virtual machine indicata e nel contempo inizializza una sessione VRDP Server (Virtual Remote Desktop Protocol). Purtroppo però, pur essendo il comando suggerito dalla User Guide di VirtualBox, ha il difetto di bloccare la sessione di terminale fino allo spegnimento della macchina virtuale. Per questo motivo consiglio di avviare una virtual machine con il comando alternativo:
<pre>
<pre>
# VBoxManage startvm prova --type vrdp
# VBoxManage startvm prova --type vrdp
Riga 147: Riga 147:
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"==
* <tt>ALT+PGSU</tt>: Passa da un programma all'altro da sinistra verso destra.
* <code>ALT+PGSU</code>: Passa da un programma all'altro da sinistra verso destra.
* <tt>ALT+PGGIÙ</tt>: Passa da un programma all'altro da destra verso sinistra.
* <code>ALT+PGGIU</code>: Passa da un programma all'altro da destra verso sinistra.
* <tt>ALT+INS</tt>: Passa da un programma all'altro nell'ordine in cui sono stati aperti.
* <code>ALT+INS</code>: Passa da un programma all'altro nell'ordine in cui sono stati aperti.
* <tt>ALT+HOME</tt>: Visualizza il menu Start.
* <code>ALT+HOME</code>: Visualizza il menu Start.
* <tt>CTRL+ALT+INTERR</tt>: Passa da una finestra alla modalità schermo intero e viceversa.
* <code>CTRL+ALT+INTERR</code>: Passa da una finestra alla modalità schermo intero e viceversa.
* <tt>CTRL+ALT+FINE</tt>: Visualizza la finestra di dialogo Protezione di Windows.
* <code>CTRL+ALT+FINE</code>: Visualizza la finestra di dialogo Protezione di Windows.
* <tt>ALT+CANC</tt>: Visualizza il menu Windows.
* <code>ALT+CANC</code>: Visualizza il menu Windows.
* <tt>CTRL+ALT+SEGNO MENO (-) del tastierino numerico</tt>: Copia negli Appunti del computer remoto la finestra attiva del computer client (esegue la stessa funzione della combinazione di tasti ALT+STAMP in un computer locale).
* <code>CTRL+ALT+SEGNO MENO (-) del tastierino numerico</code>: Copia negli Appunti del computer remoto la finestra attiva del computer client (esegue la stessa funzione della combinazione di tasti ALT+STAMP in un computer locale).
* <tt>CTRL+ALT+SEGNO PIÙ (+) del tastierino numerico</tt>: Copia negli Appunti del computer remoto l'intera schermata del computer client (esegue la stessa funzione del tasto STAMP in un computer locale).
* <code>CTRL+ALT+SEGNO PIÙ (+) del tastierino numerico</code>: Copia negli Appunti del computer remoto l'intera schermata del computer client (esegue la stessa funzione del tasto STAMP in un computer locale).
* <tt>CTRL+ALT+freccia DESTRA</tt>: Consente di spostarsi al di fuori dei controlli di Desktop remoto su un controllo nel programma host, ad esempio un pulsante o una casella di testo. Utile quando i controlli di Desktop remoto sono incorporati in un altro programma (host).
* <code>CTRL+ALT+freccia DESTRA</code>: Consente di spostarsi al di fuori dei controlli di Desktop remoto su un controllo nel programma host, ad esempio un pulsante o una casella di testo. Utile quando i controlli di Desktop remoto sono incorporati in un altro programma (host).
* <tt>CTRL+ALT+freccia SINISTRA</tt>: Consente di spostarsi al di fuori dei controlli di Desktop remoto su un controllo nel programma host, ad esempio un pulsante o una casella di testo. Utile quando i controlli di Desktop remoto sono incorporati in un altro programma (host).
* <code>CTRL+ALT+freccia SINISTRA</code>: Consente di spostarsi al di fuori dei controlli di Desktop remoto su un controllo nel programma host, ad esempio un pulsante o una casella di testo. Utile quando i controlli di Desktop remoto sono incorporati in un altro programma (host).
* La combinazione <tt>CTRL+ALT+CANC</tt> ha sempre effetto sul desktop del computer locale. Per inviare la combinazione <tt>CTRL+ALT+CANC</tt> al computer remoto, è necessario premere <tt>'''CTRL+ALT+FINE'''</tt>.
* 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=
Riga 175: Riga 175:
=Avvio automatico di una Virtual Machine=
=Avvio automatico di una Virtual Machine=
Per avviare una virtual machine come demone al boot di Debian sono sufficienti pochi passi.<br>
Per avviare una virtual machine come demone al boot di Debian sono sufficienti pochi passi.<br>
Inannzitutto creiamo un file per il nostro script di boot:
Innanzitutto creiamo un file per il nostro script di boot:
<pre>
<pre>
# nano /etc/init.d/provavm
# nano /etc/init.d/provavm
Riga 333: Riga 333:
# chmod 755 /etc/init.d/provavm
# chmod 755 /etc/init.d/provavm
</pre>
</pre>
e creiamo i link alle directory <tt>rcX.d</tt>:
e creiamo i link alle directory <code>rcX.d</code>:
<pre>
<pre>
# update-rc.d provavm defaults
# update-rc.d provavm defaults
Riga 343: Riga 343:


=Installazione delle Guest Addictions=
=Installazione delle Guest Addictions=
Il pacchetto Guest Addictions contiene i drivers per l'hardware virtuale emulato da VirtualBox e, se installato, permette di migliorare stabilità e prestazioni della nostra virtual machine.<br>
Il pacchetto Guest Addictions contiene i driver per l'hardware virtuale emulato da VirtualBox e, se installato, permette di migliorare stabilità e prestazioni della nostra virtual machine.<br>
In maniera molto semplice, io ho scaricato l'immagine ISO delle Guest Addictions da qui: http://download.virtualbox.org/virtualbox/ , stando bene attento a scegliere la versione di VirtualBox che ho installato sul server. Poi ho montato l'immagine ISO all'interno del sistema operativo virtuale e ho installato i drivers.
In maniera molto semplice, io ho scaricato l'immagine ISO delle Guest Addictions da qui: http://download.virtualbox.org/virtualbox/ , stando bene attento a scegliere la versione di VirtualBox che ho installato sul server. Poi ho montato l'immagine ISO all'interno del sistema operativo virtuale e ho installato i driver.


=Salvare uno snapshot di una Virtual Machine=
=Salvare uno snapshot di una Virtual Machine=
6 999

contributi