Capítulo 2: Requisitos e Instalación
Capítulo 2: Requisitos e Instalación
Requisitos de sistema
Hardware
- Arquitectura: x86_64 o aarch64
- CPU con virtualización por hardware: Intel VT-x o AMD-V
- El guest debe ser la misma arquitectura que el host
Software
| Componente | Versión mínima |
|---|---|
| Linux kernel (host) | v5.10 (recomendado v6.1+) |
| Linux kernel (guest) | v5.10 |
| KVM module | Habilitado 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