RSSAmplifier

Blog

Josh Pencheon - Software Engineer

josh.pencheon.devRSS feed ↗10 posts

Latest posts

CPU inference with Ollama

I’ve been using Ollama for the past year or so to experiment with open-source large language models, and have most recently been trying out OpenAI’s gpt-oss 20 billion parameter model.

Understanding ZFS free space reporting

Recently, I noted btop was showing some odd stats for a ZFS dataset; it was showing as 100% free, but with an unexpectedly small total capacity:

Managing AUR packages with a local repository

The Arch User Repository (AUR) provides thousands of user-submitted packages, but each package in the AUR is just a git repository containing at minimum a PKGBUILD recipe. To install a package, you first check out the repository and review it, then use makepkg to install dependencies, download/verify the source material, and build it. You can then install the built package directly with pacman -U.

Shipping ZFS snapshots with Syncoid

Sanoid is a popular choice for maintaining a history of a ZFS dataset via snapshots. It gives us the ability to use ZFS send/recv to efficiently back up the dataset to a separate machine, transmitting just the deltas between snapshots. Syncoid is a tool to help with this, bundled as part of sanoid. If used with something like tailscale, it can make offsite backups a breeze!

Installing ZFS with DKMS

For licencing reasons, ZFS is not able to integrated into the mainline linux kernel. Some distributions (like Ubuntu) do package the modules into their kernels, whereas others (like Arch) exclude it from their official repositories. In this latter case, you then have two choices - enable a third-party repository that provides built binary modules for specific kernel versions, or use DKMS to build…

Fixing GT210 black screen with Nouveau

I’ve got an ancient Nvidia GT210, a GPU that was old even when it was new. Recently, I’ve been having issues with kernel and driver support. Nvidia stopped supporting this card a long time ago (340.x being the last driver series that supported it), so I’ve always used the reverse-engineered nouveau drivers instead.

Mounting ZFS encrypted datasets on boot

I previously wrote about enabling encryption for a ZFS dataset, but didn’t cover how to go about mounting such a dataset on boot. If using keylocation=prompt an interactive solution will be required, but as I’m using a keyfile held outside of ZFS an automatic solution is possible.

Binding services together with systemd

I’ve got an SMB share that’s serving files stored in ZFS. I don’t want the samba server to start until the ZFS dataset is mounted, and nor do I want the server to continue running should the dataset get unmounted; this might risk data being written without the desired ZFS encryption in place.

Retrospectively enabling ZFS encryption

Suppose we have an existing ZFS dataset that was created without encryption, and we’d now like to encrypt it. This is something that can’t be changed once a dataset has been created, so we have to get a little creative.

Booting Raspberry Pi with iSCSI

In order to get a Raspberry Pi booting without any physically attached storage, we need to consider a number of different phases: