From 08a0c17cd0f0e6205efa3978e46914f4c387e3bb Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 05:41:51 +0000 Subject: [PATCH 1/5] docs: clarify Graphic card setting for GPU passthrough VMs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VMs with a passed-through GPU need Graphic card set to 'none' — VirtIO-GPU conflicts with the real card. VMs without GPU keep default VirtIO for console access. Add this to VM 100 and VM 101 System tab tables with explanatory notes. Co-Authored-By: Claude Sonnet 4.6 --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index c28b2ee..3c68860 100644 --- a/README.md +++ b/README.md @@ -2132,6 +2132,7 @@ Click **Next**. | Field | Value | |-------|-------| +| Graphic card | **Default** (VirtIO) | | Machine | q35 | | BIOS | OVMF (UEFI) | | Add EFI Disk | checked | @@ -2146,6 +2147,9 @@ Click **Next**. > **Pre-Enrolled Keys must be unchecked.** Enabling it turns on Secure Boot, > which blocks NVIDIA kernel modules from loading in the guest. +> **Graphic card stays as Default (VirtIO) for VM 100** — Frigate has no +> passed-through GPU, so it needs the virtual display for console access. + Click **Next**. **Tab: Disks** @@ -2359,10 +2363,18 @@ Click **Create VM** in the web UI. |-----|-------| | General | VM ID: **101**, Name: **vm101** | | OS | ubuntu-24.04.4-desktop-amd64.iso | +| System → Graphic card | **none** | +| System → Machine | q35 | +| System → BIOS | OVMF (UEFI) | +| System → Pre-Enrolled Keys | **unchecked** | | CPU | 8 cores, host | | Memory | 16384 MiB | | Disk | 64 GiB on local-lvm | +> **Graphic card must be set to "none"** when passing through a real GPU. +> Leaving it as VirtIO-GPU creates a conflicting virtual display adapter that +> interferes with the passed-through card. + After the wizard completes, add the GPU in the **Hardware** tab: Click **Add** → **PCI Device**. From fc78b2fc93477d43039263bfd5f91dd4fe702cde Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 05:49:33 +0000 Subject: [PATCH 2/5] Add Write back cache explanation to VM disk setup Co-Authored-By: Claude Sonnet 4.6 --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 3c68860..77cbe32 100644 --- a/README.md +++ b/README.md @@ -2162,6 +2162,12 @@ Click **Next**. | Cache | Write back | | Discard | checked (if local-lvm is on SSD) | +> **Write back** acknowledges writes to the VM as soon as they land in the +> host's RAM cache, before they hit disk — faster than "No cache" (the +> default). Safe enough for an OS disk on a server with redundant PSUs. +> For the raw HDD passthrough later, cache mode is irrelevant — those drives +> manage their own caching. + Click **Next**. **Tab: CPU** From 9284d1dd10494dde8188d9a68dd3377a62600b50 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 05:51:57 +0000 Subject: [PATCH 3/5] Update VM 100 CPU/network wizard settings with E5-2660 v4 specifics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Cores 8→12, add NUMA note for dual-socket E5-2660 v4 - Expand network table with VLAN Tag field and VirtIO note Co-Authored-By: Claude Sonnet 4.6 --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 77cbe32..7d8f6d1 100644 --- a/README.md +++ b/README.md @@ -2175,12 +2175,16 @@ Click **Next**. | Field | Value | |-------|-------| | Sockets | 1 | -| Cores | 8 | -| Type | host | +| Cores | 12 | +| Type | **host** | > **Why `host` CPU type?** It exposes the real CPU feature flags, which NVIDIA > drivers expect. Without it, `nvidia-smi` may work but performance-sensitive > GPU features fail silently. +> +> **Why 12 cores?** The E5-2660 v4 has 14 cores per socket (28 total). Giving +> VM 100 12 cores leaves the host and other VMs plenty of headroom. Sockets: 1 +> keeps the VM on a single NUMA node for lower memory latency. Click **Next**. @@ -2197,9 +2201,13 @@ Click **Next**. | Field | Value | |-------|-------| | Bridge | vmbr0 | -| Model | VirtIO (paravirt) | +| Model | VirtIO (paravirtualized) | +| VLAN Tag | no VLAN | | Firewall | checked | +> `vmbr0` is the main LAN bridge. No VLAN tag needed for the desktop VM. +> VirtIO is the fastest virtual NIC — always use it over e1000 or rtl8139. + Click **Next**, then **Finish**. VM 100 now appears in the left panel. **Do not start it yet** — the Coral From a2edf0359c8613fd015d5feadfac7338f65449e9 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 05:53:49 +0000 Subject: [PATCH 4/5] Document QEMU Agent and TPM fields in VM System tab - Set Graphic card to none (GPU passthrough VM) - Add Qemu Agent row (check it, install guest agent post-install) - Add TPM row (unchecked, only needed for Windows 11) - Explain each setting Co-Authored-By: Claude Sonnet 4.6 --- README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7d8f6d1..79e7a40 100644 --- a/README.md +++ b/README.md @@ -2132,13 +2132,15 @@ Click **Next**. | Field | Value | |-------|-------| -| Graphic card | **Default** (VirtIO) | +| Graphic card | **none** | | Machine | q35 | | BIOS | OVMF (UEFI) | | Add EFI Disk | checked | | EFI Storage | local-lvm | | Pre-Enrolled Keys | **unchecked** | | SCSI Controller | VirtIO SCSI Single | +| Qemu Agent | checked | +| Add TPM | unchecked | > **Why q35 + OVMF?** GPU passthrough requires PCIe bus emulation, which only > `q35` provides. `i440fx` (the older default) does not support PCIe correctly @@ -2147,8 +2149,16 @@ Click **Next**. > **Pre-Enrolled Keys must be unchecked.** Enabling it turns on Secure Boot, > which blocks NVIDIA kernel modules from loading in the guest. -> **Graphic card stays as Default (VirtIO) for VM 100** — Frigate has no -> passed-through GPU, so it needs the virtual display for console access. +> **Graphic card: none** — this VM gets a real GPU passed through, so the +> virtual display is disabled. Console access works via the passed-through GPU +> once Ubuntu boots. + +> **Qemu Agent** — check this now, then after Ubuntu is installed run +> `apt install qemu-guest-agent` inside the VM. It enables clean shutdown from +> the Proxmox UI, shows the VM's IP address in the summary panel, and ensures +> snapshots flush disk buffers before freezing. + +> **TPM** — only required for Windows 11. Leave unchecked for Ubuntu. Click **Next**. From e8e9bd927a99c1818377df6035fe7e9f9a3c48e4 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 06:01:14 +0000 Subject: [PATCH 5/5] Add RAM MiB reference table and clarify raw drive passthrough MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Memory tab: 49152 MiB (48 GiB) with common GiB→MiB conversion table - Drive passthrough: note that raw drives bypass Proxmox storage entirely Co-Authored-By: Claude Sonnet 4.6 --- README.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 79e7a40..620843c 100644 --- a/README.md +++ b/README.md @@ -2202,7 +2202,23 @@ Click **Next**. | Field | Value | |-------|-------| -| Memory (MiB) | 16384 | +| Memory (MiB) | 49152 | + +Common MiB values for reference: + +| GiB | MiB to enter | +|-----|-------------| +| 8 GiB | 8192 | +| 16 GiB | 16384 | +| 32 GiB | 32768 | +| 48 GiB | 49152 | +| 64 GiB | 65536 | +| 96 GiB | 98304 | +| 128 GiB | 131072 | + +> 48 GiB (49152) is a good starting point for a desktop+NAS VM on a server +> with 128–256 GiB total RAM. Adjust based on how much you want to reserve for +> the host and other VMs. Click **Next**. @@ -2337,6 +2353,11 @@ find it automatically. ### Step 11.6 — Add raw data drives to VM 100 via CLI +> **You do NOT add bare drives to Proxmox storage.** Proxmox storage (local-lvm, +> local, etc.) is only for VM disk images. Raw drives are passed directly to the +> VM as block devices — they bypass Proxmox storage entirely and appear inside +> the VM as `/dev/sdb`, `/dev/sdc`, etc. No storage pool setup required. + The web UI does not support raw block device passthrough cleanly — use the Proxmox CLI. SSH into the host: