Posts by Category

Data Storage

Btrfs Scrub

27 minute read

You probably want to take advantage of the data integrity checking offered by Btrfs. Btrfs calculates checksums for all data written to disk. These checksum...

Podman With Btrfs and ZFS

13 minute read

Podman has storage backends for both Btrfs and ZFS. Using these backends allows Podman to take full advantage of the underlying CoW filesystem. This is a qu...

Backup Snapper Snapshots With snap-sync

26 minute read

In Btrfs Snapshot Management With Snapper, the process is described for automating Btrfs snapshots with Snapper. Why stop there when you can use these snaps...

Automount an Encrypted System Volume

20 minute read

If you run an encrypted Linux system, it’s helpful to understand how the system handles mounting and decrypting filesystems. A Linux desktop user and ...

Install udisks2 From Source

12 minute read

I recently posted Adjust Mount Options which explains in detail how to configure mount options for udisks2. Unfortunately, the reference operating system, U...

Encrypt an External Disk on Linux

20 minute read

Encrypting your data is pretty much a must anyone who is privacy or security conscious. I find it quite handy for not only protecting my data in use, but al...

Adjust Mount Options

84 minute read

Mounting filesystems on Linux is simple, right? Just use mount(8), specify the recurring stuff in fstab(5), and everything’s peachy. For both better a...

Btrfs Snapshot Management With Snapper

30 minute read

Manually taking snapshots with Btrfs is easy. Managing said snapshots is not. This is why several tools exist for the task. The most prominent are Btrbk, Sn...

Btrfs Layout

30 minute read

One of the best features of Btrfs is the ability to produce snapshots of data instantaneously. Rollbacks take advantage of Btrfs to revert the system, or an...

Why Choose Btrfs

15 minute read

There are many compelling reasons to use a modern Copy-on-Write, CoW for short, filesystem. These include low-cost snapshots and incremental backups. If tha...

Btrfs Swapfile

11 minute read

Swap space is a standard component of most operating systems. It’s effectively reserved disk space for accommodating a system when it needs more RAM t...

Btrfs Mount Options

12 minute read

So, let’s say you’ve installed a fresh system on Btrfs. Now what? Well, Btrfs doesn’t ship with optimal default settings. Many popular Lin...

Create a Windows 10 USB on Ubuntu

16 minute read

I needed a to install Windows 10 from a USB recently. I’ve described my preferred method of accomplishing this in my recent post A Multi-Boot USB With...

A Multi-Boot USB With Ventoy

26 minute read

My daily driver predates Dell’s support for the Linux Vendor Firmware Service, usually abbreviated LVFS. The only way to update my motherboard’s...

Backup Git Repositories

17 minute read

If you have any source code repositories hosted online, you probably don’t want to lose those. Just yesterday I converted my professional resume from ...

Install ZFS on the Pinebook Pro

6 minute read

Recently, I obtained a 64-bit ARM, budget Linux laptop, the Pinebook Pro. It’s a wonderful, sleek little notebook, boasting great convenience and powe...

Back to Top ↑

Virtualization

A Podman Pod as a systemd Service

11 minute read

Ever wanted to run a container, or pod, as a systemd service on Linux? This allows the container to be started automatically and even restarted on failure. ...

Automatically Update Podman Containers

9 minute read

Podman can automatically update your containers and hopefully make you’re life easier at the same time. Setting this up for Podman is actually pretty ...

Podman Compose

8 minute read

Podman supports the Kubernetes YAML format for configuring pods. Unfortunately, I’m coming to the Podman scene from Docker where the Docker Compose fo...

GNOME Boxes on Btrfs

21 minute read

So, you’ve got libvirt installed on your Linux box and your looking for a simple application for running virtual machines. Look no further than Boxes,...

Install libvirt on elementary OS 5.1

27 minute read

If you want to run virtual machines on Linux, chances are you’re going to use libvirt. I make use of it all the time, especially for testing these blo...

Install Podman on Ubuntu

7 minute read

Podman is a daemonless container runtime for Linux compatible with Docker. It offers several advantages over using Docker to manage and run containers. Firs...

Backup Docker Data

9 minute read

Backups are super helpful, especially when you like to blow everything away fairly often. Backing up the data from a Docker container can help you quickly g...

UniFi Controller

5 minute read

For wi-fi, I use use a UniFi AP. One slightly annoying aspect of this is the UniFi Controller. If you don’t have a smartphone or need to manage more t...

Back to Top ↑

Networking

Generate an SSH Key

19 minute read

Entering passwords is a pain. I know you agree. Why not enter passwords less by using SSH? You’ll just need a key and a little know-how to get started.

X11 Forwarding

8 minute read

A Remote Instance of GNOME Terminal Viewed on macOS Catalina

My SSH Configuration

26 minute read

