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.
/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)
#
# /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
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
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.
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)?
I have tested this by commenting out both the /boot and /boot/efi entries from /etc/fstab and the system booted with no issues. ↩︎
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…
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.
Created with the initial installation of Fedora, or by a previous Linux installation maybe. ↩︎
During one previous major upgrade and/or as a result of regenerating GRUB. ↩︎
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
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.