Disable Baloo (for now!)

Since there is a bug where on Btrfs Baloo reindexes everything after every reboot, I disabled Baloo for now. Counter the popular outcry, I find Baloo mostly useful and will re-enable it as soon as I get rid of this bug.

Luckily there is a patch already in the bug report, and apparently some distros are already applying it.

If no-one beats me to it, I will try to create a patched version of Baloo in AUR. Since it was recently merged and will be part KDE Frameworks 6 release, I may just wait for Plasma 6.

Update firmware

It is usually a good idea to update your firmware.

I followed Arch Wiki: Fwupd. Fwupd was already installed and running on EndeavourOS.

Where is Vulkan?

Seeing how great on Ubuntu GNOME ran on Wayland, I installed plasma-wayland-session.

At a first glance, KDE Plasma seems to a bit better on Wayland, but does not feel as as crisp and smooth as GNOME did. I have to admit, that was a bit of a disappointment. On the other hand, nothing seems broken, so I plan to continue using it.

I also installed the Vulkan drivers for my graphic card, since for some reason it was not installed by default. I chose vulkan-radeon (a.k.a. RadV), because I read on the Wiki to initially prefer Mesa’s driver over GPUOpen’s / official AMD amdvlk, unless something breaks. And my experience from way back when, was also that Mesa’s Radeon drivers were usually more stable than the official ones.

Btrfs subvolumes & snapshots

In my last post I mentioned that EndeavourOS set up some sane Btrfs subvolume by defaults.

It also assigned the following mount options in /etc/fstab to all of the subvolumes: defaults,noatime,compress=zstd1

As such it is time to set up the snapshots.

To automate the snapshots as well as make Btrfs and its snapshots easier to manage, I installed snapper and btrfs-assistant.

Snapper is a tool to simplify creating and managing Btrfs (and LVM) snapshots2.

Btrfs-assistant provides an easier to navigate GUI for managing several Btrfs-related tasks, including snapshots and Snapper/Timeshift configuration.

The trick was to create a Snapper configuration that was called root (that seems important!) for /, to kick things off – I did this through Btrfs-assistant, but using Snapper in CLI should not be much harder.

Here is also where the extra subvolumes for /home, /var/cache and /var/log come in handy – because even though in the file hierarchy within /, since they have their own subvolumes, they are omitted from the snapshot.

Next, I installed snap-pac which automatically creates snapshots before and after Pacman – Arch’s package manager – is used. No further set-up was necessary.

After a quick yay xonotic to confirm the snap-pac hooks work, I went back to Btrfs-assistant to set up the snapshot retention to something that makes sense to me.

In the end also installed grub-btrfs. This then automatically puts root snapshots into GRUB boot options, so I can just select the snapshot I want to boot into, without additional hassle. Again, apart from installing it, I did not need to do anything with it.

I tried booting it, and it seems to work fine. There are inevitably some inconsistencies on system where part, but not the whole drive, was rolled-back – like software that is not installed on this snapshot (but a later one), will still show in the application menu. For fixing a system, this should be perfectly fine though.

Limit UpdateDB

To quote from the Arch Wiki: Snapper:

By default, updatedb (see mlocate) will also index the .snapshots directory created by snapper, which can cause serious slowdown and excessive memory usage if you have many snapshots. You can prevent updatedb from indexing over it by editing:


PRUNENAMES = ".snapshots"

So that is what I did.

Push snapshots as remote backups

I tried setting up snapshots as backups several years ago, but that was a bit earlier in Btrfs’ history and the tooling was not as plentiful and easy to use. Needless to say, that, paired with my lack of skill, resulted in a half-finished set-up which I am afraid to poke too much.

Still, I think that is a great idea. The reason I will not be making use of it is because I am very happy with Borg and do not want to mess with a working backup system.

The basic idea is that you create snapshots and then use btrfs send to send the snapshot to stdout or a file. And on the receiving end use btrfs receive (usually through a pipe) to get said snapshot. On both ends you need to run Btrfs, of course. You can do this either locally to a different drive or remotely to a different computer on NAS.

So if you like this idea, reading the this wiki article is a good starting point.

Basic necessities

I admit, I got a bit carried away and started installing a few things.

Again, I was positively surprised by the helpfulness of the EndeavourOS … this time its Welcome pop-up. It may not look pretty, but I found it very useful.

Obviously one of the first things I did was pull my dotfiles and install all the dependencies there, starting with the [Fish shell].

In addition to those (and some standard graphical applications), I installed:

  • htop & btop – better tops
  • bat – colourful and powerful cat replacement (and PAGER)
  • trash-clitrash instead of rm, you can thank me later
  • as-tree – super useful, when you need a better overview of a huge dump of results that are files
  • Helix – currently my primary text editor in the console, similar to Vim but breaks compatibility with it whenever it makes sense to make it more usable (similar to how Fish is compared to POSIX shell)
  • ripgrep – better grep


Honestly, at this stage, with the base system working, there is either nothing or way too much to do, so I need to step back and create a plan.

I will blog as I go, but do not expect the posts to be as just frequent as they were now. I will obviosly skip the less important stuff like installing packages that are standard (or just uninteresting) stuff.

I think I will either try tackling fixing Baloo next or setting up backups, but let us see …

hook out → slowly, but surely getting there …

  1. The gurus on #btrfs IRC channel me that defaults is not really needed and is intended as a placeholder if no other options are set, so I will remove it. They also said compression is fine even within LUKS + RAID-1 and if anything the default ZStd option is preferred. I have no reason to doubt them. 

  2. Another such tool is Timeshift, which is easier to set-up but also less flexible. 

Related Posts


New laptop install 2023