The OpenSSH client and server applications are ubiquitous. Like many a software dev, I’m `ssh’ing all over the place. And you know what? I’...

DNS Over TLS With Unbound

13 minute read

Recently, Firefox announced it’s roll-out of DNS over HTTPS (DoH). That made me think, "Encrypting DNS…​ Why don’t I do that for my ...

OpenSMTPD Relay on Ubuntu

13 minute read

It can be handy to have your system email you if it detects an issue or potential security risk. Unfortunately, this isn’t always straightforward, esp...

IPv6 on OpenBSD

23 minute read

Configuring IPv6 on my OpenBSD home router was a much more difficult task than I’d expected. While this was mostly due to the steep learning curve of ...

PF Badhost

20 minute read

Blocking connections to nefarious IP addresses in your firewall is usually a good idea. On OpenBSD, the pf-badhost script updates PF to block traffic to and...

Unbound Adblock

13 minute read

Ever want to get rid of all those annoying internet ads? Me too. I’d been planning on using something like Pi-hole, but recently stumbled upon unbound...

DNSSEC With Unbound

6 minute read

Ever want to enable DNSSEC on your Unbound OpenBSD 6.6 server? Me too! Using this article as a guide, I document the process.

PPPoE on OpenBSD

7 minute read

Some ISP’s establish connections with their customers' networks through PPPoE. I recently setup an OpenBSD 6.6 router which required PPPoE. This is my...

Back to Top ↑

Command-Line

Fresh fish on CentOS 7

10 minute read

Are you desperate for the freshest fish? Well, you’ve come to the right place.

Git Syntax Highlighting

5 minute read

If you like to use git from the command-line and enjoy syntax highlighting, you might be interested in delta, which adds this functionality and more to git.

Pagers and Syntax Highlighting

6 minute read

bat is a helpful alternative to cat when you want peruse files on the command-line with the improved readability that syntax highlighting has to offer. The ...

Solarized Vim

4 minute read

I enjoy the Solarized color scheme, so I figured out how to set it up in Vim. The Solarized color scheme provides a plugin for Vim, which makes this pretty ...

Switch to fish

27 minute read

I’ve finally made the switch from ZSH to the fish shell. Unlike ZSH, I don’t need to install and manage a whole host of plugins. Everything I wa...

Change your Shell

3 minute read

Sometimes, you just want to switch to a better shell for your terminal - like fish.

Configure ZSH

7 minute read

I’ve been using ZSH for years now as my shell. In that time, I’ve learned a few niceties to make the experience better. Namely, I’ve found...

Back to Top ↑

Admin

Unattended Upgrades

17 minute read

Suffering from obsessive updating syndrome? Are you making frequent trips to the App Center or terminal to apply updates? Do update notifications haunt you ...

Automate Flatpak Updates With systemd

6 minute read

elementary OS 5.1 doesn’t automatically update Flatpak applications. Given the arbitrary appearance of updates, it’s a bit bothersome to be nagg...

Power Management on Linux With TLP

3 minute read

TLP is a powerful power management utility for Linux. It helps conserve battery life on mobile Linux devices by taking advantage of various kernel features....

Password-Less Sudo

3 minute read

Typing a password to login is repetitive enough, isn’t it? Entering the password for Sudo on the command-line can be downright irritating. If you don&...

Update U-Boot on the PinePhone

6 minute read

As I big fan of GNOME, I really wanted a similar experience on the PinePhone. That’s why I opted for running Manjaro ARM's alpha for the PinePhone, wh...

Update U-Boot on the Pinebook Pro

7 minute read

The other day, Elementary announced elementaryOS 6 preview builds for the Pinebook Pro. I went ahead and flashed an SD card with a build image to try it out...

Back to Top ↑

Development

GNOME Keyring in KDE Plasma

9 minute read

I love GNOME, but on my Pinebook Pro, I use the extremely well-supported Manjaro Pinebook Pro KDE Plasma edition. One of the biggest gripes I have with KDE ...

Snapping on the Pinebook Pro

8 minute read

Snaps are an incredible new packaging format for Linux from Canonical.[1] They offer application confinement and increased portability while also simplifyin...

Git and GPG

17 minute read

GPG keys can be used to cryptographically sign your work when using Git for version control. This ties your identity to your work, whether that’s a co...

Manage Python Dependencies

65 minute read

Making Python dependency management reproducible is complicated. Bringing Python dependency management to mere mortals who can’t remember where they p...

Build GCC From Source on CentOS 7

15 minute read

CentOS has a pretty old compiler. While the Software Collections repository contains newer versions, it still has a considerable lag-time. So, why not build...

Manage Runtimes With asdf

15 minute read

asdf is a language-agnostic tool for managing multiple runtimes of a specific tool for a particular user. While it is able to manage runtime versions for a ...

Back to Top ↑

Security

Generate a GPG Key

10 minute read

GPG keys can be used to cryptographically sign Git commits, pushes, and tags. This associates your work with a particular identity. GPG is also used for enc...

Backup and Restore a GPG Key

12 minute read

Gnu Privacy Guard, also known as GnuPG and GPG, is a handy tool for managing OpenPGP keys. While don’t use PGP keys for email encryption as many peopl...

Back to Top ↑