List of useful BTRFS tools
from boredsquirrel@slrpnk.net to linux@lemmy.ml on 05 Jun 11:40
https://slrpnk.net/post/10238055

Hi, I want to do an “awesome things” list with BTRFS tools

Help me gather them?

Update: see here

General

BTRFS CLI Interface

btrfs-progs

official userpace utilities

BTRFS Assistant

Tool for doing many BTRFS actions graphically

It requires snapper and offers a GUI for it.

butter-manager

Tool for managing snapshots, balancing filesystems and upgrading the system safetly.

Backups & Snapshots

btrbk

Backup utility using BTRFS

Snapper

General system snapshot utility with BTRFS support, used in OpenSUSE Tumbleweed by default. There are also plugins for Fedoras dnf and for Arch pacman.

Timeshift

System restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots. Supports scheduled snapshots, multiple backup levels, and exclude filters. Snapshots can be restored while system is running or from Live CD/USB.

Currently maintained by LinuxMint, even though they dont use BTRFS by default, it works better there.

libtuikit / transactional-update

Used in OpenSUSE microOS and the Desktop variants.

provides an application and library to update a Linux operating system in a transactional way, i.e. the update will be performed in the background while the system continues running as it is. Only if the update was the successful as a whole the system will boot into the new snapshot.

Available as a library for other distros.

Yet Another BTRFS Snapshotter

Alternatives don’t supports customized of snapshot location, (e.g. Arch recommended layout). Adhering to such layouts, and rolling back using them, sometime involve non-obvious workarounds. The motivation for yabsnap was to create a simpler, hackable and customizable snapshot system.

btrfs-autosnap

There are 2 separate projects with that name

grub-btrfs

Set BTRFS snapshots as boot options

[btrfs-sxbackup])github.com/masc3d/btrfs-sxbackup)

Incremental btrfs snapshot backups with push/pull support via SSH

Small CLI tools

btrfsd - tiny Btrfs maintenance daemon

Btrfsd is a lightweight daemon that takes care of all Btrfs filesystems on a Linux system.

It can:

  • Check for detected errors and broadcast a warning if any were found, or optionally send an email
  • Perform scrub periodically if the system is not on battery
  • Optionally schedule balancing operations as well

dupreremove

Tools for deduplicating file systems

compsize

Takes a list of files on a btrfs filesystem and measures used compression types and effective compression ratio

Used in flatpak-dedup-checker

btdu

sampling disk usage profiler for btrfs For multiple reasons, classic disk usage analyzers such as ncdu cannot provide an accurate depiction of actual disk usage. (btrfs compression in particular is challenging to classic analyzers, and special tools must be used to query compressed usage.)

btrfs-list

Helps listing directories

btrfs-fuse

A read-only btrfs implementation using FUSE (Filesystem in Userspace). Although btrfs is already in mainline Linux kernel, there are still use-cases for such read-only btrfs implementation:

btrfs debugger

The btrfs debugger (pronounced “buttered”).

btrd is a REPL debugger that helps inspect mounted btrfs filesystems. btrd is particularly useful in exploring on-disk structures and has full knowledge of all on-disk types.

ntfs2btrfs

a tool which does in-place conversion of Microsoft’s NTFS filesystem to the open-source filesystem Btrfs, much as btrfs-convert does for ext2. The original image is saved as a reflink copy at image/ntfs.img, and if you want to keep the conversion you can delete this to free up space.

Consists of a Windows and a Linux executable. Does not work on the primary drive.

WinBTRFS

filesystem driver for Windows

Partition managers with support

Data recovery

When having deleted or corrupted data on a BTRFS partition, these tools can help:

Testdisk?

Scalpel?

R-Linux

Freeware, not FOSS? Not related to R and “R-Studio” is also not related to RStudio

BTRFS bindings

These allow you to do BTRFS actions in many programming languages

#linux

threaded - newest

DuskyRo@lemmy.world on 05 Jun 11:54 next collapse

There is R-Linux for recovering deleted files, altough it doesn’t support btrfs it can recover data from btrfs drives(if anyone knows something better please let me know as I have a drive that completely wiped itself).

boredsquirrel@slrpnk.net on 05 Jun 14:12 collapse

Is that R-Linux and R-Studio something different from R the language and RStudio the GUI for it? Damn this is confusing.

DuskyRo@lemmy.world on 05 Jun 15:03 collapse

I have no idea. R-Linux is what the package on the AUR is called and it doesn’t require a license unlike R-Studio from the site.

[deleted] on 05 Jun 12:19 next collapse

.

boredsquirrel@slrpnk.net on 05 Jun 12:40 collapse

Does timeshift also use BTRFS features, or just the normal method?

thingsiplay@beehaw.org on 05 Jun 13:07 next collapse

Timeshifts main reason to use is BTRFS functionality. It’s a fantastic tool, but I only used it previously on EXT4, in which case it defaults to slow rsync method. I really like the software, but on my new install decided against using it (I’m on EXT4 yet again). github.com/linuxmint/timeshift And while I post this reply, just noticed that Linux Mint is maintaining it now. The old repo is in archive mode: github.com/teejee2008/timeshift

boredsquirrel@slrpnk.net on 05 Jun 14:08 next collapse

Really interesting project.

Yes I also thought it would be focused on non-BTRFS, especially as Mint doesnt use BTRFS either, right?

thingsiplay@beehaw.org on 05 Jun 14:38 collapse

