Virtualizzazione · 5 min read · Dec 31, 2025

VBoxHeadless - Esecuzione di Macchine Virtuali Con VirtualBox 4.0 Su Un Server CentOS 5.6 Senza Interfaccia Grafica

VBoxHeadless - Esecuzione di Macchine Virtuali Con VirtualBox 4.0 Su Un Server CentOS 5.6 Senza Interfaccia Grafica

Versione 1.0
Autore: Falko Timme
Seguimi su Twitter

Questa guida spiega come puoi eseguire macchine virtuali con VirtualBox 4.0 su un server CentOS 5.6 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 remota, 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 5.6 (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)…

# groupadd admin  
# useradd -d /home/admin -m -g admin -s /bin/bash admin

… crea una password per il nuovo utente…

# passwd admin

… e accedi come quell’utente.

2 Installazione di VirtualBox

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

$ su

Ora abilitiamo il repository RPMforge sul nostro sistema CentOS poiché il pacchetto dkms ( Dynamic Kernel Module Support Framework - questo pacchetto è necessario per costruire il modulo del kernel di VirtualBox) che stiamo per installare non è disponibile nei repository ufficiali di CentOS 5.6:

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# cd /tmp  
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm  
# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

(Se il link sopra non funziona più, puoi trovare la versione attuale di rpmforge-release qui: http://packages.sw.be/rpmforge-release/)

Poi installiamo le dipendenze per VirtualBox 4.0 come segue:

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

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

Controlla la tua versione del kernel…

# uname -r
[root@server1 kernels]# uname -r  
2.6.18-238.el5  
[root@server1 kernels]#

… e architettura:

# uname -m
[root@server1 2.6.18-238.el5]# uname -m  
x86_64  
[root@server1 2.6.18-238.el5]#

Questo significa che dovrebbe esserci una directory chiamata 2.6.18-238.el5-x86_64 nella directory /usr/src/kernels/. Possiamo controllare questo ora:

# cd /usr/src/kernels/  
# ls -l
[root@server1 kernels]# ls -l  
total 4  
drwxr-xr-x 19 root root 4096 Mag 19 14:26 2.6.18-238.9.1.el5-x86_64  
[root@server1 kernels]#

Come vedi, ho la directory 2.6.18-238.9.1.el5-x86_64, ma non 2.6.18-238.el5-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.18-238.9.1.el5-x86_64 `uname -r`-`uname -m`

Successivamente scarica e registra la chiave pubblica rpm di VirtualBox:

# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc  
# rpm --import oracle_vbox.asc  
# rm -f oracle_vbox.asc

Ora abilitiamo il repository di VirtualBox CentOS sul nostro sistema:

# cd /etc/yum.repos.d/  
# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Possiamo ora semplicemente installare VirtualBox 4.0 come segue:

# yum install VirtualBox-4.0

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

[...]  
Esecuzione Transazione  
  Installazione     : VirtualBox-4.0                        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. 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.0.x86_64 0:4.0.8_71778_rhel5-1  
  
Completato!  
[root@server1 kernels]#

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

[...]  
Creazione del gruppo 'vboxusers'. Gli utenti VM devono essere membri di quel gruppo!  
  
Nessun modulo precompilato per questo kernel trovato -- tentativo di costruirne uno. 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! Gli header del tuo kernel per il kernel 2.6.18-238.el5 non possono essere trovati in  
/lib/modules/2.6.18-238.el5/build o /lib/modules/2.6.18-238.el5/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.0.x86_64 0:4.0.8_71778_rhel5-1  
  
Completato!  
[root@server1 yum.repos.d]#

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.

Digita

# exit

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

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 degli switch disponibili e (altamente consigliato!) dai un’occhiata a http://www.virtualbox.org/manual/ch08.html.

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

$ VBoxManage createvm --name "Ubuntu 11.04 Server" --register  
$ VBoxManage modifyvm "Ubuntu 11.04 Server" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0  
$ VBoxManage createhd --filename Ubuntu_11_04_Server.vdi --size 10000  
$ VBoxManage storagectl "Ubuntu 11.04 Server" --name "IDE Controller" --add ide  
$ VBoxManage storageattach "Ubuntu 11.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_11_04_Server.vdi  
$ VBoxManage storageattach "Ubuntu 11.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-11.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).

Dopo, 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 11.04 Server"

(Sostituisci Ubuntu 11.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 11.04 Server" poweroff

Per mettere in pausa una VM, esegui

$ VBoxManage controlvm "Ubuntu 11.04 Server" pause

Per ripristinare una VM, esegui

$ VBoxManage controlvm "Ubuntu 11.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.