From what I understand in the grub docs, GRUB_PRELOAD_MODULES
will simply insert insmod <module>
for each one you list at the top of /boot/grub/grub.cfg when you run grub-mkconfig
. From /etc/grub.d/00_header:
for i in ${GRUB_PRELOAD_MODULES} ; do
echo "insmod $i"
done
Cryptodisk is also loaded further down before it calls cryptomount
.
GRUB_ENABLE_CRYPTODISK=y
will add insmod cryptodisk
and insmod luks
where necessary in /boot/grub/grub.cfg, and embed the cryptodisk module into the grub binary in /boot/efi/EFI/Manjaro/grubx64.efi when you run grub-install
.
If the /boot is encrypted, the grub efi binary needs this module embedded, otherwise it can’t unlock and read its config file. It will prompt for the drive password before showing the boot menu.
It seems like for people that get the grub error, they are seeing it after unlocking the volume, and it seems to stem from here in the grub source:
This makes me think the error is about not being able to find a disk that’s encrypted, not the cryptodisk module. This is the only place in the source I could find this error message.
I think the people who get the error should check their /etc/fstab and correlate the encrypted volume with what’s passed to cryptomount -u <uuid>
in /boot/grub/grub.cfg.
I think what’s allowing these people to continue to boot is the fact that they’ve already unlocked the volume, and grub can still find the kernel, etc.