← Teoría

Práctica 37: Proxmox VE — tu propio hipervisor tipo 1 en una VM

Bloque: Instalación de SO no habituales (sesión 1 de 5)
Duración estimada: 5 horas (1 sesión completa)
Modalidad: trabajo individual
Requisitos previos: haber hecho la práctica 06 y 07 (saber crear VMs en VirtualBox)
Herramientas: Windows 11 anfitrión, VirtualBox 7.x (gratis), ISO de Proxmox VE 8.x (gratis), ISO de Alpine Linux Standard (gratis), navegador web, conexión a internet
De qué va esta práctica: hasta ahora has usado VirtualBox, que es un hipervisor de tipo 2 (corre encima de Windows como si fuera un programa más). En esta sesión vas a instalar Proxmox VE, que es un hipervisor de tipo 1 (un sistema operativo completo cuyo único trabajo es ejecutar máquinas virtuales). Lo vas a instalar dentro de VirtualBox usando virtualización anidada, y vas a crear VMs y contenedores LXC dentro de Proxmox. Al acabar entenderás la diferencia entre los dos tipos de hipervisor, sabrás manejar la interfaz web de Proxmox y verás cómo trabajan los servidores reales en empresas y datacenters.
Requisitos del PC del aula: tu equipo necesita tener virtualización por hardware activada en la BIOS/UEFI (Intel VT-x o AMD-V) — sin esto VirtualBox no podrá ejecutar Proxmox a una velocidad razonable. También necesitas al menos 8 GB de RAM en el anfitrión (la VM de Proxmox usará 4 GB). No hace falta virtualización anidada en Windows 11: verás en la Parte 0.4 por qué la evitamos a propósito.
Comprueba la virtualización ANTES de empezar: abre el Administrador de tareas de Windows (Ctrl+Shift+Esc) → pestaña Rendimiento → CPU. Abajo a la derecha, busca el campo "Virtualización". Si pone Habilitada, todo bien. Si pone Deshabilitada, hay que activarla en la BIOS/UEFI antes de seguir (reinicia, pulsa F2/F10/Supr según fabricante y busca "Virtualization Technology" o "SVM" en el menú de CPU). Sin esto, VirtualBox arrancará Proxmox pero a velocidad de tortuga.
Red del aula: en esta práctica (y en todo el bloque) las VMs se conectan en adaptador puente contra la red 192.168.8.0/24. Las IPs las reparte el DHCP del aula. Las VMs que crees dentro de Proxmox también saldrán bridged a esa misma red y recibirán IPs en 192.168.8.x.

Objetivos de la práctica

  • Distinguir con claridad un hipervisor de tipo 1 (bare-metal) de uno de tipo 2 (hosted), con ejemplos comerciales y libres de cada categoría.
  • Entender qué es la virtualización anidada (nested virtualization), por qué en Windows 11 + VirtualBox suele estar bloqueada, y cómo evitarla usando emulación software (TCG) en la VM interior.
  • Instalar Proxmox VE 8.x desde su ISO oficial en una máquina virtual de VirtualBox correctamente dimensionada.
  • Acceder a la interfaz web de Proxmox (puerto 8006) desde el navegador del anfitrión y conocer sus paneles principales.
  • Crear una VM con KVM/QEMU dentro de Proxmox, instalarle Alpine Linux y comprobar que arranca y tiene red.
  • Crear un contenedor LXC a partir de una plantilla, entender en qué se diferencia de una VM y por qué consume mucho menos recursos.
  • Hacer snapshots y backups de la VM creada, y restaurar desde un backup.
  • Manejar la consola del nodo Proxmox (terminal en la web y SSH) y entender los conceptos de nodo, datacenter, storage y pool.
  • Diagnosticar cinco fallos típicos: VM interior que no arranca por falta de KVM (y aplicar el flag kvm:0), RAM insuficiente, ISO no subido al storage, contraseña root olvidada, error del certificado HTTPS.
  • Documentar tu instalación en una ficha técnica con los recursos asignados, las VMs/contenedores creados y las pruebas realizadas.

Parte 0 — Conceptos previos (45 min)

0.1 — ¿Qué es un hipervisor?

