Virtualizzazione · 5 min read · Dec 26, 2025

VBoxHeadless - Esecuzione di macchine virtuali con VirtualBox 4.1 su un server CentOS 6.2 senza interfaccia grafica

VBoxHeadless - Esecuzione di macchine virtuali con VirtualBox 4.1 su un server CentOS 6.2 senza interfaccia grafica

Versione 1.0
Autore: Falko Timme
Seguimi su Twitter

Questa guida spiega come puoi eseguire macchine virtuali con VirtualBox 4.1 su un server CentOS 6.2 senza interfaccia grafica. Normalmente utilizzi l’interfaccia grafica di VirtualBox per gestire le tue macchine virtuali, ma un server non ha un ambiente desktop. Fortunatamente, VirtualBox viene fornito con uno strumento chiamato VBoxHeadless che ti consente di connetterti alle macchine virtuali tramite una connessione desktop remoto, quindi non c’è bisogno dell’interfaccia grafica di VirtualBox.

Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota preliminare

Ho testato questo su un server CentOS 6.2 (sistema host) con l’indirizzo IP 192.168.0.100 dove sono loggato come utente normale (nome utente admin in questo esempio) invece che come root.

Se hai solo un account root, ma nessun account utente normale, creane uno come segue (utente admin, gruppo admin)…

… crea una password per il nuovo utente…

# passwd admin

… e accedi come quell’utente.

2 Installazione di VirtualBox

Per installare VirtualBox 4.1 sul nostro server CentOS 6.2, abbiamo bisogno dei privilegi di root, quindi eseguiamo

$ su

Poi installiamo le dipendenze per VirtualBox 4.1 come segue:

# yum groupinstall 'Development Tools'
# yum install SDL kernel-devel kernel-headers dkms

Con l’ultimo comando abbiamo installato gli header del kernel del nostro kernel attualmente utilizzato. Gli header si trovano nella directory /usr/src/kernels/, ma è probabile che la sua directory non sia chiamata -, ma abbia un nome diverso in modo che il modulo del kernel di VirtualBox non possa essere costruito successivamente perché non può essere trovata la directory degli header del kernel prevista. Ora correggeremo questo:

Controlla la tua versione del kernel…

# uname -r

[root@server1 ~]# uname -r
2.6.32-220.el6.x86_64
[root@server1 ~]#

Questo significa che dovrebbe esserci una directory chiamata 2.6.32-220.el6.x86_64 nella directory /usr/src/kernels/. Possiamo controllare questo ora:

[root@server1 kernels]# ls -l
total 4
drwxr-xr-x 22 root root 4096 Jun 25 17:30 2.6.32-220.23.1.el6.x86_64
[root@server1 kernels]#

Come vedi, ho la directory 2.6.32-220.23.1.el6.x86_64, ma non 2.6.32-220.el6.x86_64. Pertanto, creiamo un symlink chiamato 2.6.18-238.el5-x86_64 che punta a 2.6.18-238.9.1.el5-x86_64:

# ln -s 2.6.32-220.23.1.el6.x86_64 `uname -r`

Successivamente scarica e registra la chiave pubblica rpm di VirtualBox:

Ora abilitiamo il repository di VirtualBox CentOS sul nostro sistema:

Possiamo ora semplicemente installare VirtualBox 4.1 come segue:

# yum install VirtualBox-4.1

Se l’installazione ha esito positivo, l’output dovrebbe terminare come segue:

[…]
Esecuzione transazione
Installazione : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64                                                                                                 1/1

Creazione del gruppo ’vboxusers’. Gli utenti VM devono essere membri di quel gruppo!

Nessun modulo precompilato per questo kernel trovato – tentativo di costruirne uno. I messaggi
emessi durante la compilazione del modulo saranno registrati in /var/log/vbox-install.log.

Arresto dei moduli del kernel di VirtualBox [  OK  ]
Disinstallazione dei vecchi moduli del kernel DKMS di VirtualBox [  OK  ]
Tentativo di registrare i moduli del kernel di VirtualBox utilizzando DKMS [  OK  ]
Avvio dei moduli del kernel di VirtualBox [  OK  ]

Installato:
VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1

Completato!
[root@server1 kernels]#

(Se l’installazione fallisce perché non può essere trovata la directory degli header del kernel corretta, l’output terminerà come segue:

[…]
Esecuzione transazione
Installazione : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64                                                                                                 1/1

Creazione del gruppo ’vboxusers’. Gli utenti VM devono essere membri di quel gruppo!

Nessun modulo precompilato per questo kernel trovato – tentativo di costruirne uno. I messaggi
emessi durante la compilazione del modulo saranno registrati in /var/log/vbox-install.log.

Arresto dei moduli del kernel di VirtualBox [  OK  ]
Disinstallazione dei vecchi moduli del kernel DKMS di VirtualBox [  OK  ]
Tentativo di registrare i moduli del kernel di VirtualBox utilizzando DKMS
Errore! La tua sorgente del kernel per il kernel 2.6.32-220.el6.x86_64 non può essere trovata in
/lib/modules/2.6.32-220.el6.x86_64/build o /lib/modules/2.6.32-220.el6.x86_64/source.
[FAILED]
(Fallito, tentativo senza DKMS)
Ricompilazione dei moduli del kernel di VirtualBox [FAILED]
(Guarda /var/log/vbox-install.log per scoprire cosa è andato storto)

Installato:
VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1

Completato!
[root@server1 kernels]#

In questo caso, prova a creare il symlink del kernel corretto (come mostrato prima) e poi esegui

# /etc/init.d/vboxdrv setup

per creare il modulo del kernel di VirtualBox.)

