EndeavourOS systemd-boot configuration

I have quite an unorthodox laptop setup in that I can only install my operating system on an SD Card. My bios doesn’t recognize this SD card, which forces me to store /efi on the eMMC internal drive on my laptop.

On EndeavourOS, this process is a breeze. I can manually partition the install and mount /efi on my internal drive, and it boots no problem.

While trying to emulate this on vanilla arch, I mount /boot on my eMMC drive in order to have the kernel and bootloader on the same partition. Weirdly, this setup fails, and the SD card with my actual arch install on it isn’t recognised in /dev.

I’ve considered modifying my firmware to recognise my SD card better, but I thought I’d come here first for assistance.

Primarily, I’d like to understand EndeavourOS manages systemd-boot and initcpio generation so I can mimic its behaviour on Arch.

For those wondering why I’m not just using eos, there are a few misconfigurations in it that makes it hard to use on my niche hardware/firmware.

We use kernel-install with systemd-boot. If you want to mimic that on Arch, you can install either kernel-install-mkinitcpio or kernel-install-for-dracut from the AUR.

There is no need to mount the ESP on /boot with this setup. You can mount it at /efi

Hi. I’ve tried installing arch linux using kernel-install-for-dracut, and using the nvme_load=YES parameter, but the problem persists. Linux can’t find my SD card. When I’m dropped into the emergency shell, it’s not even listed in /dev.

I’ve noticed that multiple systemd services start even before the root partition is mounted. Please let me know what else I could look at to fix my issue.