Un hipervisor (también llamado virtual machine monitor o VMM) es el programa que crea y ejecuta máquinas virtuales. Es la pieza de software que se sitúa entre el hardware real y los sistemas operativos invitados, y que se encarga de:

  • Repartir la CPU real entre todas las VMs (planificación).
  • Asignar memoria a cada VM y aislarla del resto.
  • Virtualizar el hardware: presentarle a cada VM un disco, una tarjeta de red, una BIOS, una pantalla… que en realidad son simulaciones.
  • Aislar: que un fallo o un virus en una VM no afecte ni al anfitrión ni a las otras VMs.

El nombre viene de "hyper" + "visor" (el "visor" o supervisor era el nombre antiguo del kernel; un hipervisor es algo que vive por encima incluso de los kernels). El concepto es de los años 60 (IBM lo inventó para sus mainframes), pero no llegó al PC de sobremesa hasta finales de los 90.

0.2 — Tipo 1 (bare-metal) vs Tipo 2 (hosted)

Hay dos formas de organizar un hipervisor, y es la diferencia más importante que tienes que entender hoy:

Tipo 1 (bare-metal)Tipo 2 (hosted)
Dónde correDirectamente sobre el hardware. Es el sistema operativo del servidor.Como un programa más, encima de Windows / Linux / macOS.
¿Necesita SO anfitrión?No. El hipervisor es el SO.Sí, depende del SO en el que está instalado.
RendimientoMayor: menos capas entre la VM y el hardware.Menor: la VM atraviesa el SO anfitrión.
AislamientoMejor. El propio hipervisor está pensado solo para virtualizar.Peor. Si se cae el anfitrión, se caen todas las VMs.
Uso típicoServidores, datacenters, producción.Sobremesa, desarrollo, formación, escritorio.
Ejemplos comercialesVMware ESXi, Microsoft Hyper-V Server, Citrix XenServer, Nutanix AHV.VMware Workstation, Parallels Desktop.
Ejemplos libresProxmox VE, XCP-ng, oVirt, KVM (desnudo).VirtualBox, QEMU sin KVM, GNOME Boxes.
Matiz importante: la línea entre los dos tipos está cada vez más borrosa. KVM, por ejemplo, técnicamente es un módulo del kernel de Linux (lo que lo haría tipo 2), pero como Linux con KVM se usa como si fuera el SO del servidor, en la práctica se considera tipo 1. Proxmox VE entra aquí: por dentro es Debian + KVM + LXC + una interfaz web, pero su único propósito es ser un hipervisor, así que se etiqueta y se vende como tipo 1.

0.3 — ¿Qué es Proxmox VE exactamente?

Proxmox Virtual Environment (Proxmox VE, o simplemente PVE) es una distribución de Linux basada en Debian, que viene preconfigurada como un hipervisor de tipo 1 listo para instalar en un servidor. La hace una empresa austriaca (Proxmox Server Solutions) desde 2008, y es de código abierto.

Lo que te encuentras dentro cuando lo instalas:

  • Un Debian estable recortado, con un kernel adaptado.
  • KVM/QEMU: el hipervisor real para máquinas virtuales completas (cada VM tiene su propio kernel).
  • LXC: un sistema de contenedores Linux (cada contenedor comparte el kernel del anfitrión pero está aislado del resto).
  • Una web UI escrita en JavaScript, accesible por el puerto 8006 con HTTPS, desde la que se hace prácticamente todo.
  • Una API REST y una CLI (qm, pct, pvesh) para los que prefieran scripts.
  • Soporte nativo para ZFS, Ceph (almacenamiento distribuido) y backups programados.
  • Posibilidad de juntar varios nodos en un cluster con migración en vivo de VMs entre ellos.

Es lo que usan muchísimas pymes y empresas medianas para virtualizar sus servidores en lugar de pagar licencias de VMware. Después de la compra de VMware por Broadcom en 2023 y el aumento de precios que vino detrás, Proxmox ganó una cantidad enorme de usuarios nuevos.

0.4 — ¿Por qué lo instalamos dentro de VirtualBox? (y por qué evitamos la virtualización anidada)

Un hipervisor de tipo 1 está diseñado para instalarse directamente sobre el hardware, no dentro de otro sistema. Sería como instalar Windows dentro de Windows. No tendría sentido en producción.

Pero estamos en un aula con un PC normal, y no podemos formatear el equipo para instalar Proxmox y volverlo a formatear al acabar. La solución teórica sería virtualización anidada: VirtualBox le presentaría a Proxmox las instrucciones VT-x/AMD-V de la CPU, y Proxmox podría usar KVM dentro para crear VMs reales.

+---------------------------+
| Windows 11 (anfitrión)    |    <-- el PC del aula
|  +---------------------+  |
|  | VirtualBox          |  |    <-- hipervisor TIPO 2
|  |  +---------------+  |  |
|  |  | Proxmox VE    |  |  |    <-- hipervisor TIPO 1 (en una VM)
|  |  |  +---------+  |  |  |
|  |  |  | Alpine  |  |  |  |    <-- VM dentro de Proxmox (TCG)
|  |  |  +---------+  |  |  |
|  |  +---------------+  |  |
|  +---------------------+  |
+---------------------------+
Problema real en Windows 11: la virtualización anidada de VirtualBox sobre Windows 11 + CPU Intel es notoriamente inestable. Aunque desactives Hyper-V y "Plataforma de máquina virtual" en características de Windows, siguen bloqueándola Memory Integrity (HVCI), Virtualization-Based Security (VBS), WSL2, Windows Sandbox o el propio arranque con hypervisorlaunchtype=auto. En muchos PCs no hay forma humana de que funcione. Por eso esta práctica no depende de virtualización anidada.

Nuestro plan: TCG en lugar de KVM para la VM interior

QEMU (el motor que usa Proxmox para las VMs) tiene dos modos de emular CPU:

  • KVM: usa las instrucciones VT-x/AMD-V del procesador real. Rápido (la VM va casi como en hardware nativo). Requiere que el procesador presente esas instrucciones — y aquí, dentro de VirtualBox sin nested virt, no las va a tener.
  • TCG (Tiny Code Generator): emulación software pura. Traduce instrucciones x86 al vuelo, sin necesidad de VT-x. Lento (5-10× más que KVM) pero funciona en cualquier hardware, en cualquier capa, sin tocar BIOS ni características de Windows.

Plan: instalamos Proxmox normalmente, y a la VM Alpine de dentro le diremos que use TCG en vez de KVM (un único flag). Los contenedores LXC de la Parte 5 no se ven afectados — comparten el kernel del nodo y no necesitan emulación de CPU.

Penalización de rendimiento que vas a notar: Alpine dentro de Proxmox (TCG) dentro de VirtualBox tardará entre 1 y 3 minutos en arrancar hasta el prompt de login, y el setup-alpine también irá lento en algunos pasos. Es normal, no es un fallo. La ventaja es que funciona en cualquier PC del aula sin pelearse con BIOS, Windows Features ni HVCI. En producción real Proxmox va en hardware desnudo y la VM Alpine arrancaría en 5 segundos.

0.5 — Vocabulario que vas a ver en la web UI

Antes de entrar a la interfaz conviene tener claros los nombres que usa Proxmox:

TérminoQué es
DatacenterEl conjunto de todos los nodos. Si solo tienes un servidor, el datacenter contiene solo ese nodo.
NodeUn servidor físico que ejecuta Proxmox. En esta práctica tendrás un solo nodo (la VM de VirtualBox), llamado por defecto pve.
VMUna máquina virtual completa (KVM/QEMU). Se identifica con un número (VMID), por ejemplo 100, 101, 102…
CT (container)Un contenedor LXC. Comparte el kernel del nodo. También tiene VMID.
StorageUn sitio donde Proxmox guarda imágenes de disco, ISOs, backups, plantillas. Cada uno tiene un nombre (por defecto: local, local-lvm).
PoolAgrupación lógica de recursos (VMs + storages) para organizar y dar permisos.
TemplateUna VM o CT convertida en plantilla, que sirve para crear copias rápidas (clones).
BridgeUna "switch" virtual a la que se conectan las VMs. Por defecto vmbr0, puenteado a la red real.

¿Qué diferencia esencial hay entre una VM (KVM) y un contenedor (LXC) en Proxmox? Cita la consecuencia práctica más importante.

Parte 1 — Preparar la VM de Proxmox en VirtualBox (45 min)

1.1 — Descargar la ISO oficial de Proxmox VE

Vete a https://www.proxmox.com/en/downloads, sección "Proxmox Virtual Environment" → "Proxmox VE 8.x ISO Installer". Descarga el .iso (aproximadamente 1,5 GB). Guárdalo en D:\ISOs\ (o donde guardes habitualmente tus ISOs).

Versión: usa la última 8.x estable. Si en la web aparece ya la 9 cuando hagas esta práctica, también vale, pero los menús pueden estar ligeramente cambiados respecto a las capturas mentales que vas a leer.

1.2 — Crear la VM en VirtualBox

Abre VirtualBox y pulsa "Nueva". Configura así:

ParámetroValorPor qué
NombreProxmox-VE-LabPara identificarla luego.
CarpetaLa que uses para VMs
ISOLa de Proxmox que acabas de bajarPara arrancar la instalación.
TipoLinuxProxmox es Debian por dentro.
VersiónDebian 12 (64-bit)Es la base de Proxmox 8.
RAM4096 MB (4 GB)Holgura para Proxmox + la VM Alpine en TCG + un LXC sin agobios.
CPUs2 vCPUUna sola se queda corta para anidar.
Disco duro32 GB VDI dinámicoProxmox + 1 VM dentro + 1 LXC entra holgado.

1.3 — Ajustes avanzados de la VM (críticos)

Cuando esté creada, antes de arrancar, abre "Configuración" de la VM y revisa esto:

Sistema → Procesador

  • Marca "Habilitar PAE/NX" si la opción aparece. En VirtualBox 7 más reciente puede no estar visible porque va implícita; si no la ves, no pasa nada.
  • "Habilitar Nested VT-x/AMD-V": déjala desmarcada. En Windows 11 esta opción falla casi siempre por culpa de Hyper-V, HVCI o VBS, y no la vamos a necesitar — la VM interior usará TCG (emulación software), no KVM. Si tu equipo es de los raros que sí la soporta y quieres probar a marcarla, no rompe nada: la VM interior podrá usar KVM y arrancará mucho más rápido. Pero no inviertas tiempo en pelearte con esta casilla si te da error: la práctica entera está diseñada para funcionar sin ella.

Sistema → Aceleración

  • Interfaz de paravirtualización: KVM (no "Default").

Red → Adaptador 1

  • Habilitado: sí.
  • Conectado a: Adaptador puente (Bridged). Selecciona tu tarjeta de red real.
  • Tipo de adaptador: Intel PRO/1000 MT Desktop.
¿Por qué adaptador puente y no NAT? Porque la web UI de Proxmox escucha en el puerto 8006 y va a ser muchísimo más cómodo si tu PC anfitrión la ve directamente en una IP de la red del aula, sin tener que tocar reenvíos de puertos. Tu profesor también podrá conectarse a tu Proxmox para revisar la práctica.

Pantalla

  • Memoria de vídeo: 32 MB (la instalación usa modo gráfico).
  • Controlador gráfico: VMSVGA.
El error "KVM virtualisation configured, but not available": es el mensaje que vas a ver si dejas la VM Alpine con KVM activado por defecto (lo trae así de fábrica). En esta práctica es esperado, no es un fallo de tu parte: significa que Proxmox no tiene acceso a VT-x desde dentro de VirtualBox. La solución (que harás en la Parte 4.2bis) es decirle a Proxmox que use TCG en vez de KVM para esa VM concreta. Los contenedores LXC no se ven afectados.

Parte 2 — Instalar Proxmox VE (45 min)

2.1 — Arrancar el instalador

Arranca la VM. Verás el menú morado de Proxmox. Elige "Install Proxmox VE (Graphical)". Si te diera problemas el modo gráfico, prueba "Terminal UI" — la funcionalidad es la misma.

2.2 — Aceptar EULA y elegir disco

  1. Acepta la licencia (EULA).
  2. En "Target Harddisk" deja el disco virtual que creaste (32 GB) y deja "ext4" como filesystem.
  3. No toques "Options" salvo que sepas lo que haces. ZFS aquí dentro de una VM anidada no aporta nada.

2.3 — Localización y red

  1. Country: Spain.
  2. Time zone: Europe/Madrid.
  3. Keyboard layout: Spanish (importante, si dejas "U.S. English" luego la contraseña no se escribirá como tú crees).
  4. Contraseña de root: una que recuerdes y que cumpla los requisitos. Apúntala ahora mismo en la ficha del final.
  5. Email: pon un correo cualquiera (no se usa para nada en local, pero el instalador lo exige).
  6. Management Interface: deja la que aparezca (será eth0 o similar).
  7. Hostname (FQDN): pve.lab.local (no le pongas algo sin punto; Proxmox exige FQDN).
  8. IP address (CIDR): déjala como aparezca por DHCP, o ponle una fija si conoces tu red del aula. La apuntas.
  9. Gateway y DNS: los que ofrezca el DHCP.

Apunta antes de continuar

2.4 — Revisar y dejar que instale

Repasa la pantalla "Summary", pulsa Install y espera unos 5-10 minutos. Cuando termine, reinicia.

2.5 — Primer arranque y URL de gestión

Tras el reinicio, verás una pantalla negra con un mensaje verde grande:

Welcome to the Proxmox Virtual Environment. Please use your web browser
to configure this server - connect to:

  https://192.168.1.45:8006/

pve login: _

Esa es la URL que tienes que abrir en el navegador de Windows. Antes prueba un login en local para ver que va: usuario root, contraseña la que pusiste.

Parte 3 — Primeros pasos en la web UI (30 min)

3.1 — Acceder desde el navegador

