Strange Disk Layout

According to this official Fedora Doc, the default disk layout is:

Role Filesystem Mount Point
EFI System Partition FAT 32 /boot/efi
Boot Partition ext4 /boot
Root Subvolume Btrfs /
Home Subvolume Btrfs /home

That is most definitely not what I have despite never messing with gparted or selecting an “atypical” setup at any point. Any ideas what could have caused my strange setup? Fwiw, here’s what I do have:

Both those outputs are exactly the same; and are perfectly normal for a new installation of fedora.

The default installation creates the efi partition (/boot/efi) and the ext4 boot partition (/boot) then creates a btrfs volume with 2 subvolumes (root & home) that are mounted at / and /home.
If you use the mount or the lsblk -f command you will see that same indication.
Here is mine

$ lsblk -f
NAME   FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sr0                                                                            
zram0                                                                          [SWAP]
vda                                                                            
├─vda1 vfat   FAT32        9393-D982                             579.5M     3% /boot/efi
├─vda2 ext4   1.0          19297faa-c91a-4126-8e8e-5792599d4ad7  571.6M    34% /boot
└─vda3 btrfs        fedora 9251dc90-a0ef-4df1-836b-a8c0ff22056e   31.8G    15% /home
                                                                               /


$ mount
/dev/vda3 on / type btrfs (rw,relatime,seclabel,compress=zstd:1,discard=async,space_cache=v2,subvolid=257,subvol=/root)
/dev/vda3 on /home type btrfs (rw,relatime,seclabel,compress=zstd:1,discard=async,space_cache=v2,subvolid=256,subvol=/home)
/dev/vda2 on /boot type ext4 (rw,relatime,seclabel)
/dev/vda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)

I trimmed the extra fluff out of the mount results so it is easy to see the actual file systems that are mounted. (vda1, vda2, and vda3) vda3 is the btrfs file system equivalent to what you show as /dev/nvme0n1p3.

Note that lsblk shows the mount points at the far right end and it shows vda3 mounted both on / and /home. The mount command shows the same and indicates which subvolume is on that mount point as well.

Gparted shows this.

Thanks for that info and the comparison… I don’t have a /boot or /boot/efi listed anywhere, though…

lsblk -f:

NAME        FSTYPE FSVER LABEL                 UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
zram0                                                                                              [SWAP]
nvme0n1                                                                                            
├─nvme0n1p1 vfat   FAT32                       B4F3-9FD6                                           
├─nvme0n1p2 ext4   1.0                         a9d8c33f-4e92-4e76-84d5-48c397ffc8ca                
└─nvme0n1p3 btrfs        fedora_localhost-live 47a9aec5-8209-4218-83f3-e10ae9489967    874G     8% /home
                                                                                                   /

mount:

/dev/nvme0n1p3 on / type btrfs (rw,relatime,seclabel,compress=zstd:1,ssd,discard=async,space_cache,subvolid=257,subvol=/root)
/dev/nvme0n1p3 on /home type btrfs (rw,relatime,seclabel,compress=zstd:1,ssd,discard=async,space_cache,subvolid=256,subvol=/home)

What do you see with cat /etc/fstab?

According to your gparted display and the lsblk display nvme0n1p1 should be mounted at /boot/efi and nvme0n1p2 should be mounted at /boot.

It is strange that they are not mounted that way.
Try also mount | grep boot. That should show both those mount points

cat /etc/fstab:

#
# /etc/fstab
# Created by anaconda on Tue Sep  7 14:14:01 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#UUID=47a9aec5-8209-4218-83f3-e10ae9489967 /boot vfat defaults 0 0
UUID=47a9aec5-8209-4218-83f3-e10ae9489967 /                       btrfs   subvol=root,compress=zstd:1 0 0
UUID=47a9aec5-8209-4218-83f3-e10ae9489967 /home                   btrfs   subvol=home,compress=zstd:1 0 0

mount | grep boot results in nothing…

I am not sure how you are even booting that system.
what is the result of cat /sys/firmware/efi/efivars

