news
BSD Leftovers
-
Vincent Delft ☛ Cloning FreeBSD Jails with ZFS: Fast Copies, Hidden Dependencies
In my previous post I built a minimal thick jail from pkgbase packages and ended with a baseline ZFS snapshot. That snapshot is more than a safety net: it is a template. With a single command you can stamp out as many jails as you need, each one ready in a second and using almost no extra disk space.
But clones come with a property that surprises people: a ZFS clone is not a plain copy. It stays linked to the snapshot it came from, and that link decides what you can and cannot destroy later. In this post I clone one jail into four, list the few things that must be changed in each copy, explain how upgrades behave, and show three ways to deal with the dependency between a clone and its origin.
-
Vincent Delft ☛ FreeBSD Thick Jails the pkgbase Way: A Minimal, Working Setup
For years, building a FreeBSD jail meant downloading base.txz, extracting it by hand, and later juggling freebsd-update(8) to keep it patched. With FreeBSD 15, the base system is also available as regular packages, a method known as pkgbase, and jails are where it shines: you install exactly the pieces you need, update them with the same tool you use for everything else, and keep the whole thing on its own ZFS dataset that can be snapshotted, rolled back and cloned in seconds.
In this post I build a minimal but functional thick jail (a full, self-contained copy of the userland) from scratch, from dataset creation to a running system with SSH. I also share the one mistake that cost me an afternoon, a userland newer than the host kernel that made the jail hang on shutdown, along with the commands to avoid or fix it. Everything here comes from a real FreeBSD 15.1 setup. Adapt the pool, dataset and network names to yours.
-
Vincent Delft ☛ Converting a FreeBSD Jail with pkgbasify
For years, keeping a FreeBSD system up to date meant running freebsd-update(8), which patches the base system as a single, opaque block. pkgbase changes that model: the base system is split into ordinary packages that you can install, query and upgrade with pkg(8), just like any other software. The pkgbasify script can convert an existing installation, but it rewrites the whole base system, which makes it a poor first experiment on a machine you care about. A jail is a much better laboratory. It is isolated from the host, cheap to create and, with ZFS, trivial to roll back. In this article I walk through converting a classic jail to pkgbase from start to finish, including the one jail parameter that makes the conversion fail if you forget it. I then show how to upgrade the result to a newer minor release, all without touching the host.
-
Vermaden ☛ FreeBSD Cope with Signal Fuckup
The main credit for this article goes – Signal Desktop on FreeBSD Using Linux Binary Compatibility – here. I used linux-browser-installer all this time on FreeBSD with Ubuntu system at /compat/ubuntu … but when I tried to install Signal Desktop there it said that its too old version of Ubuntu – because it was focal. The mentioned guide opened my eyes that I can use something more recent like trixie for example.
When I first got Signal Desktop working in this Debian system I really hated how ugly the fonts look – kinda like XKCD:1015 curse.