Abre Edge/Chrome/Firefox en Windows y vete a la URL del mensaje verde (por ejemplo https://192.168.1.45:8006).

Aviso de certificado: el navegador te dirá que la conexión no es segura. Es normal: Proxmox usa un certificado autofirmado que no está en ninguna autoridad de confianza. Pulsa "Avanzado" → "Continuar al sitio". En producción se reemplaza por uno de Let's Encrypt; en aula no hace falta.

Login:

  • User name: root
  • Password: la que pusiste
  • Realm: Linux PAM standard authentication
  • Language: Español (si lo prefieres)
Aviso "No valid subscription": al entrar te saldrá un cuadro avisando de que no tienes suscripción de pago. Es normal y no afecta a nada en aula — pulsa OK. La suscripción solo aporta acceso al repositorio enterprise (parches estabilizados con un retraso adicional). Para uso doméstico / formación se usa el repositorio "no-subscription".

3.2 — Tour por los paneles

A la izquierda tienes el árbol con tu Datacenter y dentro el nodo pve. Pincha en cada uno y mira las pestañas. Te encuentras:

NivelPestañas relevantes
DatacenterSummary, Options, Storage, Backup, Users, Permissions, Updates
Node (pve)Summary, Shell, System, Network, Disks, Updates, Firewall
Storage localSummary, Backups, ISO Images, CT Templates, VZDump backup file
Storage local-lvmSummary, VM Disks, CT Volumes

3.3 — Cambiar al repositorio "no-subscription"

Por defecto Proxmox apunta al repositorio enterprise (de pago) y eso hace que apt update falle. Vamos a corregirlo:

  1. Pincha en el nodo pve → Updates → Repositories.
  2. Selecciona la línea https://enterprise.proxmox.com/debian/pve y pulsa Disable.
  3. Pulsa Add y elige No-Subscription. OK.
  4. Vete a Updates (sin Repositories) y pulsa Refresh. Ahora debería listar paquetes sin error.

Después de cambiar el repositorio, ¿cuántos paquetes aparecen como actualizables? (puede ser 0 si está reciente). Pega la captura más abajo.

3.4 — Comprobar el modo de aceleración disponible

Antes de seguir conviene saber si vas a poder usar KVM (rápido) o vas a tener que tirar de TCG (lento pero infalible) en la VM de la Parte 4. Abre la Shell del nodo pve (botón Shell arriba a la derecha al seleccionar el nodo) y ejecuta:

egrep -c '(vmx|svm)' /proc/cpuinfo
ls /dev/kvm 2>/dev/null && echo "KVM disponible" || echo "KVM NO disponible - usaremos TCG"

Dos escenarios posibles:

  • "KVM disponible" y el contador > 0: enhorabuena, has tenido suerte y la virtualización anidada de VirtualBox sí ha funcionado en tu PC. La VM Alpine podrá usar KVM directamente. Cuando llegues a la Parte 4.2bis, sáltala.
  • "KVM NO disponible" y/o el contador da 0: caso normal en Windows 11. No es un fallo, es lo esperado. Sigue la práctica tal cual y en 4.2bis desactivarás KVM para esa VM y pasará a usar TCG.
Importante: los contenedores LXC (Parte 5) funcionan igual en los dos escenarios — no usan KVM, comparten el kernel del nodo Proxmox directamente. La Parte 5 va a ir rápida en cualquier caso.

Parte 4 — Crear una VM dentro de Proxmox (60 min)

4.1 — Subir la ISO de Alpine al storage

Vamos a usar Alpine Linux porque arranca con muy poca RAM (perfecto para nuestra cebolla anidada). Bájatelo del sitio oficial https://alpinelinux.org/downloads/ — la edición "Standard" en x86_64 (unos 200 MB).

  1. En la web UI pincha en local (el storage) bajo el nodo pve.
  2. Vete a la pestaña ISO Images.
  3. Pulsa Upload, selecciona la ISO de Alpine y espera a que termine de subir.
Alternativa más rápida: en lugar de subir desde tu PC, puedes pulsar Download from URL y pegar el enlace directo a la ISO. Proxmox la descarga desde internet sin pasar por tu disco. Es lo que se hace en servidores de verdad cuando la conexión del servidor es mejor que la del operador.

4.2 — Crear la VM

Botón "Create VM" arriba a la derecha. Las pestañas:

PestañaQué poner
GeneralVM ID: 100. Name: alpine-test.
OSStorage: local. ISO image: la de Alpine. Type: Linux. Version: 6.x - 2.6 Kernel (Alpine va con Linux moderno, vale).
SystemDeja todo por defecto (BIOS SeaBIOS, Machine i440fx, SCSI Controller VirtIO SCSI single, Qemu Agent marcado).
DisksBus/Device: SCSI. Storage: local-lvm. Disk size: 4 GB (Alpine cabe sobradamente).
CPUSockets: 1. Cores: 1. Type: kvm64 (perfil genérico compatible con KVM y con TCG; si te aparece "host" por defecto, cámbialo a kvm64 para evitar sorpresas en modo TCG).
Memory512 MiB (Alpine arranca con menos, pero por holgura).
NetworkBridge: vmbr0. Model: VirtIO (paravirtual).
ConfirmRevisa y pulsa Finish. No marques "Start after created" todavía.

4.2bis — Desactivar KVM para esta VM (caso normal en Windows 11)

Si en la comprobación de 3.4 te salió "KVM disponible", sáltate este apartado entero y vete directo a la 4.3.

En el caso normal (KVM no disponible dentro de VirtualBox), hay que decirle a Proxmox que esta VM concreta use TCG (emulación software) en lugar de KVM. Si no lo haces, al pulsar Start verás el famoso error "KVM virtualisation configured, but not available" y la VM no arrancará. Tienes dos formas de hacerlo, elige la que prefieras:

Opción A — Desde la web UI

  1. Selecciona la VM 100 en el árbol de la izquierda.
  2. Pestaña Options.
  3. Busca la fila "KVM hardware virtualization" (valor por defecto: Yes).
  4. Doble click → desmarca la casilla → OK.
  5. El valor pasa a No.

Opción B — Desde la Shell del nodo

Abre Shell en el nodo pve y ejecuta:

qm set 100 --kvm 0

Esto añade la línea kvm: 0 al fichero /etc/pve/qemu-server/100.conf. Puedes verificarlo con:

grep kvm /etc/pve/qemu-server/100.conf
Qué esperar: la VM Alpine arrancará en modo TCG (software). Tiempos típicos: 1-3 minutos hasta el prompt de login, y algunos pasos del setup-alpine pueden tardar 1-2 minutos en lugar de segundos. Es normal, no es un fallo. Ten paciencia y no canceles aunque parezca colgada — fíjate en si el cursor parpadea o si hay actividad de disco en VirtualBox.
Truco de rendimiento en TCG: mantén la VM con 1 core (más cores en TCG ralentizan en vez de acelerar, porque la sincronización software es cara). Si te apetece reducir overhead gráfico, en Options puedes bajar "Display" a Standard VGA (más simple que VirtIO-GPU para TCG).

4.3 — Arrancar e instalar Alpine

Selecciona la VM 100 en el árbol y pulsa Start. Después Console para ver la pantalla.

  1. Arranca desde la ISO de Alpine. Login: root (sin contraseña).
  2. Ejecuta setup-alpine y responde a las preguntas: keyboard es, hostname libre, network eth0 / DHCP, contraseña root, timezone Europe/Madrid, proxy ninguno, NTP chrony, mirror "f" (find fastest), SSH server openssh, disk sda tipo sys.
  3. Cuando acabe, escribe poweroff.
  4. En la web UI, Hardware → CD/DVD Drive → Edit → Do not use any media (para que no vuelva a arrancar desde la ISO).
  5. Pulsa Start otra vez. Alpine debe arrancar desde el disco, pedir login y darte un prompt.
  6. Comprueba red: ping -c 3 1.1.1.1.

¿Cuánto tarda Alpine en arrancar dentro de Proxmox-dentro-de-VirtualBox? ¿Has usado KVM (suerte) o TCG (caso normal)? Comenta el rendimiento percibido y por qué tiene sentido que sea lento, especialmente con TCG.

4.4 — Snapshot antes de tocar nada

Selecciona la VM 100 → pestaña SnapshotsTake Snapshot. Nómbralo recien-instalada y describe "Alpine 3.x recien instalada, sin paquetes extra". Confirma.

Ahora entra a la consola y ejecuta:

apk update
apk add htop nano

Una vez instalados, vete a Snapshots y haz Rollback a recien-instalada. La VM se reinicia. Vuelve a entrar y comprueba que htop y nano han desaparecido — el snapshot ha funcionado.

Parte 5 — Crear un contenedor LXC (45 min)

5.1 — Diferencia VM vs LXC, recordatorio

VM (KVM)Contenedor (LXC)
KernelCada VM tiene el suyoComparten el del nodo Proxmox
SO invitadoCualquiera (Linux, Windows, BSD…)Solo Linux
ArranquePasa por BIOS/UEFI, lentoInstantáneo, como abrir un proceso
Consumo RAM en reposoToda la RAM asignadaSolo lo que usan los procesos
AislamientoMuy fuerte (capa de hardware)Más débil (capa de namespaces)
Uso típicoCuando el SO importa o no es LinuxServicios Linux pequeños y muchos en paralelo

5.2 — Descargar una plantilla

Las plantillas de LXC son imágenes mínimas de SO Linux. No "instalas" un contenedor: lo creas a partir de una plantilla.

  1. En el árbol pincha en local → pestaña CT Templates.
  2. Pulsa Templates (botón arriba) → lista de plantillas disponibles.
  3. Busca debian-12-standard (o la última Debian). Selecciónala y pulsa Download.

5.3 — Crear el contenedor

Botón "Create CT" arriba a la derecha:

PestañaQué poner
GeneralCT ID: 200. Hostname: debian-ct. Password: la que quieras (apúntala).
TemplateStorage: local. Template: debian-12-standard-...
DisksStorage: local-lvm. Disk size: 2 GB.
CPUCores: 1.
MemoryMemory: 256 MiB. Swap: 256 MiB.
NetworkName: eth0. Bridge: vmbr0. IPv4: DHCP.
DNSPor defecto (hereda del host).
ConfirmMarca "Start after created". Finish.

5.4 — Comprobar el contenedor

  1. Selecciónalo y pulsa Console.
  2. Login: root + la contraseña que pusiste.
  3. Ejecuta cat /etc/os-release — debe decir Debian.
  4. Ejecuta uname -a — fíjate que el kernel es el mismo que el del nodo Proxmox (compáralo abriendo la Shell del nodo y haciendo uname -a ahí). Esto demuestra que el contenedor comparte kernel con el anfitrión.
  5. Instala algo: apt update && apt install -y curl.

Compara el arranque del contenedor con el de la VM Alpine. ¿Cuánto tarda cada uno? ¿Y la diferencia de RAM consumida que ves en el Summary del nodo?

Parte 6 — Snapshots y backups (30 min)

6.1 — Diferencia entre snapshot y backup

Suenan parecidos pero no lo son:

  • Snapshot: una marca dentro del disco actual al que puedes volver. Si pierdes el disco entero (rotura, borrado del storage), pierdes también todos los snapshots.
  • Backup: una copia completa de la VM/CT a un archivo independiente, que puedes mover a otro storage, otro servidor o un disco externo. Si pierdes el original, sigues teniendo el backup.
Regla en producción: los snapshots son para experimentos cortos ("voy a probar este cambio, si rompo algo deshago"). Los backups son los que te salvan en un desastre. Un snapshot no es un backup.

6.2 — Hacer un backup manual del contenedor

  1. Selecciona el CT 200 → pestaña BackupBackup now.
  2. Storage: local. Mode: Snapshot (rápido, no para el CT). Compression: ZSTD (fast and good).
  3. Pulsa Backup. Mira el log de la tarea.

El archivo resultante (.tar.zst) lo ves en local → Backups.

6.3 — Restaurar a un CT nuevo

  1. Pincha en local → Backups → selecciona el backup recién hecho → Restore.
  2. CT ID: 201 (uno nuevo, para no pisar el original).
  3. Cuando acabe, arranca el 201 y comprueba que tiene los mismos archivos que el 200.

6.4 — Programar un backup automático opcional

Datacenter → Backup → Add. Configura un job a las 23:00 todos los días, storage local, todas las VMs/CTs, mode snapshot. Esto es lo que se hace en producción: backups nocturnos automáticos.

Parte 7 — Diagnóstico y problemas comunes (30 min)

Para cada situación, escribe qué harías:

ProblemaCómo lo diagnosticarías / arreglarías
Al arrancar la VM dentro de Proxmox sale "KVM virtualisation configured, but not available" y la VM no inicia.
El navegador no abre la URL https://IP:8006 (timeout).
No ves la ISO de Alpine al crear la VM.
apt update falla con "401 Unauthorized" en el repositorio enterprise.
Has olvidado la contraseña de root del nodo Proxmox.

7.1 — Soluciones de referencia

Pista 1 (KVM not available): es el caso normal en Windows 11 (no es culpa tuya, la virtualización anidada de VirtualBox suele estar bloqueada por Hyper-V/HVCI/VBS). Desactiva KVM para esa VM concreta: en la web UI, Options → "KVM hardware virtualization" → No; o desde la Shell del nodo, qm set 100 --kvm 0. La VM pasará a TCG (software): más lenta, pero arrancará. No pierdas tiempo peleándote con "Nested VT-x" en VirtualBox — rara vez funciona en Win 11.

Pista 2 (timeout): comprueba que el adaptador de la VM está en modo Bridge, no NAT. Mira la IP real del nodo con ip addr en la consola de Proxmox.

Pista 3 (ISO no aparece): ve a storage local → ISO Images y revisa que esté subida. A veces hay que pulsar el botón "Reload" del navegador.

Pista 4 (401): cambia al repositorio no-subscription como hiciste en 3.3.

Pista 5 (contraseña olvidada): arranca la VM con el "Advanced options" de GRUB → "Recovery", entra en modo single-user y ejecuta passwd root.

Ficha técnica del despliegue

Datos del nodo

Recursos creados dentro

Tiempos observados

Reto opcional — si te sobra tiempo

Reto: instala Nginx dentro del CT Debian 200 y publica una página de inicio sencilla con tu nombre. Comprueba que puedes acceder a ella desde el navegador del anfitrión escribiendo http://<IP_del_CT>. Bonus: añade un segundo CT con Pi-hole (DNS con bloqueo de anuncios) usando el script de instalación oficial. Ya tienes la base de un mini-servidor real.

Autoevaluación

Marca lo que has conseguido

HitoHecho
VM de Proxmox creada en VirtualBox (con TCG en la VM interior, o con KVM si tu equipo tuvo suerte con nested virt)
Proxmox VE 8 instalado y arrancando
Accedo a la web UI desde el navegador del anfitrión
Repositorio cambiado a no-subscription y apt update funciona
ISO de Alpine subida al storage local
VM 100 con Alpine instalada, arrancada y con red
Snapshot + rollback probado sobre la VM 100
CT 200 con Debian creado y arrancado
Backup del CT 200 hecho y restaurado al CT 201
He sabido responder a los 5 problemas de la Parte 7
Ficha técnica completa
Reto opcional: Nginx publicado desde el CT 200

Después de hacer la práctica, ¿en qué escenario reales del mundo laboral te imaginas usando Proxmox VE en lugar de VirtualBox? Cita dos.