If it tells you that is a directory then you appear to be booting with efi, but the /etc/fstab file is messed up
There should be 2 lines in fstab that are similar to this

UUID=a9d8c33f-4e92-4e76-84d5-48c397ffc8ca /boot                   ext4    defaults        1 2
UUID=B4F3-9FD6          /boot/efi               vfat    umask=0077,shortname=winnt 0 2

I put your UUIDs in those 2 lines so it should be simple to copy those lines into your /etc/fstab file.
Lets see the result of the cat command first to confirm you are booting with uefi before editing /etc/stab.

sudo ls -lhR /boot

1 Like

cat /sys/firmware/efi/efivars:

cat: /sys/firmware/efi/efivars: Is a directory

sudo ls -lhR /boot:

/boot:
total 409M
-rw-r--r--. 1 root root 274K Dec  8 19:00 config-6.12.4-200.fc41.x86_64
-rw-r--r--. 1 root root 274K Dec 14 19:00 config-6.12.5-200.fc41.x86_64
-rw-r--r--. 1 root root 274K Dec 18 19:00 config-6.12.6-200.fc41.x86_64
drwx------. 1 root root   40 Jul 18 20:00 efi
drwxr-xr-x. 1 root root 1.2K Oct 29 19:59 extlinux
drwx------. 1 root root   40 Nov 20 19:00 grub2
-rw-------. 1 root root 165M Aug  9 11:56 initramfs-0-rescue-aff2a41578ea4dd5b1c10ace9f98dfe1.img
-rw-------. 1 root root  50M Dec 17 04:58 initramfs-6.12.4-200.fc41.x86_64.img
-rw-------. 1 root root  50M Dec 20 17:56 initramfs-6.12.5-200.fc41.x86_64.img
-rw-------. 1 root root  50M Dec 26 15:11 initramfs-6.12.6-200.fc41.x86_64.img
drwxr-xr-x. 1 root root   14 Aug  9 11:55 loader
-rw-r--r--. 1 root root 154K Nov 11 19:00 memtest86+x64.efi
-rw-r--r--. 1 root root 179K Dec 17 04:58 symvers-6.12.4-200.fc41.x86_64.xz
-rw-r--r--. 1 root root 179K Dec 20 17:56 symvers-6.12.5-200.fc41.x86_64.xz
-rw-r--r--. 1 root root 179K Dec 26 15:11 symvers-6.12.6-200.fc41.x86_64.xz
-rw-r--r--. 1 root root  11M Dec  8 19:00 System.map-6.12.4-200.fc41.x86_64
-rw-r--r--. 1 root root  11M Dec 14 19:00 System.map-6.12.5-200.fc41.x86_64
-rw-r--r--. 1 root root  11M Dec 18 19:00 System.map-6.12.6-200.fc41.x86_64
-rwxr-xr-x. 1 root root  16M Aug  9 11:55 vmlinuz-0-rescue-aff2a41578ea4dd5b1c10ace9f98dfe1
-rwxr-xr-x. 1 root root  16M Dec  8 19:00 vmlinuz-6.12.4-200.fc41.x86_64
-rwxr-xr-x. 1 root root  16M Dec 14 19:00 vmlinuz-6.12.5-200.fc41.x86_64
-rwxr-xr-x. 1 root root  16M Dec 18 19:00 vmlinuz-6.12.6-200.fc41.x86_64

/boot/efi:
total 4.0K
drwx------. 1 root root 20 Jul 18 20:00 EFI
-rw-r--r--. 1 root root 34 Jul 17 20:00 mach_kernel
drwxr-xr-x. 1 root root 14 Oct 29 20:12 System

/boot/efi/EFI:
total 0
drwx------. 1 root root  84 Jul 18 20:00 BOOT
drwx------. 1 root root 234 Nov 30 08:22 fedora

/boot/efi/EFI/BOOT:
total 1.8M
-rwx------. 1 root root 731K Mar 18  2024 BOOTIA32.EFI
-rwx------. 1 root root 928K Mar 18  2024 BOOTX64.EFI
-rwx------. 1 root root  69K Mar 18  2024 fbia32.efi
-rwx------. 1 root root  86K Mar 18  2024 fbx64.efi

