Why do I have btrfs-progs installed?

Greetings lovely community,

I opened up Pamac today just to quickly see what updates there were available and I noticed I had a package called btrfs-progs installed. Now they only reason I’m really curious about it is because the file system that I installed for EndeavourOS is ext4. I just have one SSD in my laptop, I don’t have anything special for my setup btw. The only thing I can think of is if this package is installed in EndeavourOS by default or perhaps it was installed along when I installed Timeshift (it uses rsync or btrfs to make snapshots of your system for backups). Anyone else have this package explicitly installed to or am I the only one? I’m not alarmed that I have this package installed, I’m just simply curious as to why I have it installed. Also, I’m not sure if I should just leave it alone or if it needs to be removed or something. Appreciate any feedback as always!

Screenshot from 2021-08-08 11-10-52

To know exactly why, you can run:

pacman -Qi btrfs-progs

In there see Required By : section :upside_down_face:

2 Likes
Name            : btrfs-progs
Version         : 5.13-1
Description     : Btrfs filesystem utilities
Architecture    : x86_64
URL             : https://btrfs.wiki.kernel.org
Licenses        : GPL2
Groups          : None
Provides        : btrfs-progs-unstable
Depends On      : glibc  util-linux-libs  lzo  zlib  zstd  libgcrypt
Optional Deps   : python: libbtrfsutil python bindings [installed]
                  e2fsprogs: btrfs-convert [installed]
                  reiserfsprogs: btrfs-convert [installed]
Required By     : libblockdev
Optional For    : timeshift
Conflicts With  : btrfs-progs-unstable
Replaces        : btrfs-progs-unstable
Installed Size  : 5.12 MiB
Packager        : Sébastien Luttringer <seblu@seblu.net>
Build Date      : Tue 13 Jul 2021 01:50:34 PM EDT
Install Date    : Sun 25 Jul 2021 04:44:56 PM EDT
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : Signature

I did pactree -r btrfs-progs and got

btrfs-progs
└─libblockdev
  └─udisks2
    ├─gvfs
     ...
     ...
2 Likes

Generally speaking, I think it is worthwhile having the tools installed for filesystem support. They take up very little space and allow you to access/create those filesystems if you ever need it.

In this case though, it is required by udisks2

5 Likes

most common filesystem tools and libs are installed per default on EndeavourOS.
As it is a Desktop installer we decide to have it this way.


edit: And what @dalto says :wink:

5 Likes

@daab @dalto @joekamprad thanks for the explanations, that makes sense to me now as to why it’s there and I will just let it sit happily on my system from now on without a single worry!

Like I mentioned before I have ext4 as my file system, but I was thinking perhaps when the newest .iso is released and makes it easier/available to install btrfs as a file system in the installer, I think I may give that a go since I don’t really have any special requirements holding me back from the btrfs file system. Anyways, before I start rambling any more, just wanted to say thanks again for all the quick responses, y’all are super fast in this forum!! :upside_down_face:

1 Like

Yes next ISO will have better support for BTRFS.

3 Likes

Nice… anything you can comment on?

Will it be something as simple as just selecting BTRFS from a drop down menu?

:shushing_face:

2 Likes

Apropos btrfs-progs and the convert tool provided by this package, namely btfs-convert, I wondered if it preserves the data from the filesystem to be converted. The man page says:

NAME
btrfs-convert - convert from ext2/3/4 or reiserfs filesystem to btrfs in-place

SYNOPSIS
btrfs-convert [options]

DESCRIPTION
btrfs-convert is used to convert existing source filesystem image to a btrfs filesystem in-place. The original filesystem image is accessible in subvolume named like ext2_saved as file image.

   Supported filesystems:

   •   ext2, ext3, ext4 — original feature, always built in

   •   reiserfs — since version 4.13, optionally built, requires libreiserfscore 3.6.27

Does:

The original filesystem image is accessible in subvolume named like ext2_saved as file image.

mean that the data from the converted filesystem will be preserved in a subvolume after the conversion?

An image of the converted filesystem is saved in addition to the fact that btrfs converts the filesystem and all data in-place.

I use btrfs-convert when I want a btrfs filesystem but the installer for that distro doesn’t support btrfs.

2 Likes

Do I understand correctly that this means that you could mount the newly converted filesystem or rather the subvolume containing the image and access your data?

The data is converted in-place so all your data is simply converted from ext4 to btrfs. Am I misunderstanding your question?

I have never even looked at it, I just delete it. I can test if you want. I plenty of VMs.

2 Likes

Since the man page says

The original filesystem image is accessible in subvolume named like ext2_saved as file image.

so I thought that the conversion process create at the same time a subvolume like @ext4_saved (or something).

If that is not too much of a trouble I would truly appreciate it.

It creates a subvolume named ext2_saved. Inside that subvolume, is a single file named image.

The image contains the original ext4 filesystem(with the data) and can be mounted.

That being said, except as backup in case of failure, you shouldn’t need to mount that filesystem. All of your data will be in the new btrfs filesystem.

SIDE NOTE: Naming the subvolumes starting with @ isn’t a btrfs convention. It is a convention that came out of Ubuntu and has since been adopted by some other distros including opensuse.

2 Likes

Thank you so much @dalto for testing!

This is pretty awesome! Now I understand how you can do this:

Good info, I didn’t know that. I have just “blindly” adopted the naming convention.

Great! Thanks again!

edit: I will be trying this to get some hand-on experience
And thanks @Scotty_Trees for being tolerant of me hijacking your thread a bit.

2 Likes

@Scotty_Trees sorry for the hijack too.

@dalto I cannot understand one thing tho, you just run btrfs-convert on the partition you want to convert from the system or you have to do it from a live environment? Because I’m finding contrasting information on the web.

Me too, I am a bit confounded. While ArchWiki says to boot from a live medium the man page and BTRFS wiki clearly says that the conversion is done in place:

https://wiki.archlinux.org/title/Btrfs#Ext3/4_to_Btrfs_conversion

https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3/4_and_ReiserFS