Running Ollama in a Proxmox LXC with NVIDIA GPU Passthrough

Running large language models locally is genuinely useful — no API costs, no rate limits, and your data stays on your own hardware. The catch is getting GPU acceleration working inside a Proxmox LXC container, which involves a few non-obvious steps around driver installation and cgroup device passthrough. Why LXC and not a VM? VM GPU passthrough wasn’t an option here — no iGPU meant the host would have had no display output once the card was handed off. LXC was the practical solution, and it turns out to be a good one anyway: containers share the host kernel directly, so the GPU stays bound to the host’s NVIDIA driver and the container accesses it via bind-mounted device nodes and cgroup permissions. On top of that, LXCs are lighter weight than VMs, with less overhead and near-instant startup times. For a dedicated service like Ollama, it’s a solid fit. ...

March 22, 2026 · 11 min · Tom Cocking

How to Expand an Ubuntu LVM Logical Volume to Use All Free Space on the PV

Updated October 2026: added the one-line quick answer, the “I grew the virtual disk first” path (growpart and pvresize), a troubleshooting section and the agent handoff block. The original walkthrough below is unchanged. Quick answer If your Ubuntu root volume is full and vgdisplay shows free space in the volume group, this one command gives the whole lot to the root LV and grows the filesystem in the same step: ...

September 4, 2024 · 7 min · Tom Cocking

How To call a bash command with variables in Python

Updated October 2026: the code in my 2020 version of this post didn’t run. It used : where it needed =, wrote Import with a capital, and passed a command string to Popen without a shell, which raises FileNotFoundError. I’ve rewritten the examples, run every one on Python 3.14.4, and added the part I should have warned you about, which is shell injection. A quick Google of the title only gave me answers for the inverse, calling a Python script from bash and handing it variables. At least the first three results did, and I’m probably not alone in scrolling past the Stack Overflow answers. ...

December 28, 2020 · 6 min · Tom Cocking

How to check if RAM is running in ECC mode

Error Correcting Code (ECC) RAM is a variation of coputer memory which helps to ilimintate data curruption or ‘bit rot’, but it is not always imediately apparent if your system memory is running in ECC mode; here is a quick guide on how to check if your system memory is running in ECC mode. This guide covers Windows and Linux systems, but please ensure that if you are running either system in a virtual machine configuration that this command is ran on the host machine. ...

May 30, 2020 · 2 min · Tom Cocking

How To: Raspberry Pi boot from USB

The Pi enthusiasts have been waiting for official USB boot support on the Raspberry Pi for what feels like a lifetime, but finally it is on the horizon. In this post I will explain how to make your Raspberry Pi boot from USB. WARNING: Although this is official, it is still in beta testing, so rock-solid stability is far from certain. Learn more about this beta release here. Why should I make my Raspberry Pi boot from USB? Firstly let me address why you would want to do this and what makes many people relieved that the feature is on the horizon. ...

May 23, 2020 · 4 min · Tom Cocking

How to upgrade Ubuntu from 18.04 to 20.04

Note: Ubuntu 18.04 LTS reached end-of-life in April 2023, and Ubuntu 20.04 LTS reaches EOL in April 2025. If you’re starting fresh, install Ubuntu 24.04 LTS. The do-release-upgrade process shown here is still valid for sequential LTS upgrades. Ubuntu 20.04 LTS full release is almost upon, with a scheduled release date of April 23rd 2020 (2 days as of writing this). It is packed with lots of great new features and upgrades and the Linux community is very excited to get a hold of it. If you are looking to upgrade ubuntu, there is a quick guide down below. ...

April 21, 2020 · 3 min · Tom Cocking

Setup the Nextcloud Snap Package with HTTPS and a separate data path

https://snapcraft.io/nextcloud I have been using the Nextcloud snap package for a long time, but some recent system changes in my colocation facility mean that it is time for a big upgrade. Rather than migrate my existing Nextcloud instance, I have decided to build a new install and here are my goals for the new installation: Use lets encrypt to have automatic and valid HTTPS certificates Have the data path for Nextcloud on a HDD and the rest of the host OS on an SSD. Host OS Details For this setup, I am using Ubuntu 18.04 installed on a 30GB SSD backed partition. I then have a 1TB disk attached and mounted to /media. ...

March 29, 2020 · 3 min · Tom Cocking

Kali Linux 2020.1 - No more root by default

** Rejoice! Kali Linux 2020.1 is here! The first release of 2020 has arrived and this post will contain some updates and my initial thoughts on the fresh release. Kali Linux 2020.1 features and changes Non-Root by default Kali single installer image Kali NetHunter Rootless Improvements to theme & kali-undercover New tools Full Kali release notes as per their release blog post: https://www.kali.org/releases/kali-linux-2020-1-release/ Got root? Kali has installed with root as the default user since the dawn of its existence, Backtrack, WHAX and Whoppix, but finally, the devs have decided that it time to bring Kali in line with Debian on this one and have a default user which is no longer root. ...

January 28, 2020 · 3 min · Tom Cocking

Clipboard and Shared Folders on Kali Linux with VirtualBox

I spent more time that care to admit trying to setup a shared folder between my windows host and Kali VirtualBox VM. So hopefully the Google algos pick this one up and save you the time trying to find the right packages to fix this a clipboard sync. apt-get update apt-get install -y virtualbox-guest-x11 Go for a quick reboot once the above commands are complete and you should have clipboard sync (text) and shared folders should mount successfully. ...

November 21, 2019 · 1 min · Tom Cocking

[SOLVED] - Running Docker on a Raspberry Pi 4

The Raspberry Pi 4 has now been released offering up to 4GB of RAM! All of the horsepower required for an excellent lower power, docker host. However, there are currently issues undergoing work which prevent docker from running on the only Rasbian image currently available for the Pi 4 – ‘Rasbian Buster‘. Details of these issues can been found here on the GitHub thread – https://github.com/docker/for-linux/issues/709 Current Working Solution Fear not, for there is a simple way to fool your docker installation and successfully getting it to run on the Pi 4. ...

July 10, 2019 · 1 min · Tom Cocking