You mean the default filesystem? I actually never used Mint and don’t think it’s the default, but most likely an option at install time. Maybe they plan on switching as the default in the future.

sfera@beehaw.org on 05 Jun 19:07 collapse

May I ask why you switched back to ext4?

thingsiplay@beehaw.org on 05 Jun 19:54 collapse

I never used BTRFS at all. At the moment I do not feel comfortable using BTRFS yet and wait until its proven over long time and ironed out even the weirdest edge cases.

Edit: Don’t misunderstand me. I know its relative stable now, but reading here and there about the problems makes me very uncomfortable to switch from the battle tested EXT4. I really like its features and evaluated last year to use BTRFS as my system drive. Ultimately decided against it for now. I plan on using it, and clicked this post for this reason, to learn more about it.

Chewy7324@discuss.tchncs.de on 05 Jun 20:51 collapse

Maintaining btrfs is more work than maintaining ext4, which basically doesn’t need any. I.e. running btrfs scrub is important to keep performance up. Monthly scrubs are good because they don’t take as long if done regularly.

Btrfs balance can free up some space, but otherwise isn’t important on SSDs.

boredsquirrel@slrpnk.net on 06 Jun 13:14 collapse

I think BTRFS is especially problematic on Fedora Atomic desktops.

Afaik the OSTree snapshots use BTRFS deduplication, also the zstd compression helps reduce storage usage and increase SSD use.

But as the entire system partitions are read only, you cant balance, scrub etc them.

This is a big issue I think, I will open a Fedora Discussion post about this.

discussion.fedoraproject.org/t/119216

Chewy7324@discuss.tchncs.de on 06 Jun 16:57 collapse

Afaik the OSTree snapshots use BTRFS deduplication […]

Note: OSTree will transparently take advantage of some BTRFS features if deployed on it. [1]

Interesting, I didn’t know OSTree takes advantage of BTRFS features.

On my current system I use ext4 instead of btrfs which I regret specifically because of the missing transparent compression and reflink copy.

[1] ostreedev.github.io/ostree/introduction/

boredsquirrel@slrpnk.net on 06 Jun 20:08 collapse

I also tried an install with LVM and F2FS instead of the default EXT4. It works, and F2FS is faster in theory, but I only found 2 bigger benchmarks. The older one said BTRFS is waaay slower, a newer one with exact reproducability details said it is equal.

And yes I suppose that rpm-ostree utilizes the BTRFS CoW, deduplication and compression which all help reducing disk usage.

But I dont know that.

[deleted] on 05 Jun 13:22 collapse

.

Archaeopteryx@kbin.run on 05 Jun 12:26 next collapse

SUSE & openSUSE also have a great documentation about the snapper snapshot tool which is also available in many distributions:

Snapper Documentation

boredsquirrel@slrpnk.net on 05 Jun 13:41 collapse

Arch wiki already in there XD

Archaeopteryx@kbin.run on 05 Jun 19:50 collapse

True :D but my link goes directly to the snapper section of the wiki^^.

boredsquirrel@slrpnk.net on 05 Jun 21:54 collapse

Okay, you won we have the same link, stop confusing me XD

metiulekm@sh.itjust.works on 05 Jun 13:29 next collapse

I like btdu which is essentially ncdu, but works in a way that is useful even if advanced btrfs features (CoW, compression etc.) are used.

boredsquirrel@slrpnk.net on 06 Jun 13:14 collapse

Added it

drwho@beehaw.org on 05 Jun 16:21 next collapse

github.com/knorrie/python-btrfs

github.com/kdave/btrfsmaintenance

boredsquirrel@slrpnk.net on 06 Jun 13:15 collapse

Okay I will add a “btrfs bindings” section 🫠

kabe@lemmy.world on 05 Jun 17:09 next collapse

Nice list.

Depending on your package manager, there are very handy snapper plugins that do automated pre/post snapshots for package installation/removal.

For Arch-based systems it’s snap-pac, and Fedora has one too (although I can’t remember the name).

boredsquirrel@slrpnk.net on 05 Jun 17:24 collapse

Thanks, added it

DaTingGoBrrr@lemmy.ml on 06 Jun 04:45 next collapse

I would like to recommend Yabsnap as an alternative to Snapper. It’s made for Arch, tested on Fedora and might work on other distros. But it needs more eyes and testers!

Edit: thank you for the list! It’s very nice to see what is available for btrfs

boredsquirrel@slrpnk.net on 06 Jun 12:43 collapse

Added it

Strit@lemmy.linuxuserspace.show on 06 Jun 07:27 next collapse

I’ve used btrfs-autosnap for a while on Arch and it’s brilliant. Whenever you install or remove something with pacman it creates a btrfs snapshot of your subvolumes and if you have grub-btrfs install too they get added to Grub menu. Very handy.

You can define which subvolumes you want snapshotted and how many snapshots of each you want to keep. Which means it also removes the oldest snapshot when a new is created if it gets over the keep amount.

boredsquirrel@slrpnk.net on 06 Jun 12:43 collapse

Added it

bloodfart@lemmy.ml on 07 Jun 05:41 collapse

I’m not saying this to start a fight, but as a person who used btrfs for a situation it was not suited for: there need to be some tools for migrating off btrfs here.

boredsquirrel@slrpnk.net on 07 Jun 10:08 collapse

Ok you know one?

bloodfart@lemmy.ml on 07 Jun 15:09 collapse

Not that I was aware of a couple of years ago. I ended up copying to a different media, reformatting and copying back and accepting the loss of the snapshots.