Open enihcam opened 1 year ago
However, dracut fixed this already as an alternative solution, so maybe you can take the following code as a reference? https://github.com/dracutdevs/dracut/commit/093bc9b5cfc071409a20351a669c594c748eb647 https://github.com/dracutdevs/dracut/commit/49ea6c42db7180eec5ba57e082a38d116f2d17a5
On Arch Linux, Booster provides a shell script that puts the initramfs image at /boot. The shell script does not currently accommodate this which (should) cause the image to not be built. As a result, since there's no image, this implies that the bootloader wouldn't find it.
As a workaround, you would have to manually build and specify the appropriate path
On Arch Linux, Booster provides a shell script that puts the initramfs image at /boot. The shell script does not currently accommodate this which (should) cause the image to not be built. As a result, since there's no image, this implies that the bootloader wouldn't find it.
As a workaround, you would have to manually build and specify the appropriate path
right, that's the problem. as a workaround, i manually replaced /boot
with /efi
. hopefully there'll be a more elegant approach to resolve this.
@enihcam To follow up, is there any specific reason why you do not have a /boot
directory? I understand the case where one can have both /boot
and /efi
but not only /efi
.
This is an Arch Linux script so the default boot path for initramfs images and other components is /boot
. If going by mkinitcpio and assuming you have only 1 ESP partition, /efi
seems to be only reserved for UKIs which (should) require the user to adjust the new mount point of the ESP to /efi
, leaving boot files like the kernel/microcode/initramfs residing within the root partition.
I understand that there are cases for other ESP mount points, but what's yours specifically?
@enihcam To follow up, is there any specific reason why you do not have a
/boot
directory? I understand the case where one can have both/boot
and/efi
but not only/efi
.This is an Arch Linux script so the default boot path for initramfs images and other components is
/boot
. If going by mkinitcpio and assuming you have only 1 ESP partition,/efi
seems to be only reserved for UKIs which (should) require the user to adjust the new mount point of the ESP to/efi
, leaving boot files like the kernel/microcode/initramfs residing within the root partition.I understand that there are cases for other ESP mount points, but what's yours specifically?
i don't really care what the directory be named. also, i'd have to manually write into /etc/fstab
to enable mount of /boot
. same thing, i'd have to manually tweak systemd to disable /efi
. :)
I cannot remember which, either grub, arch's mkinitcpio, or dracut (but I think one of the first two) has some functionality hard-coded to /boot
. So I went with that, but I've found that even creating /efi
causes systemd to enable efi.automount
, which does as it's named. It didn't cause issues on my machine but could others. I can't remember what created /efi
, but I removed it and everything works fine.
This is outside the scope of the issue, but relevant -- @anatol , is compatibility with systemd's kernel-install
& systemd-ukify
something that you'd want? If so, I have written a plugin script for booster to work in this context & could send a PR for you to look at. No worries if not!
edit: Sorry about the previous comment. Changing the default path was no longer necessary after setting up the kernel-install
+ systemd-ukify
+ pacman-hook-kernel-install
.
I understand using /boot
as the default path, but I think it would be nice to have a solution that doesn't require manually editing the scripts.
I'm asking this question because I see some hardcoded
/boot
in booster codebase, so the logic will fail in this case, according to https://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.htmlHere is my root directory layout. As you can see there is no
/boot
So, instead of ad-hoc script, I thought an elegant way to copy initramfs artifacts over to $BOOT directory is to use systemd-kernel-install
An example would be: https://gitlab.com/dalto.8/kernel-install-for-dracut
What do you think?
For more details regarding to
/efi
: https://www.freedesktop.org/software/systemd/man/systemd-boot.html