Issues transferring Windows 11 VM from KVM to Proxmox

I ran into a strange issue when trying to transfer a Windows 11 Pro virtual machine from KVM on my Fedora desktop to Proxmox. The VM was using a VirtIO block device for it’s storage as I normally do. I transferred the VM qcow2 file to Proxmox and created a new VM with matching hardware, the imported the disk with: qm importdisk 300 win11.qcow2 fast (fast being the name of my SSD zpool.) ...

February 20, 2026 · 2 min

Using Calibre and the DeDRM plugin to strip DRM from Amazon eBooks

Using Calibre and the DeDRM plugin to remove DRM from Amazon eBooks Overview I’m not going to spend too much time going over this as there are plenty of screenshots in other guides, two of which I’ve linked at the bottom of this page. However I felt their instructions were a bit all over the place and hard to follow, so here’s my own notes. NoteDisclaimer: This should only be used with Amazon eBooks that you legally own. ...

February 15, 2026 · 4 min

Linux on an Asus CR11 Chromebook

In which I have zero self control While browsing the Amazon Black Friday sales a few weeks ago, a particular deal caught my eye. An ASUS Chromebook CR11 ruggedized laptop for around $130. Now, I have enough laptops, but I’ve always wanted to try and hack Linux onto one, and this one was attractive due to its ruggedized nature as well as a full blown Intel N100 CPU. I purchased the laptop and once it arrived, I began poking around the internet to see how I could get regular Linux on this thing. ...

December 13, 2025 · 5 min

Proxying AdGuard Home DNS-over-HTTPS with Nginx

A few months ago I switched from using Pi-hole to AdGuardHome for serving adblocking DNS to not just the clients in my home, but also my mobile devices. There were a few reasons for this, but chief among them was its proper support for DNS-over-TLS (DOT) and DNS-over-HTTPS (DOH). I had previously been running unencrypted DNS via Tailscale, but because of the way I have things configured, this mean that every DNS request from an external device looked like it was coming from my subnet router. ...

October 28, 2025 · 3 min

Getting started with Docker

Getting started with Docker So, you wanna use docker-compose… Introduction Welcome! If you’re looking at this post, I assume that you’re new to Docker and you want to learn to get up and running quickly. There are several areas of Docker that confuse new users, and I will do my best to address most of the most common pitfalls in this post. docker run vs docker compose Don’t use docker run. If the thing you want to run in Docker only gives you the docker run syntax, you take that thing over to Composerize and you convert it. ...

October 26, 2025 · 6 min

Wireguard configuration concepts

Wireguard concepts The point of this post This is intended as a high level starting point for someone who is new to using Wireguard. If you spot any errors or inaccuracies, feel free to open a pull request in the Github repo, or leave a comment. Overview Wireguard is a modern VPN protocol. Instead of using a traditional client server model, Wireguard uses a peer-to-peer mechanism. Authentication is handled with private and public key pairs, and optionally a pre-shared key. ...

October 26, 2025 · 4 min

Passing through Intel Arc A380 to a Proxmox VM

I recently purchased an AsRock Challenger ITX Intel Arc A380 GPU to use for my video transcoding needs. It was a bit of a headache to get it passed through to a VM in Proxmox, so here’s a log of what worked for me, in hopes that it will help someone else down the road. My VM is Ubuntu 24.04 LTS, running kernel 6.14 (HWE kernel). Proxmox is version 8.4. ...

August 17, 2025 · 4 min

Connecting an Existing FreshRSS instance to OIDC

Connecting an existing FreshRSS instance to OIDC Specifically, how to do so without starting over. WARNING: I am not responsible for you losing data by doing this. Make sure you have a recent backup before you go digging around and changing things in the filesystem. Overview It came to my attention yesterday that the FreshRSS project directly supports OIDC now. I’ve been using the Traefik ForwardAuth middleware to get the same functionality for some time, but this allows me to get rid of a layer. ...

August 15, 2025 · 4 min

Proxmox Setup Notes

Proxmox installation steps Overview This post is a reference for me and anyone else that finds it useful. I’ve never bothered documenting this before, which leads me to missing stuff every time I set up a new box. This post will continue to be updated if I add anything new. Installation The primary thing to get right here is the storage configuration. Even if it’s a single disk I will typically do ZFS. Click on Options. Choose whichever ZFS topology you want. Click on Advanced Options. Change Compression from “on” to “lz4”. This is the default anyway, but I like to be sure. ashift should be set to 12 or 13. I typically do 12, as this targets 4k physical sectors. Make sure that you have the correct disks selected. Any disk you do not want to be part of the boot pool should be set to “do not use”. For the rest of the setup you can pretty much just click Next Next Next. I do recommend setting the correct time zone and a good DNS server. Post-Install If you don’t have an Enterprise subscription we need to disable the enterprise repository and enable the one for no-subscription. Click on the individual node (not Datacenter) and go to Updates > Repositories. Click on Add and select No Subscription from the dropdown. Next, select the repositories labeled “Enterprise” and disable them. Enable Debian Non-Free-Firmware repository. This one can’t be done through the GUI. SSH in or use the web shell. Edit the sources vim /etc/apt/sources.list.d/pve-no-enterprise.list` Add the following repo, replacing $VERSION with your release’s Debian base (bookworm, trixie): https://deb.debian.org/debian $VERSION main non-free-firmware Install the firmware microcode for your hardware vendor Run apt update apt install intel-microcode OR apt install amd64-microcode At this point, update the system. Reboot if needed. Next, lets fix the ZFS configuration. Click on the Datacenter tab and go do down to Storage. Select your zpool (or pools) and click Edit. You will have to do this for every pool individually. Enable thin provisioning. Change the Block Size to 64k or 128k. Either is probably fine, but the default 16k is abysmal for VM disks. This setting is the zvol equivalent to the recordsize property on datasets. Having this not match your workload will usually result in massive write amplification. This is why ZFS got a reputation for quickly killing SSDs, but it doesn’t have to if you configure your pool correctly. Click on the individual node again. Go to System > Network and select any bridges that you’ve created. Set them to be VLAN-aware. Set up the notification system under Datacenter > Notifications. I will typically have it send me only backup failure notices and warnings about things like failed disks. I will typically set up a VM template at this stage to save myself a bunch of work later. See links below for options. Other Notes If you’re trying to set up a new ZFS storage pool and the disks aren’t showing up in the interface - the Proxmox interface will not show you any disks that have partitions on them. ...

August 7, 2025 · 4 min

Setting up brscan-skey with the Brother DS-940DW on Ubuntu

Setting up brscan-skey with the Brother DS-940DW on Ubuntu Overview The Brother DS-940DW is a little handheld mobile scanner. Getting it working on Linux in a way where you can actually use the Start/Stop button on the scanner to scan things was a bit of a bear, so I thought I’d document how I did it. Part of the issue is that brscan-skey depends on the old version of libsane, and does not work with libsane1. ...

June 13, 2025 · 3 min