according to the documentation, the systemd-gpt-auto-generator
should automatically find the EFI system partition and generate a mount unit to mount it on /efi
. However this does not appear to work on my system, despite all the requirements being met.I have an NVMe drive, /dev/nvme0n1
, the EFI system partition is /dev/nvme0n1p1
, and I'm using systemd-boot to boot the system
- There is a GPT partition table
/dev/nvme0n1p1
has the correct partition GUID code for EFI system partitions,C12A7328-F81F-11D2-BA4B-00A0C93EC93B
, and I can boot from it just fine- The PARTUUID according to
blkid /dev/nvme0n1p1
is6ebb8123-f305-404b-b5a3-65f46c7d7076
, and this matches the content of/sys/firmware/efi/efivars/LoaderDevicePartUUID-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
- I'm not booting in legacy (BIOS) mode
- The directory
/efi
exists on the root file system and it is empty - no mount point for this partition is configured in
/etc/fstab
. There are no.mount
units for it either - there is no extended boot loader partition (XBOOTLDR)
- the generator is not disabled using the systemd.gpt_auto or rd.systemd.gpt_auto kernel cmdline parameter
I could just create an entry in /etc/fstab
and be done with it, but I would rather understand why it's not working. Any pointers on how to debug this?
I've tried running the generator manually:
mkdir /tmp/{a,b,c}SYSTEMD_LOG_LEVEL=debug \ /usr/lib/systemd/system-generators/systemd-gpt-auto-generator /tmp/{a,b,c}
But the output doesn't contain anything useful:
Found container virtualization none.Disabling root partition auto-detection, root= is defined.dm-3: Not a partitioned device, ignoring: No such file or directory