Best Practice for fedora-root file system layout?

Do we have a suggestion for how best to lay out filesystems? The Fedora installer seems to create unusually small /fedora-root partitions. I have had this bit me on Fedora Server (Atomic and Modular), not yet on SilverBlue.

For example, I have a server with 192G RAM, but only 500G of disk. I create a Centos7 libvirt VM, run the installcentos script and voila! I’m out of space on fedora-root.

Filesystem                      Size  Used Avail Use% Mounted on
devtmpfs                         95G     0   95G   0% /dev
tmpfs                            95G     0   95G   0% /dev/shm
tmpfs                            95G  9.5M   95G   1% /run
tmpfs                            95G     0   95G   0% /sys/fs/cgroup
/dev/mapper/fedora_bessie-root   15G   15G  164K 100% /
tmpfs                            95G  4.0K   95G   1% /tmp
/dev/sda1                       976M  170M  740M  19% /boot
tmpfs                            19G     0   19G   0% /run/user/1000

Is there a collective opinion on this?

IIRC @mclasen has mentioned this somewhere else before (IRC?) in reference to Silverblue, largely because Flatpaks are installed on the rootfs by default, which uses up quite a bit of space. That isn’t even factoring in any containers that may have been created yet.

I remember back in the early days of Project Atomic you brought up an image in a virtual machine and got something like a 6 GB root filesystem. Then you tacked on another virtual disk of, say, 30 GB, to store the images.

When I install a workstation I usually give / a 50 - 75 GB space, although that includes /usr. On my current workstation / is a 120 gb SSD and /var and /home are on a 1 TB spinning disk. So my PostgreSQL database and all my images are on the big spinning disk.

Silverblue User Guide does not provide any tip about partitioning. Automatic and manual partitioning sections are currently empty.

I also happen to have two disks on my desktop: a 220GB SSD disk and a 1TB spinning disk. I guess I’ll follow @znmeb setup.

You can go into manual partitioning in the installer and then have it auto-create the base partitions. Then you can change the locations of the partitions while preserving the layout.

@fedelibre, I also found this confusing. To elaborate on @znmeb and @refi64’s comments, I found that I could use the shell commands
sudo lvextend -L +36G --resizefs /dev/mapper/fedora-root
to create a partition from unused space and then make fedora-root bigger
use the installer’s manual partition tool to create a big partition and mount it on /var since most of the user-installed data gets symlinked to something there.
I’m sure there are several permutations which is probably why no one has written up some opinionated instructions for N00Bs like us.

Automatic partitioning with two disks sucks, as it assigns the whole 220G SSD disk to the boot partition! Then sets the LVM partitions in the other disk. Too bad that it doesn’t tell you what is going to do.

So I restarted the installation from scratch.
I spent one hour today trying to understand Anaconda partitioning (it’s the second time I use it and the first one was about 4 years ago). Eventually I tried the blivet-gui, which is way better than the other one; it took me just a few minutes to set the partitions.

Installation is going on. Tomorrow my desktop will be on Silverblue…

1 Like

Hmm, something here doesn’t sound right… Like I mentioned, you can go to manual partitioning but have it auto create them from there and then customize them yourself. That 220gb boot sounds like a bug somewhere though… At minimum, it’s not something I’ve ever seen before.

It sounds like it is just trying to grab all of the physical device in this case the entire 220gb SSD. I have 2 240GB SSD’s and a1TB spinning disc and if I let it go automatically setting partition size etc. the installer would pick sda1, the first SSD to use as boot. Now since I use LVM and all disks are encrypted, I don’t do that.

@jakfrost I could not see an option in the installer to show what automatic partitioning is going to do (I mean, before proceeding with the installation). Did I miss it? Or it’s not there?

@fedelibre I’ll just spin up a VM install and go through it to make sure, then post something here for you.
Okay so hopefully the discussion allows this but here are some graphics for how I did/would do it.

  1. Pick Custom
  2. Click on Done
    Opens the following …
  3. select automatic partitioning
    This should then appear…
  4. Modify your partitions to suit your needs, for instance you could specify a /home mount point
    I hope this is what you were looking for.

@jakfrost Thanks for taking the time to test this.

Indeed the size of each partition is displayed.
I have the suspect I’ve written some stupid things in this post. I was busy and in a hurry, so I probably missed or forgot what was going on.

I’d be curious to launch a new installation (on bare metal) and abort it before proceeding just to see again what would happen with the boot partition. But I’m afraid I won’t have time to do it, at least this month.

1 Like

You are welcome, I was at my PC when I read your discussion, so I ran it to see what was happening for myself.

@jakfrost @fedelibre In my case it helped to Modify the fedora volume group (on the right side of this screenie:

And on the following panel, increase the size of the volume group:

Unsure if this will help folks but like Workstation, the setup is no different in Silverblue.

Here’s my layout. Note because I use a SSD and have sufficent RAM I do not use swap. If you are to use swap, create it WITHIN your LVM

  • /boot/efi (100-200MB)
  • /boot (512-1024 MiB)
  • LVM
    • / (20 GiB minimum)
    • /var (optional, I would suggest anywhere from 25 - 100 GIB depending on your needs)
    • swap (optional, should roughly equal the amount of RAM but can vary depending on your needs and wants)
    • /home (whatever you want, should be the biggest drive)

Encryption will be up to you to decide. At the very least /home should be encrypted if your machine can handle it, next being /. /boot does not require it and depending on your setup, /boot/efi should never be touched.

1 Like

I have a UEFI system with two 250GB SSD drives and two 1TB HDD drives. What partitioning strategy would you suggest for a new install with Fedora 32. Full disk encryption is not essential for my desktop machine. Thanks.

Hello @mmorrell2016,
Since I just did a fresh F33SB rawhide install, I went with BTRFS as the filesystem, and my two 240GB SSD’s are setup as a RAID1 array with a subvolume mounted as /. The 1TB spinning disk has the /boot partition which is ext4, the BootBios partition since I am on BIOS, a 64GB swap which I’m considering doing away with, and the rest as a BTRFS with a subvolume mounted as /var. If I had two 1TB spinning disks, they would likely be a RAID1 array too. You can set up the BTRFS filesystem with the default or advanced custom blivet gui, but not the custom gui. If you use BTRFS on F32SB there is a missing kernel parameter that will likely prevent booting rootflags=subvol=root I think.

1 Like