/boot/efi/EFI/fedora:
total 18M
-rwx------. 1 root root  112 Mar 18  2024 BOOTIA32.CSV
-rwx------. 1 root root  110 Mar 18  2024 BOOTX64.CSV
-rwx------. 1 root root 2.9M Nov 20 19:00 gcdia32.efi
-rwx------. 1 root root 3.9M Nov 20 19:00 gcdx64.efi
-rwx------. 1 root root 2.9M Nov 20 19:00 grubia32.efi
-rwx------. 1 root root 3.9M Nov 20 19:00 grubx64.efi
-rwx------. 1 root root 659K Mar 18  2024 mmia32.efi
-rwx------. 1 root root 829K Mar 18  2024 mmx64.efi
-rwx------. 1 root root 928K Mar 18  2024 shim.efi
-rwx------. 1 root root 731K Mar 18  2024 shimia32.efi
-rwx------. 1 root root 928K Mar 18  2024 shimx64.efi

/boot/efi/System:
total 0
drwxr-xr-x. 1 root root 24 Oct 29 20:12 Library

/boot/efi/System/Library:
total 0
drwxr-xr-x. 1 root root 38 Oct 29 20:12 CoreServices

/boot/efi/System/Library/CoreServices:
total 4.0K
-rw-r--r--. 1 root root 384 Jul 17 20:00 SystemVersion.plist

