Customizing btrfs subvolumes during installation via calamares


Is it possible to customize the btrfs subvolumes created during installation via calamares? I just did a fresh installation and noticed that the default calamares installation on btrfs file system created @, @home, @cache and @log subvolumes and mounted them on /, /home, /var/cache and /var/log respectively. If I would like to additionally create an @etc subvolume and mount it at /etc during installation, is there a way to customize calamares by editing a config file or script?


Isn’t it possible with the manual partitioning before installation (or from Calamares itself) in the live USB environment?

1 Like

That is exactly my goal. /usr/share/calamares/modules/partition.conf in the live USB environment contains some settings about partitioning, but I could not find any for subvolume definitions/settings there for btrfs. Calamares GUI doesn’t prompt me for these either after btrfs is chosen as the file system type.

But if you do MANUAL PARTITIONING in Calamares what happens? You should be able to do whatever you want at this point.

1 Like

Thank you for troubleshooting this with me! I may be missing something but manual partitioning does not allow you to define subvolumes within the btrfs file system as far as I can tell, just partition(s) that you can define what kind of file system you want them to be formatted with. My goal is to have one btrfs partition (can do) with 5 subvolumes in it, namely @, @home, @cache, @log and @etc. The first four is created automatically by calamares. However the user is not prompted for those or anything else.

Indeed, you cannot define your subvolumes with Calamares.
It could be a nice feature to be added in the future.

Nevertheless, creating additional subvolumes is not so difficult:

  1. Create the subvolume in CLI
  2. Mount it in fstab


1 Like

Thank you @ChrisCanyon. You probably mean creating subvolumes after the installation is complete, is that right? If so, those subvolumes do not end up being top level subvolumes, and in my example, @etc will be nested under the remaining four. Then, there is the task of migrating the directory structure in the original /etc directory to the new @etc subvolume, which worries me a bit. I think it would be a little more intuitive to create the @etc at the time of installation, so that it becomes a top level subvolume mounted at the right place at the right time. There is gotta be a setting somewhere the subvolumes to be created are listed alongside their mount points among the calamares config files, which can be manually modified to accomplish this, I think :blush: .