Why Does Anaconda Installer Not Follow Fedora Recommendations for Partitioning?

According to KDE Partition Manager, my Fedora 35 partitions (produced with the Auto option in the Anaconda installation procedure) are:

/boot/efi fat32 600 MiB
/boot ext4 1.00 GiB
/ btrfs 1.86 TiB (rest of disk)
swap linuxswap 7.97 GiB

Yet, according to:

https://docs.fedoraproject.org/en-US/fedora/latest/install-guide/install/Installing_Using_Anaconda/#sect-installation-gui-manual-partitioning-recommended

“Recommended Partitioning Scheme
In most cases, at least the following mount points should always be created:”

/boot/efi - EFI System Partition (200 MB)
/boot - 1 GB
/ (root) - 25 GB (recommended up to 75 GB)
/home - at least 10 GB
swap - based on your system parameters

The /home partition has the following note in the document:

“To store user data separately from system data, create a dedicated mount point for the /home directory. This partition should be sized based on the amount of data that will be stored locally, number of users, and so on. This will allow you to upgrade or reinstall Fedora without erasing user data files. During the installation, a separate /home partition will be created if there are 50 GB or more free space for your Fedora installation.”

So, why does the Fedora installation software’s automatic partitioning scheme not follow the official Fedora recommendation? I don’t really care about the EFI System Partition being a bit bigger than the measly 200 MB it should be. But, why did it not create a separate /home partition instead of folding the / and /home mounting points into one / partition? The documentation even SAYS it will do so.

The installer uses btrfs as default. With btrfs a subvolume such as home is for all intents and purposes a separate partition.

Unlike other file systems that have a fixed size, a btrfs file system uses the space needed for each subvolume and its maximum size is only limited by the physical file system size.

For example, in your case it created a btrfs file system of 1.8 TB
The / subvolume uses <20 GB of that with a new install but can grow as needed.
The /home subvolume uses <10 GB to start but can grow as needed.
To see what is actually used the ‘df’ and ‘du’ commands are very useful.

Thus for all intents and purposes either of those subvolumes is able to grow to whatever size is needed as if it were an unrestricted partition size, only limited by the maximum physical size of that btrfs file system (which could also span more than one disk if you choose)

With LVM you still have limited size LVs inside, so as the data size grows admin action is required to grow the LV to have more space available for data. Btrfs does not require the admin action for subvolume size as long as space remains on the file system volume.

I personally still use LVM/ext4 for my main system but I can see the flexibility of btrfs. I do use btrfs on my VMs.

2 Likes

Since Fedora 33 the default file system is btrfs.

I think that the page aims to be as general as possible since there are many filesystems. And each one is unique.

Newly created file system comes with a default subvolume, called top level volume, inside this volume you can create subvolumes. In the case of fedora the root subvolume and the home subvolume are created (You can see them by cat /etc/fstab). A BTRFS subvolume is a part of filesystem with its own independent file/directory hierarchy and inode number namespace. Subvolumes can share file extent.

You can learn more about btrfs here:

Why does Fedora use a single partition disk layout? Well, here it is explained

The switch to Btrfs will use a single-partition disk layout, and Btrfs’ built-in volume management. The previous default layout placed constraints on disk usage that can be a difficult adjustment for novice users. Btrfs solves this problem by avoiding it.

Btrfs subvolumes sound interesting. What happens to the /home (as a subvolume) if I reinstall Fedora and tell it to format root (/) – which I’d have to do?