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 is 6ebb8123-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}
  /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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.