On 04/08/22 17:43, Richard W.M. Jones wrote:
On Fri, Apr 08, 2022 at 05:36:45PM +0200, Laszlo Ersek wrote:
> On 04/08/22 16:59, Richard W.M. Jones wrote:
>> Fixes: commit 3fe941767042bf83d9a252b0819fa6d5a48059d0
>> ---
>> builder/templates/make-template.ml | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/builder/templates/make-template.ml
b/builder/templates/make-template.ml
>> index fe3039aa06..51f72da969 100755
>> --- a/builder/templates/make-template.ml
>> +++ b/builder/templates/make-template.ml
>> @@ -649,9 +649,11 @@ dracut -f /boot/initramfs-$KERNEL_VERSION.img
$KERNEL_VERSION
>> bpf "%%post\n";
>> bpf "\
>> # Ensure the installation is up-to-date.
>> -# This makes Fedora >= 33 unbootable, see:
>> +dnf -y --best upgrade
>> +# This required otherwise the kernel will not be bootable, see
>> #
https://bugzilla.redhat.com/show_bug.cgi?id=1911177
>> -#dnf -y --best upgrade
>> +#
https://bugzilla.redhat.com/show_bug.cgi?id=1945835#c24
>> +grub2-mkconfig -o /boot/grub2/grub.cfg
>> ";
>>
>> let needs_regenerate_dracut = ref false in
>>
>
> Still a fedora bug; after a kernel update, the grub config should be
> refreshed automatically.
>
> Anyway, I guess my more important remark is: the grub.cfg location
> depends on whether the system is UEFI-based or not. Normally,
> grub2-mkconfig is invoked against "/etc/grub2.cfg" (on a BIOS system) or
> "/etc/grub2-efi.cfg" (on a UEFI system). And those are symlinks:
>
> lrwxrwxrwx. 1 root root 31 2021-11-01 12:21:13 +0100 /etc/grub2-efi.cfg ->
../boot/efi/EFI/redhat/grub.cfg
> lrwxrwxrwx. 1 root root 22 2021-11-01 12:21:07 +0100 /etc/grub2.cfg ->
../boot/grub2/grub.cfg
>
> The patch (effectively) assumes BIOS and resolves "/etc/grub2.cfg" to
> "/boot/grub2/grub.cfg".
>
> So (I think) I would consult "needs_uefi" here, and direct the output to
> "/etc/grub2-efi.cfg" vs. "/etc/grub2.cfg". I expect Fedora 33 is
> available on aarch64 (which is UEFI only), and therefore this could make
> an actual difference.
I guess something like this (only compile tested):
diff --git a/builder/templates/make-template.ml b/builder/templates/make-template.ml
index 51f72da969..ef58708f2b 100755
--- a/builder/templates/make-template.ml
+++ b/builder/templates/make-template.ml
@@ -646,6 +646,8 @@ dracut -f /boot/initramfs-$KERNEL_VERSION.img $KERNEL_VERSION
(match os with
| Fedora _ ->
+ let uefi = needs_uefi os arch in
+
bpf "%%post\n";
bpf "\
# Ensure the installation is up-to-date.
@@ -653,8 +655,8 @@ dnf -y --best upgrade
# This required otherwise the kernel will not be bootable, see
#
https://bugzilla.redhat.com/show_bug.cgi?id=1911177
#
https://bugzilla.redhat.com/show_bug.cgi?id=1945835#c24
-grub2-mkconfig -o /boot/grub2/grub.cfg
-";
+grub2-mkconfig -o %s
+" (quote (if uefi then "/etc/grub2-efi.cfg" else
"/etc/grub2.cfg"));
let needs_regenerate_dracut = ref false in
if arch = X86_64 then (
Rich.