Proxmox & VMs
Overview
Proxmox VE is the hypervisor running on the M90Q Gen 3. This section covers the base install, VM configurations, and operational notes.
Base Install
Proxmox VE installed from ISO via Rufus (DD mode) onto a USB, targeting nvme0n1 with ZFS.
Post-install steps:
# 1. Remove enterprise repo
rm /etc/apt/sources.list.d/pve-enterprise.list
# 2. Add community repo
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
> /etc/apt/sources.list.d/pve-community.list
# 3. Update
apt update && apt dist-upgrade -y
# 4. Create LVM thin pool on sda
pvcreate /dev/sda
vgcreate pve-sata /dev/sda
lvcreate -l 100%FREE --thinpool pve-sata/data
# 5. Add to Proxmox storage (via UI or):
pvesm add lvmthin local-lvm --vgname pve-sata --thinpool data
VM Inventory
| VM ID | Name | OS | IP | Status |
|---|---|---|---|---|
| 100 | WS2025-DC01 | Windows Server 2025 Datacenter Eval | 192.168.x.20 | done |
| 101 | WIN11-CLIENT01 | Windows 11 Pro | 192.168.x.21 | done |
| 102 | Ubuntu-Docker01 | Ubuntu Server 24.04 | TBD | wip |
WS2025-DC01 — Domain Controller
Windows Server 2025 Datacenter Evaluation. Configured as the AD DS domain controller for corp.local.
VM config:
| Setting | Value |
|---|---|
| RAM | 4GB |
| vCPU | 2 |
| Disk | 60GB (local-lvm) |
| NIC | VirtIO (vmbr0) |
| IP | 192.168.x.20 (static) |
| QEMU Agent | Enabled |
AD DS configuration:
- Domain:
corp.local - Forest/Domain functional level: Windows Server 2016
- DNS: Integrated (AD DNS)
- OUs:
OU=Servers,OU=Workstations,OU=Users,OU=Groups - GPOs: Domain-wide baseline, PDC NTP policy (NTP source configured on PDC Emulator only)
Evaluation lifecycle:
# Check remaining evaluation time
slmgr /dlv
# Rearm evaluation (up to 5 times, 180 days each)
slmgr /rearm
# Export AD users (for rebuild)
csvde -f users-export.csv -r "(objectClass=user)"
# Export GPOs
Backup-GPO -All -Path C:\GPOBackups
WIN11-CLIENT01 — Windows 11
Windows 11 Pro, domain-joined to corp.local. OOBE bypass used OOBE\BYPASSNRO to create a local account pre-domain-join.
VM config:
| Setting | Value |
|---|---|
| RAM | 4GB |
| vCPU | 2 |
| Disk | 64GB (local-lvm) |
| NIC | VirtIO (vmbr0) |
| IP | 192.168.x.21 (DHCP reservation by MAC) |
| QEMU Agent | Enabled |
VirtIO drivers: vioscsi from w11/amd64 is required for disk detection during install. Mount the VirtIO ISO as a secondary CD-ROM.
Domain join:
# Join domain
Add-Computer -DomainName corp.local -Credential corp\Administrator -Restart
RDP: Enabled via GPO and local settings. Accessed via Windows App (Mac).
Ubuntu-Docker01
Ubuntu Server 24.04 LTS. Intended as a Docker host for self-hosted services and the observability stack.
Planned services:
- Docker + Docker Compose
- Homepage (dashboard)
- Prometheus + Grafana + Alertmanager
- cAdvisor (Docker metrics)
- node_exporter
Grafana dashboard IDs to import:
| Dashboard | ID |
|---|---|
| Node Exporter Full | 1860 |
| Docker / cAdvisor | 14282 |
| Proxmox | 10347 |
wip — VM created, base OS install in progress.
Snapshot Strategy
Snapshots are taken in powered-off state to avoid AD time desync issues. RAM-state snapshots (live) risk NTP drift on restore.
# Take a powered-off snapshot via CLI
qm snapshot <vmid> <snapname> --description "Post-domain-join baseline"
# List snapshots
qm listsnapshot <vmid>
# Rollback
qm rollback <vmid> <snapname>
# After RAM-state restore (if needed), force NTP resync on DC:
w32tm /resync /force
QEMU Guest Agent
Required for proper shutdown/snapshot handling and IP reporting in the Proxmox UI.
# Enable on VM (Proxmox host)
qm set <vmid> --agent enabled=1
# Install inside Windows VM
# → Install from VirtIO ISO: guest-agent/qemu-ga-x86_64.msi
# Install inside Linux VM
apt install qemu-guest-agent
systemctl enable --now qemu-guest-agent