From 82827f9939e6f8190546affc98fd648951c7c30a Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 15:59:16 +0000 Subject: [PATCH 1/2] Add nested virtualization setup, drive discovery steps, and VM 102 Windows - Step 11.6: enable nested KVM on Proxmox host (kvm-intel nested=Y) - Step 11.7: find HDD by-id paths with lsblk and ls /dev/disk/by-id/ - Step 11.8: renamed from 11.6, drive passthrough unchanged - Step 11.10: VM 102 Windows 11 for Sync.com with dedicated NTFS drive - Renumbered steps 11.9-11.13 to accommodate new steps Co-Authored-By: Claude Sonnet 4.6 --- README.md | 149 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 131 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index b367312..8a78818 100644 --- a/README.md +++ b/README.md @@ -2353,7 +2353,69 @@ find it automatically. --- -### Step 11.6 — Add raw data drives to VM 100 via CLI +### Step 11.6 — Enable nested virtualization on the Proxmox host + +VM 100 will run a nested Windows VM (VirtualBox) for Sync.com. This requires +exposing hardware virtualization extensions to the guest. Run on the +**Proxmox host**: + +```bash +# Check current state — Y = already enabled, N = needs enabling +cat /sys/module/kvm_intel/parameters/nested + +# Enable nested virt persistently +echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf + +# Reload the module (or reboot — reboot is safer) +modprobe -r kvm_intel && modprobe kvm_intel + +# Verify +cat /sys/module/kvm_intel/parameters/nested # should print Y +``` + +> **VM 100 must have CPU type set to `host`** (already configured in Step 11.3). +> Without `host`, the VM does not see the VT-x extensions and VirtualBox inside +> it will run in slow emulation mode or fail to start 64-bit guests. + +Verify inside VM 100 after it boots: + +```bash +# Should show vmx flag — confirms VT-x is visible to the guest +grep -m1 vmx /proc/cpuinfo +``` + +--- + +### Step 11.7 — Find drive IDs on the Proxmox host + +> **Do not use `lsusb`** — that lists USB devices only. HDDs connected via the +> PERC H730 in JBOD mode appear as regular block devices. + +SSH into the Proxmox host and run: + +```bash +# See all drives with model, size, and device path +lsblk -o NAME,SIZE,MODEL,SERIAL,TYPE | grep disk + +# Get stable by-id paths (use these — not /dev/sdX which can change on reboot) +ls -la /dev/disk/by-id/ | grep -v part | grep -v wwn +``` + +Example output: + +``` +scsi-35000cca23b7d4eb8 -> ../../sdb # Bay 1 — HGST 4TB +scsi-35000cca23b5e1234 -> ../../sdc # Bay 2 — HGST 4TB +scsi-35000cca23bab5678 -> ../../sdd # Bay 3 — HGST 4TB +... +``` + +> Use the `scsi-3...` or `ata-...` names — these are stable and tied to the +> drive's serial number. `/dev/sdb` can shift if drives are added or removed. + +--- + +### Step 11.8 — 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 @@ -2367,8 +2429,7 @@ Proxmox CLI. SSH into the host: ssh root@192.168.1.10 ``` -Run one `qm set` command per drive, replacing the `PLACEHOLDER_BAYx` paths -with the real by-id paths from your `hardware-layout.md`: +Run one `qm set` command per drive using the by-id paths from Step 11.7: ```bash qm set 100 -scsi1 /dev/disk/by-id/PLACEHOLDER_BAY1 @@ -2402,7 +2463,7 @@ scsi8: /dev/disk/by-id/scsi-35000cca23bab1234,size=0 --- -### Step 11.7 — Create VM 101 (Ubuntu Desktop + GPU) +### Step 11.9 — Create VM 101 (Ubuntu Desktop + GPU) Click **Create VM** in the web UI. @@ -2448,29 +2509,81 @@ qm set 101 -scsi2 /dev/disk/by-id/PLACEHOLDER_BAY10 --- -### Step 11.8 — Create VM 102 (storage/utility, no GPU) +### Step 11.10 — Create VM 102 (Windows 11, Sync.com) + +VM 102 is a Windows 11 VM that runs the Sync.com desktop client for cloud +backup. Syncthing on VM 100 mirrors NAS data to VM 102's local NTFS drive, +and Sync.com picks it up natively. Click **Create VM** again. -| Tab | Value | -|-----|-------| -| General | VM ID: **102**, Name: **vm102** | -| CPU | 4 cores, host | -| Memory | 8192 MiB | -| Disk | 32 GiB on local-lvm | +**Tab: General** -No PCI device, no USB devices. +| Field | Value | +|-------|-------| +| VM ID | 102 | +| Name | windows-sync | -Add the two data drives: +**Tab: OS** + +| Field | Value | +|-------|-------| +| ISO image | windows11 ISO (upload to local storage first) | +| OS Type | Microsoft Windows | +| Version | 11/2022/2025 | + +**Tab: System** + +| Field | Value | +|-------|-------| +| Graphic card | Default (VirtIO) | +| Machine | q35 | +| BIOS | OVMF (UEFI) | +| Add EFI Disk | checked | +| EFI Storage | local-lvm | +| Pre-Enrolled Keys | **checked** (Windows 11 requires Secure Boot) | +| Add TPM | **checked**, TPM Storage: local-lvm (Windows 11 requires TPM 2.0) | +| SCSI Controller | VirtIO SCSI Single | + +**Tab: Disks** + +| Field | Value | +|-------|-------| +| Disk size (GiB) | 128 | +| Storage | local-lvm | +| Cache | Write back | + +**Tab: CPU** + +| Field | Value | +|-------|-------| +| Sockets | 1 | +| Cores | 4 | +| Type | host | + +**Tab: Memory** + +| Field | Value | +|-------|-------| +| Memory (MiB) | 8192 | + +Click **Finish**. + +Then pass a dedicated data drive to VM 102 for Sync.com to sync to: ```bash -qm set 102 -scsi1 /dev/disk/by-id/PLACEHOLDER_BAY11 -qm set 102 -scsi2 /dev/disk/by-id/PLACEHOLDER_BAY12 +# Use one of your spare HDDs — Sync.com data lives here (formatted NTFS in Windows) +qm set 102 -scsi1 /dev/disk/by-id/PLACEHOLDER_SYNC_DRIVE ``` +> **Why a dedicated drive?** Sync.com needs a real local NTFS disk — not a +> network share, not a shared folder. Windows formats this drive NTFS and +> Sync.com treats it as a native local drive. Syncthing on VM 100 pushes +> data to it over the LAN. + --- -### Step 11.9 — Install Ubuntu in VM 100 +### Step 11.11 — Install Ubuntu in VM 100 In the left panel, click **100 (frigate)** → click **Start** (▶ button). @@ -2510,7 +2623,7 @@ automatically. When the login prompt appears in the console, the OS is ready. --- -### Step 11.10 — Find VM 100's IP and test SSH +### Step 11.12 — Find VM 100's IP and test SSH Log in at the console. Check the assigned IP: @@ -2539,7 +2652,7 @@ If SSH connects, close the noVNC console tab — you will not need it again. --- -### Step 11.11 — Install Ubuntu in VMs 101 and 102 +### Step 11.13 — Install Ubuntu in VM 101 **VM 101 (Desktop):** Start the VM, open the console, and work through the Ubuntu Desktop installer. Use `vm101` as the hostname. The desktop installer From 37a45259eb3efebaae059b52f81717ee3bf9e82f Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 27 Jun 2026 16:55:15 +0000 Subject: [PATCH 2/2] Disable Wayland system-wide, fix VM 100 install for Ubuntu Desktop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Step 11.11: rewrite install steps for Ubuntu Desktop (not Server) - Step 11.13: new step — sed one-liner to force Xorg via gdm3/custom.conf - Step 11.14: add Wayland disable for VM 101, update VM 102 to Windows install - Explain why Wayland breaks WinApps tsclient home drive sharing Co-Authored-By: Claude Sonnet 4.6 --- README.md | 110 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 70 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 8a78818..fe4d2f8 100644 --- a/README.md +++ b/README.md @@ -2583,43 +2583,37 @@ qm set 102 -scsi1 /dev/disk/by-id/PLACEHOLDER_SYNC_DRIVE --- -### Step 11.11 — Install Ubuntu in VM 100 +### Step 11.11 — Install Ubuntu Desktop in VM 100 -In the left panel, click **100 (frigate)** → click **Start** (▶ button). +In the left panel, click **100** → click **Start** (▶ button). -Open the console: click **Console** at the top. This opens a noVNC session in -your browser. +Open the console: click **Console** at the top. This opens a noVNC session. -Wait for the Ubuntu GRUB menu to appear. Select **Try or Install Ubuntu -Server** and press Enter. +Wait for the Ubuntu GRUB menu → select **Try or Install Ubuntu** → press Enter. -Work through the Ubuntu Server installer: +Work through the Ubuntu Desktop installer: 1. **Language:** English (or your preference) -2. **Keyboard:** your layout -3. **Type of install:** Ubuntu Server (not minimised — minimised is missing tools - you need) -4. **Network connections:** the VirtIO NIC auto-detects and gets a DHCP IP. - **Note the IP address** — you will use it for SSH in the next step. -5. **Proxy:** leave blank -6. **Ubuntu archive mirror:** leave at default (or a nearby mirror) -7. **Storage:** - - **Guided storage layout** → **Use an entire disk** - - Select the **64GB** virtual disk (the scsi0 OS disk — shows as ~64.4 GB) - - Leave LVM enabled - - **Do not select the large 3.6TB data drives** — those will become a ZFS - pool in Phase 12 -8. **Profile setup:** - - Server's name: `frigate` - - Username: `ubuntu` (or your preference) - - Password: something strong -9. **SSH:** check **Install OpenSSH server** → Yes -10. **Featured server snaps:** skip all +2. **Accessibility:** skip +3. **Keyboard:** your layout +4. **Connect to internet:** the VirtIO NIC auto-detects, gets DHCP — continue +5. **What do you want to do?** → **Install Ubuntu** +6. **How do you want to install?** → **Interactive installation** +7. **Applications:** Default selection +8. **Optimise your computer:** check both boxes (install restricted extras, download updates) +9. **Disk setup:** → **Manual partitioning** or **Erase disk and install Ubuntu** + - Select the **64 GiB** virtual disk (scsi0 — the small one) + - **Do not touch the large data drives** — leave them completely alone +10. **Time zone:** your location +11. **Create account:** + - Name / hostname: `vm100` + - Username: your preference + - Password: something strong + - **Enable auto-login** if this is a desktop you sit at +12. **Ready to install:** click **Install** -Click **Done** on the summary screen. The install takes 5–10 minutes. - -When installation finishes: **Reboot Now**. Proxmox ejects the ISO -automatically. When the login prompt appears in the console, the OS is ready. +Install takes 10–15 minutes. When done click **Restart Now**. Proxmox ejects +the ISO automatically. --- @@ -2647,22 +2641,58 @@ ssh ubuntu@192.168.1.XXX If SSH connects, close the noVNC console tab — you will not need it again. > **Recommended:** Set a DHCP reservation in your router for VM 100's MAC -> address so its IP stays stable. Frigate's web UI and stream URLs depend on -> a predictable IP. +> address so its IP stays stable. --- -### Step 11.13 — Install Ubuntu in VM 101 +### Step 11.13 — Disable Wayland, force Xorg -**VM 101 (Desktop):** Start the VM, open the console, and work through the -Ubuntu Desktop installer. Use `vm101` as the hostname. The desktop installer -is graphical — click through the screens. When prompted for storage, install -only to the 64GB OS disk; leave the data drives untouched. +Ubuntu 24.04 defaults to Wayland. WinApps file sharing (`\\tsclient\home`) +breaks under Wayland due to FreeRDP limitations — tsclient mounts as empty. +Force Xorg system-wide with one command: -**VM 102 (Server):** Repeat steps 11.9–11.10. Use `vm102` as the hostname. +```bash +ssh ubuntu@192.168.1.XXX -During the storage step in each VM: install Ubuntu only on the small OS disk. -Leave the large data drives untouched — they are for you to configure later. +# Uncomment WaylandEnable=false in GDM config +sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf + +# Verify the line is now active (should print: WaylandEnable=false) +grep WaylandEnable /etc/gdm3/custom.conf + +# Restart the display manager to apply +sudo systemctl restart gdm3 +``` + +After GDM restarts, log back in. Verify Xorg is active: + +```bash +echo $XDG_SESSION_TYPE # should print: x11 +``` + +> **Why this matters beyond WinApps:** Wayland also has issues with some GPU +> passthrough configurations, screen sharing tools, and remote desktop clients. +> Xorg is the more stable choice for a server-side desktop running inside a VM. + +--- + +### Step 11.14 — Install Ubuntu in VM 101 + +Start VM 101, open the console, and work through the Ubuntu Desktop installer. +Use `vm101` as the hostname. When prompted for storage, install only to the +64 GiB OS disk — leave the data drives untouched. + +After first login, disable Wayland on VM 101 as well (same command as Step 11.13): + +```bash +sudo sed -i 's/#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf +sudo systemctl restart gdm3 +``` + +**VM 102 (Windows 11):** Boot from the Windows 11 ISO, work through the +installer. Use `windows-sync` as the hostname. Install to the 128 GiB OS disk. +After install, format the dedicated Sync.com data drive as NTFS in Disk +Management, then install the Sync.com desktop client and point it at that drive. ---