VirtualBox

VirtualBox és un programari de virtualització de codi obert desenvolupat per Sun Microsystems, actualment propietat d’Oracle, que permet executar sistemes operatius complets dins d’un sistema amfitrió, com si fossin programes normals.

VirtualBox logo

1. Què és la virtualització?

La virtualització consisteix a crear una màquina virtual (VM): un ordinador simulat per programari que té el seu propi processador, memòria, disc dur i targeta de xarxa, però que en realitat s’executa sobre el maquinari físic de l’ordinador real.

Arquitectura de virtualització

2. Característiques principals

2.1 Plataformes suportades

VirtualBox funciona com a amfitrió en:

I permet executar com a convidat pràcticament qualsevol sistema: Linux, Windows, BSD, Solaris, DOS…

2.2 Guest Additions

Les Guest Additions són un conjunt de controladors i utilitats que s’instal·len dins la màquina virtual per millorar-ne el rendiment i la integració:

Instal·lació de Guest Additions en Ubuntu Desktop 26.04

Actualitza la llista de paquets

sudo apt update

Instal·la dependències

sudo apt install bzip2 tar build-essential

Mou-te a la carpeta de l’instal·lador. Canvia:

cd /run/media/USUARI/VBox_GAs_7.2.2

Instal·la

sudo ./VBoxLinuxAdditions.run

2.3 Modes de xarxa

Mode Descripció
NAT La VM accedeix a Internet via l’amfitrió. Senzill, però la VM no és accessible des de fora.
Xarxa pont La VM té IP pròpia a la xarxa física. Es comporta com un equip real.
Xarxa interna Les VM es comuniquen entre elles, sense accés exterior.
Adaptador de només amfitrió Comunicació entre VM i amfitrió, sense accés a la xarxa exterior.
NAT Network Com NAT, però les VM es veuen entre elles.

2.4 Emmagatzematge

Els discos de les VM s’emmagatzemen com a fitxers al disc de l’amfitrió, en formats:

Els discos poden ser d’expansió dinàmica (ocupen només l’espai real usat) o de mida fixa (reserven tot l’espai des del principi).

2.5 Snapshots

Els snapshots (instantànies) permeten desar l’estat complet d’una VM en un moment donat i tornar-hi si cal. Molt útil per:

3. Ordres de gestió per línia d’ordres

VirtualBox inclou VBoxManage, una eina de línia d’ordres potent:

# Llistar VMs disponibles
VBoxManage list vms

# Crear una VM nova
VBoxManage createvm --name "debian12" --ostype Debian_64 --register

# Arrencar una VM
VBoxManage startvm "debian12"

# Apagar una VM
VBoxManage controlvm "debian12" poweroff

# Crear un snapshot
VBoxManage snapshot "debian12" take "abans-actualitzacio"

4. VirtualBox i Vagrant

VirtualBox és el proveïdor per defecte de Vagrant. Quan s’executa vagrant up sense configuració especial, Vagrant crea i gestiona automàticament màquines VirtualBox:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/focal64"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = 2
    vb.name = "servidor-web"
  end
end

5. VirtualBox vs. altres hipervisors

VirtualBox VMware Workstation Hyper-V KVM/QEMU
Llicència Gratuït (GPL) Comercial Inclòs a Windows Gratuït (GPL)
Rendiment Bo Excel·lent Excel·lent Excel·lent
Facilitat d’ús Alta Alta Mitjana Baixa
Integració Vagrant Nativa Sí (connector) Sí (connector) Sí (connector)
Apple Silicon Limitat No Sí (via UTM)

6. Instal·lació

# Debian / Ubuntu
sudo apt install virtualbox-7.2

# Fedora / RHEL (via dipòsit Oracle)
sudo dnf install VirtualBox-7.2
💡
Nota

A sistemes amb Secure Boot activat, pot ser necessari signar els mòduls del kernel de VirtualBox manualment o desactivar Secure Boot per poder carregar els mòduls vboxdrv.

Consell

Per afegir l’usuari al grup vboxusers i poder gestionar USB des de les VM:

sudo usermod -aG vboxusers $USER

Cal tancar la sessió i tornar a entrar perquè tingui efecte.

7. Problemes habituals

Quan instal·les VirtualBox (o KVM/QEMU), el sistema ha de compilar mòduls del kernel (vboxdrv, vboxnetflt…). Si no tens les capçaleres del nucli instal·lades, la compilació falla i els mòduls no es carreguen.

# Debian / Ubuntu
sudo apt install linux-headers-$(uname -r)

# Fedora
sudo dnf install kernel-devel kernel-headers

# Arch
sudo pacman -S linux-headers

El $(uname -r) assegura que instal·les les capçaleres de la versió exacta del kernel que estàs executant ara mateix, cosa important si tens diversos kernels instal·lats.

7.1 KVM (Kernel-based Virtual Machine)

KVM és un hipervisor integrat directament al kernel Linux des de la versió 2.6.20. Aprofita les extensions de virtualització del processador (Intel VT-x o AMD-V) per executar màquines virtuals amb rendiment gairebé natiu.

A diferència de VirtualBox, KVM no és un programa extern — és un mòdul del kernel (kvm.ko + kvm_intel.ko o kvm_amd.ko).

Per què xoquen amb VirtualBox?

El problema és que tots dos volen accés exclusiu a les extensions de virtualització del processador.

CPU
 └── Extensions VT-x / AMD-V
      ├── KVM  ──── les reserva per al kernel
      └── VirtualBox ── les vol usar pel seu compte
               CONFLICTE!

Quan KVM té els mòduls carregats, VirtualBox no pot accedir a VT-x/AMD-V i:

Solució

Opció 1 — Descarregar els mòduls KVM temporalment:

sudo modprobe -r kvm_intel   # o kvm_amd segons el processador
sudo modprobe -r kvm

Opció 2 — Impedir que KVM carregui a l’arrencada (si uses VirtualBox habitualment):

echo "blacklist kvm_intel" | sudo tee /etc/modprobe.d/blacklist-kvm.conf
echo "blacklist kvm"       | sudo tee -a /etc/modprobe.d/blacklist-kvm.conf
sudo update-initramfs -u   # Debian/Ubuntu

Opció 3 — Usar només un dels dos i gestionar l’altre amb Vagrant o libvirt segons el cas.

A partir de VirtualBox 7.0 hi ha millores en la coexistència, però en general continua sent recomanable no tenir els dos actius simultàniament.

Versions d’aquest document

Domini Públic (CC0)