Why extra subvolumes when installing with BTRFS?

I installed EOS with btrfs. However, I got more subvolumes than I wanted. I normally only want subvolumes @ and @home because I manage my snapshots manually to keep it simple and avoid the failures that snapper and timeshift have caused me.

I noticed that the installation created these subvolumes:
@
@home
@cache
@log
var/lib/portables
var/lib/machines

Can anyone tell me why these are created and if it’s possible to only have the 2 subvolumes I want, @ and @home?

2 Likes

They aren’t really “extra”. Every distro uses a different subvolume layout.

@cache is created because there is no reason to take snapshots of your cache. It is totally disposable data so creating that subvolume removes it from the snapshots of @.

@log is created for the opposite reason. By keeping your logs outside of @, if something goes wrong and you need to restore a snapshot of @, your logs won’t be overwritten so you can still access them and see what went wrong.

var/lib/portables and var/lib/machines aren’t created by the distro, they are created by systemd. It should be safe to just ignore those.

That being said, if you want only @ and @home you can remove @cache and @log Alternatively, if you would prefer to re-install, the subvols that the installer creates are in /etc/calamares/modules/mount.conf and you can edit that file before running the installer.

7 Likes

Thanks you for your explanation. If not taking snapshots of @cache and @log doesn’t cause me problems then I can just leave them. My routine is to use the btrfs command to take read-only snapshots of @ and @home daily or before a major install/update. I also periodically use btrfs send/receive to backup my subvolumes externally to a btrfs formatted external drive. Recovering from a failed SSD or just a screw-up is more or less the reverse of this. If I have to reformat the SSD, I just do a basic install, move my 2 snapshots in place of the @ and @home created by the install, and edit the UUIDs to match the ones from the new install.

So it sounds like not caring about @cache and @log in this case will not affect what I want to do.

1 Like

Yes, exactly.