/boot/extlinux:
total 1.1M
-rw-r--r--. 1 root root 1.8K Jul 19 20:00 cat.c32
-rw-r--r--. 1 root root  25K Jul 19 20:00 chain.c32
-rw-r--r--. 1 root root 1.4K Jul 19 20:00 cmd.c32
-rw-r--r--. 1 root root 3.8K Jul 19 20:00 cmenu.c32
-rw-r--r--. 1 root root 1.7K Jul 19 20:00 config.c32
-rw-r--r--. 1 root root 4.4K Jul 19 20:00 cptime.c32
-rw-r--r--. 1 root root 4.6K Jul 19 20:00 cpu.c32
-rw-r--r--. 1 root root 1.9K Jul 19 20:00 cpuid.c32
-rw-r--r--. 1 root root 2.9K Jul 19 20:00 cpuidtest.c32
-rw-r--r--. 1 root root 1.8K Jul 19 20:00 debug.c32
-rw-r--r--. 1 root root 4.2K Jul 19 20:00 dhcp.c32
-rw-r--r--. 1 root root 3.1K Jul 19 20:00 dir.c32
-rw-r--r--. 1 root root 2.2K Jul 19 20:00 disk.c32
-rw-r--r--. 1 root root 8.8K Jul 19 20:00 dmi.c32
-rw-r--r--. 1 root root  13K Jul 19 20:00 dmitest.c32
-rw-r--r--. 1 root root 3.4K Jul 19 20:00 elf.c32
-rw-r--r--. 1 root root 2.9K Jul 19 20:00 ethersel.c32
-rw-r--r--. 1 root root  11K Jul 19 20:00 gfxboot.c32
-rw-r--r--. 1 root root 1.8K Jul 19 20:00 gpxecmd.c32
-rw-r--r--. 1 root root 161K Jul 19 20:00 hdt.c32
-rw-r--r--. 1 root root 3.8K Jul 19 20:00 hexdump.c32
-rw-r--r--. 1 root root 2.0K Jul 19 20:00 host.c32
-rw-r--r--. 1 root root 2.0K Jul 19 20:00 ifcpu64.c32
-rw-r--r--. 1 root root 4.2K Jul 19 20:00 ifcpu.c32
-rw-r--r--. 1 root root 4.4K Jul 19 20:00 ifmemdsk.c32
-rw-r--r--. 1 root root 2.1K Jul 19 20:00 ifplop.c32
-rw-r--r--. 1 root root 1.8K Jul 19 20:00 kbdmap.c32
-rw-r--r--. 1 root root 5.0K Jul 19 20:00 kontron_wdt.c32
-rw-r--r--. 1 root root 113K Jul 19 20:00 ldlinux.c32
-rw-r--r--. 1 root root 5.2K Jul 19 20:00 lfs.c32
-rw-r--r--. 1 root root 175K Jul 19 20:00 libcom32.c32
-rw-r--r--. 1 root root  67K Jul 19 20:00 libgpl.c32
-rw-r--r--. 1 root root 101K Jul 19 20:00 liblua.c32
-rw-r--r--. 1 root root  24K Jul 19 20:00 libmenu.c32
-rw-r--r--. 1 root root  25K Jul 19 20:00 libutil.c32
-rw-r--r--. 1 root root 4.8K Jul 19 20:00 linux.c32
-rw-r--r--. 1 root root 3.1K Jul 19 20:00 ls.c32
-rw-r--r--. 1 root root 7.0K Jul 19 20:00 lua.c32
-rw-r--r--. 1 root root  12K Jul 19 20:00 mboot.c32
-rw-r--r--. 1 root root  26K Jul 19 20:00 memdisk
-rw-r--r--. 1 root root 2.7K Jul 19 20:00 meminfo.c32
-rw-r--r--. 1 root root  26K Jul 19 20:00 menu.c32
-rw-r--r--. 1 root root 3.5K Jul 19 20:00 pci.c32
-rw-r--r--. 1 root root 3.6K Jul 19 20:00 pcitest.c32
-rw-r--r--. 1 root root 3.2K Jul 19 20:00 pmload.c32
-rw-r--r--. 1 root root 1.8K Jul 19 20:00 poweroff.c32
-rw-r--r--. 1 root root 3.3K Jul 19 20:00 prdhcp.c32
-rw-r--r--. 1 root root 1.7K Jul 19 20:00 pwd.c32
-rw-r--r--. 1 root root  13K Jul 19 20:00 pxechn.c32
-rw-r--r--. 1 root root 1.6K Jul 19 20:00 reboot.c32
-rw-r--r--. 1 root root  14K Jul 19 20:00 rosh.c32
-rw-r--r--. 1 root root 1.8K Jul 19 20:00 sanboot.c32
-rw-r--r--. 1 root root 3.2K Jul 19 20:00 sdi.c32
-rw-r--r--. 1 root root  15K Jul 19 20:00 sysdump.c32
-rw-r--r--. 1 root root 8.9K Jul 19 20:00 syslinux.c32
-rw-r--r--. 1 root root 3.1K Jul 19 20:00 vesa.c32
-rw-r--r--. 1 root root 2.4K Jul 19 20:00 vesainfo.c32
-rw-r--r--. 1 root root  27K Jul 19 20:00 vesamenu.c32
-rw-r--r--. 1 root root 2.0K Jul 19 20:00 vpdtest.c32
-rw-r--r--. 1 root root 2.7K Jul 19 20:00 whichsys.c32
-rw-r--r--. 1 root root 3.7K Jul 19 20:00 zzjson.c32

/boot/grub2:
total 12K
drwx------. 1 root root   22 Nov 30 08:22 fonts
-rwxr-xr-x. 1 root root 6.7K Nov 30 08:22 grub.cfg
-rw-------. 1 root root 1.0K Dec 28 07:52 grubenv

/boot/grub2/fonts:
total 2.3M
-rwx------. 1 root root 2.3M Nov 20 19:00 unicode.pf2

/boot/loader:
total 0
drwx------. 1 root root 552 Dec 26 15:11 entries

/boot/loader/entries:
total 20K
-rw-r--r--. 1 root root 165 Dec 26 15:11 aff2a41578ea4dd5b1c10ace9f98dfe1-0-memtest86+.conf
-rw-r--r--. 1 root root 436 Nov 30 08:22 aff2a41578ea4dd5b1c10ace9f98dfe1-0-rescue.conf
-rw-r--r--. 1 root root 388 Dec 17 04:58 aff2a41578ea4dd5b1c10ace9f98dfe1-6.12.4-200.fc41.x86_64.conf
-rw-r--r--. 1 root root 388 Dec 20 17:56 aff2a41578ea4dd5b1c10ace9f98dfe1-6.12.5-200.fc41.x86_64.conf
-rw-r--r--. 1 root root 388 Dec 26 15:11 aff2a41578ea4dd5b1c10ace9f98dfe1-6.12.6-200.fc41.x86_64.conf

You and me, both…

I see in /etc/fstab the /boot entry commented out, and the /boot/efi entry missing.

However, while these entries are mounted at boot time according to fstab, they are not needed neither to present GRUB, nor by initramfs, which uses the UUID of the boot partition as detailed in the GRUB entries[1].

So maybe the /boot/efi entry in fstab was deleted by mistake when manipulating the file (e.g. when commenting out the /boot entry, or at some other occasion)?


  1. I have tested this by commenting out both the /boot and /boot/efi entries from /etc/fstab and the system booted with no issues. ↩︎

Interesting; thanks, Mike B.

I don’t recall ever commenting out that line in /etc/fstab, though…

H’m…

Yup… This whole thing’s stumped me.

sudo grub2-probe /boot

Did you try setting up systemd boot or something else?

… and furthermore, the uuid is the same as the uuid for the btrfs file systems.

Below is how the entries for /boot and /boot/efi are supposed to be

1 Like

sudo grub2-probe /boot:

btrfs

Now that you mention it, I did start to play around with moving to systemd-boot when on F38, but never actually did it. Do you think this could be a residual oddity?

Yeah, no idea why the UUID is like that nor why there’s no /boot or /boot/efi mentioned, yet I am clearly able to still log in…

Someone else must have done so. It does happen by itself.

No one else has access to this machine…

Maybe /dev/nvme0n1p1 is the original EFI partition and /dev/nvme0n1p2 is the original boot partition[1], but since these are not mounted anymore under /boot/efi/ and /boot/, respectively, the system possibly recreated the /boot/ and /boot/efi/ folder structure[2] directly under the / (root) subvolume on the /dev/nvme0n1p3 BTRFS partition instead?

If so, then the system probably launches the EFI executables from /dev/nvme0n1p1 (and not from /boot/efi under /dev/nvme0n1p3), but the files from the former location are never updated by Fedora, as there is no mount point anymore. You could find out more by mounting /dev/nvme0n1p1 and checking the folder/file structure, including modification times.

GRUB, on the other hand, I assume defines the root parameter with the UUID of /dev/nvme0n1p3 (BTRFS partition), and not that of /dev/nvme0n1p2 (ext4 partition). You could confirm that with sudo grubby --info=DEFAULT.


  1. Created with the initial installation of Fedora, or by a previous Linux installation maybe. ↩︎

  2. During one previous major upgrade and/or as a result of regenerating GRUB. ↩︎

1 Like

I would theorize that somehow the btrfs drivers are being loaded by grub so the files are able to remain on the btrfs file system and not in the separate vfat & ext4 file systems as would be default.

  • /boot and /boot/efi do not mount,
  • /boot/efi/EFI/fedora/grub.cfg does not exist. The default pointer file for fedora’s grub to redirect grub to the file at /boot/grub2/grub.cfg is not there but that may not be required when it is on the root subvolume of btrfs and everything is on the same partition/subvolume.
  • except for the existence of /boot/extlinux and its content the output of ls -lhR /boot seems perfectly normal (just not on the expected partition locations).

@bryanmoore
What was the result of cat /sys/firmware/efi/efivars

1 Like

I don’t think so, as pretty much no EFI “BIOS” has built-in Ext2/3/4 drivers to access the partition/files in it. Normally, EFI can only access FAT12/16/32 partitions. Usually, the BIOS scans for an EFI flagged Partition and tries to boot \EFI\BOOT\BOOTX64.efi, if no efi boot variable is defined for the selected disk.

1 Like