Capítulo 2: Requisitos e Instalación

Por: Artiko
firecrackerinstalacionkvmlinuxsetup

Capítulo 2: Requisitos e Instalación

Requisitos de sistema

Hardware

Software

ComponenteVersión mínima
Linux kernel (host)v5.10 (recomendado v6.1+)
Linux kernel (guest)v5.10
KVM moduleHabilitado en el kernel

Distribuciones probadas

Ubuntu 22.04+, Fedora 38+, Debian 12+, Arch Linux — cualquier distribución Linux moderna con KVM debería funcionar.

Verificar soporte KVM

# Verificar que el módulo KVM está cargado
lsmod | grep kvm
# Esperado: kvm_intel o kvm_amd, más kvm base

# Verificar acceso al dispositivo
ls -la /dev/kvm
# Debe existir /dev/kvm

# Verificación completa en un solo comando
[ -r /dev/kvm ] && [ -w /dev/kvm ] && echo "KVM OK" || echo "KVM NO disponible"

Si obtienes KVM NO disponible, hay dos posibles causas:

1. Sin permisos de usuario:

# Opción A: agregar tu usuario al grupo kvm
sudo usermod -aG kvm ${USER}
# Reinicia sesión para que tome efecto

# Opción B: ACL temporal (sin reiniciar sesión)
sudo setfacl -m u:${USER}:rw /dev/kvm

2. KVM no habilitado:

# Verificar si la CPU soporta virtualización
grep -E 'vmx|svm' /proc/cpuinfo | head -5
# vmx = Intel, svm = AMD

# Cargar módulo manualmente
sudo modprobe kvm_intel   # Intel
sudo modprobe kvm_amd     # AMD

Si KVM no está disponible en BIOS, debes habilitarlo en la configuración de BIOS/UEFI bajo “Virtualization Technology” o “AMD-V”.

Instalar Firecracker

Opción 1: Binario precompilado (recomendada)

ARCH="$(uname -m)"
RELEASE_URL="https://github.com/firecracker-microvm/firecracker/releases"

# Obtener la versión más reciente
LATEST=$(basename $(curl -fsSLI -o /dev/null -w %{url_effective} ${RELEASE_URL}/latest))
echo "Versión: ${LATEST}"

# Descargar y extraer
curl -L "${RELEASE_URL}/download/${LATEST}/firecracker-${LATEST}-${ARCH}.tgz" \
  | tar -xz

# Instalar en PATH
sudo mv "release-${LATEST}-${ARCH}/firecracker-${LATEST}-${ARCH}" /usr/local/bin/firecracker
sudo mv "release-${LATEST}-${ARCH}/jailer-${LATEST}-${ARCH}" /usr/local/bin/jailer

# Verificar
firecracker --version
jailer --version

Opción 2: Compilar desde fuente

Requiere Docker instalado:

git clone https://github.com/firecracker-microvm/firecracker
cd firecracker

# Compilar (tarda varios minutos, usa Docker internamente)
sudo ./tools/devtool build

# Los binarios quedan en:
# ./build/cargo_target/x86_64-unknown-linux-musl/debug/firecracker
# ./build/cargo_target/x86_64-unknown-linux-musl/debug/jailer

Preparar el entorno de trabajo

Crea un directorio de trabajo para los tutoriales:

mkdir -p ~/firecracker-lab
cd ~/firecracker-lab

Obtener kernel y rootfs de prueba

Para los ejercicios de este tutorial, AWS provee imágenes de prueba pre-construidas:

ARCH="$(uname -m)"

# Kernel de prueba
curl -fsSL \
  "https://s3.amazonaws.com/spec.ccfc.min/firecracker-ci/v1.12/${ARCH}/vmlinux-5.10.228" \
  -o vmlinux

# Rootfs mínimo (Alpine Linux)
curl -fsSL \
  "https://s3.amazonaws.com/spec.ccfc.min/firecracker-ci/v1.12/${ARCH}/ubuntu-22.04.ext4" \
  -o rootfs.ext4

# Verificar que se descargaron correctamente
ls -lh vmlinux rootfs.ext4

Estas imágenes son solo para desarrollo/pruebas. En producción deberás construir tu propio kernel y rootfs (ver Capítulo 3).

Estructura del directorio de trabajo

Al finalizar deberías tener:

~/firecracker-lab/
├── vmlinux          # Kernel Linux sin comprimir
└── rootfs.ext4      # Imagen del sistema de archivos raíz

Los capítulos siguientes asumen que estás en ~/firecracker-lab/.

Verificación final

# Todo listo si estos comandos no dan error
firecracker --version
[ -r /dev/kvm ] && [ -w /dev/kvm ] && echo "KVM OK"
ls -lh vmlinux rootfs.ext4

Referencia