I’m attempting a new install. I want to use btrfs with swapfile.
Do I need to disable compression on my swap subvolume?
Is there anything else I should keep in mind for fstab if I want to, say, not keep track of my Downloads folder when snapshotting?
Here is my fstab:
LABEL=arch@btrfs / btrfs rw,relatime,discard=async,space_cache=v2,subvolid=256,subvol=>
LABEL=arch@btrfs /home btrfs rw,relatime,discard=async,space_cache=v2,subvolid=257,subvol=>
LABEL=arch@btrfs /var/cache/pacman/pkg btrfs rw,relatime,discard=async,space_cache=v2,subvolid=259>
LABEL=arch@btrfs /var/log btrfs rw,relatime,discard=async,space_cache=v2,subvolid=258,subvol=>
LABEL=arch@btrfs /.snapshots btrfs rw,relatime,discard=async,space_cache=v2,subvolid=260,subvol=>
LABEL=arch@btrfs /swap btrfs rw,relatime,discard=async,space_cache=v2,subvolid=263,subvol=>
LABEL=efi@fat32 /efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=asci>
/swap/swapfile none swap defaults 0 0
Do I need to disable compression on my swap subvolume?
https://wiki.archlinux.org/title/Btrfs#Swap_file
Is there anything else I should keep in mind for fstab if I want to, say, not keep track of my Downloads folder when snapshotting?
Just create a separate subvolume for it. Snapshots do not work recursively, so it will be left alone.
Mount options also only take effect on the first mount of the device. Since it looks like you only have 1 btrfs device - only
/
needs the options, really.Mount options also only take effect on the first mount of the device. Since it looks like you only have 1 btrfs device - only / needs the options, really.
I didn’t know this. Thanks!
Glad I could help! Just to make things a bit clearer - this is a btrfs thing. Other FSes behave differently.
Do I need to disable compression on my swap subvolume?
Short: No
Long: it doesn’t matter when mounting multiple subvolumes of the same btrfs partition the options from the first one (usually /) will apply to all. So even if you disable it, that will be ignored.
The old way of creating swap shows the chattr +C line which disables CoW. The same method should work for your Downloads folder since CoW is needed for snapshotting.
Are you sure you can use a swap file with btrfs? I did not think you could do that. Maybe I was on old software last time I tried.
Yeah it’s supported. It’s listed in the docs for btrfs and arch.
I’d highly recommend setting up a swap partition instead.
Why?
As swap is recommended just in case all RAM is maxed it’s better to have a swap partition as swap files have certain limitations when in combined use with BTRFS:
- “subvolume - cannot be snapshotted if it contains any active swapfiles”
- has a chance to fragment
- has issues with hibernation (that I’ve personally encountered multiple times)
here’s the link for more info: https://man.archlinux.org/man/btrfs.5#SWAPFILE_SUPPORT
after switching to a swap partition with BTRFS I’ve experienced no issues for a user configuration
“subvolume - cannot be snapshotted if it contains any active swapfiles”
Make a subvolume only for the swapfile.
has a chance to fragment
This is true for all files. Is it a bigger problem for swap?
has issues with hibernation (that I’ve personally encountered multiple times)
This one I can’t refute. How long ago did you have these issues?
It’s been supported for several years now