Virtualizzazione · 5 min read · Dec 01, 2025

VBoxHeadless - Esecuzione di macchine virtuali con VirtualBox 4.1 su un server Fedora 17 senza interfaccia grafica

VBoxHeadless - Esecuzione di macchine virtuali con VirtualBox 4.1 su un server Fedora 17 senza interfaccia grafica

Versione 1.0
Autore: Falko Timme
Seguimi su Twitter

Questa guida spiega come eseguire macchine virtuali con VirtualBox 4.1 su un server Fedora 17 senza interfaccia grafica. Normalmente si utilizza l’interfaccia grafica di VirtualBox per gestire le macchine virtuali, ma un server non ha un ambiente desktop. Fortunatamente, VirtualBox include uno strumento chiamato VBoxHeadless che consente di connettersi alle macchine virtuali tramite una connessione desktop remota, quindi non è necessaria l’interfaccia grafica di VirtualBox.

Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota preliminare

Ho testato questo su un server Fedora 17 (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.1 sul nostro server Fedora 17, abbiamo bisogno dei privilegi di root, quindi eseguiamo

$ su

Poi installiamo le dipendenze per VirtualBox 4.1 come segue:

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

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 Fedora sul nostro sistema:

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

Possiamo ora semplicemente installare VirtualBox 4.1 come segue:

# yum install VirtualBox-4.1

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 remota (VRDP) che faceva parte dei pacchetti di VirtualBox prima della versione 4.0 in questi pacchetti di estensione. Poiché abbiamo bisogno di connessioni desktop remote 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:

VirtualBox 4.1.18 Oracle VM VirtualBox Extension Pack  
Supporto per dispositivi USB 2.0, VirtualBox RDP e avvio PXE per schede Intel.

Scarica e installa il pacchetto di estensione come segue:

# cd /tmp  
# wget http://download.virtualbox.org/virtualbox/4.1.18/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack  
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack

(Assicurati di scaricare l’ultima versione dal sito web 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 delle opzioni disponibili e (altamente consigliato!) dai un’occhiata a http://www.virtualbox.org/manual/ch08.html.

Prima di creare una macchina virtuale, dobbiamo scoprire come è denominato il dispositivo di rete principale su Fedora:

$ ifconfig
[admin@server1 ~]$ ifconfig  
lo: flags=73  mtu 16436  
        inet 127.0.0.1  netmask 255.0.0.0  
        inet6 ::1 prefixlen 128 scopeid 0x10  
        loop  txqueuelen 0  (Local Loopback)  
        RX packets 0  bytes 0 (0.0 B)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 0  bytes 0 (0.0 B)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
p3p1: flags=4163  mtu 1500  
        inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255  
        inet6 fe80::20c:29ff:fe58:4256 prefixlen 64 scopeid 0x20  
        ether 00:0c:29:58:42:56 txqueuelen 1000  (Ethernet)  
        RX packets 1133921  bytes 963213128 (918.5 MiB)  
        RX errors 0  dropped 6  overruns 0  frame 0  
        TX packets 478361  bytes 28634802 (27.3 MiB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0  
  
[admin@server1 ~]$

Come puoi vedere, si chiama p3p1 in questo caso - ti prego di tenerlo a mente.

Ora creerò una VM Ubuntu 12.04 Server con 1024MB di memoria e un hard disk 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

Nel comando successivo dobbiamo specificare l’interfaccia di rete corretta (p3p1 nel mio caso):

$ VBoxManage modifyvm "Ubuntu 12.04 Server" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 p3p1
$ 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.