Ora dobbiamo aggiungere l’utente che eseguirà VirtualBox (admin in questo esempio) al gruppo vboxusers:

# /usr/sbin/usermod -G vboxusers admin

VirtualBox è ora installato e pronto per essere utilizzato.

A partire dalla versione 4.0, VirtualBox ha introdotto i cosiddetti “pacchetti di estensione” e ha esternalizzato alcune funzionalità come il supporto per la connessione desktop remoto (VRDP) che faceva parte dei pacchetti di VirtualBox prima della versione 4.0 in questi pacchetti di estensione. Poiché abbiamo bisogno di connessioni desktop remoto per controllare le nostre macchine virtuali, dobbiamo installare ora il pacchetto di estensione appropriato. Vai su http://www.virtualbox.org/wiki/Downloads, e troverai un link al seguente pacchetto di estensione:

Pacchetto di estensione Oracle VM VirtualBox 4.1.18
Supporto per dispositivi USB 2.0, VirtualBox RDP e avvio PXE per schede Intel.

Scarica e installa il pacchetto di estensione come segue:

(Assicurati di scaricare l’ultima versione dal sito web di VirtualBox.)

Digita

# exit

per uscire dall’account root e tornare a essere un utente normale (admin) di nuovo.

3 Utilizzo di VirtualBox dalla riga di comando

3.1 Creazione di una VM

Per creare una VM dalla riga di comando, possiamo utilizzare il comando VBoxManage. Vedi

$ VBoxManage --help

per un elenco delle opzioni disponibili e (altamente consigliato!) dai un’occhiata a http://www.virtualbox.org/manual/ch08.html.

Ora creerò una VM Ubuntu 12.04 Server con 1024MB di memoria e un disco rigido da 10GB dall’immagine iso di Ubuntu 12.04 Server (che ho memorizzato in /home/ubuntu-12.04-server-amd64.iso):

$ VBoxManage createvm –name “Ubuntu 12.04 Server” –register
$ VBoxManage modifyvm “Ubuntu 12.04 Server” –memory 1024 –acpi on –boot1 dvd –nic1 bridged –bridgeadapter1 eth0
$ VBoxManage createhd –filename Ubuntu_12_04_Server.vdi –size 10000
$ VBoxManage storagectl “Ubuntu 12.04 Server” –name “IDE Controller” –add ide
$ VBoxManage storageattach “Ubuntu 12.04 Server” –storagectl “IDE Controller” –port 0 –device 0 –type hdd –medium Ubuntu_12_04_Server.vdi
$ VBoxManage storageattach “Ubuntu 12.04 Server” –storagectl “IDE Controller” –port 1 –device 0 –type dvddrive –medium /home/ubuntu-12.04-server-amd64.iso

3.2 Importazione di una VM esistente

Supponiamo che tu abbia una VM chiamata examplevm che desideri riutilizzare su questo host. Sul vecchio host, dovresti avere una directory Machines/examplevm nella directory di VirtualBox; Machines/examplevm dovrebbe contenere il file examplevm.xml. Copia la directory examplevm (incluso il file examplevm.xml) nella tua nuova directory Machines (se il tuo nome utente è admin, questa è /home/admin/.VirtualBox/Machines - il risultato dovrebbe essere /home/admin/.VirtualBox/Machines/examplevm/examplevm.xml).

In aggiunta a ciò copia il file examplevm.vdi dalla vecchia directory VDI a quella nuova (ad esempio /home/admin/.VirtualBox/VDI/examplevm.vdi).

Successivamente, devi registrare la VM importata:

$ VBoxManage registervm Machines/examplevm/examplevm.xml

3.3 Avvio di una VM con VBoxHeadless

Indipendentemente dal fatto che tu crei una nuova VM o importi una vecchia, puoi avviarla con il comando:

$ VBoxHeadless --startvm "Ubuntu 12.04 Server"

(Sostituisci Ubuntu 12.04 Server con il nome della tua VM.)

VBoxHeadless avvierà la VM e un server VRDP (VirtualBox Remote Desktop Protocol) che ti consente di vedere l’output della VM da remoto su un’altra macchina.

Per fermare una VM, esegui

 $ VBoxManage controlvm "Ubuntu 12.04 Server" poweroff

Per mettere in pausa una VM, esegui

$ VBoxManage controlvm "Ubuntu 12.04 Server" pause

Per ripristinare una VM, esegui

$ VBoxManage controlvm "Ubuntu 12.04 Server" reset

Per saperne di più su VBoxHeadless, dai un’occhiata a

$ VBoxHeadless --help

e a http://www.virtualbox.org/manual/ch07.html#vboxheadless.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.