[PATCH] unix/platform: Initialize variable to fix grub-install on UEFI system

Daniel Kiper dkiper at net-space.pl
Wed Oct 31 12:31:50 GMT 2018


On Tue, Oct 23, 2018 at 03:00:13PM +0200, Paul Menzel wrote:
> Date: Tue, 23 Oct 2018 14:37:57 +0200
>
> On a UEFI system, were no boot entry *grub* is present, currently,
> `grub-install` fails with an error.
>
>     $ efibootmgr
>     BootCurrent: 0000
>     Timeout: 0 seconds
>     BootOrder: 0001,0006,0003,0004,0005
>     Boot0001  Diskette Drive
>     Boot0003* USB Storage Device
>     Boot0004* CD/DVD/CD-RW Drive
>     Boot0005  Onboard NIC
>     Boot0006* WDC WD2500AAKX-75U6AA0
>     $ sudo grub-install /dev/sda
>     Installing for x86_64-efi platform.
>     grub-install: error: efibootmgr failed to register the boot entry: Unknown error 22020.
>
> The error code is always different, and the error message (incorrectly)
> points to efibootmgr.
>
> But, the error is in GRUB???s function
> `grub_install_remove_efi_entries_by_distributor()`, where the variable
> `rc` for the return value, is uninitialized and never set, when no boot
> entry for the distributor is found.
>
> The content of that uninitialized variable is then returned as the error
> code of efibootmgr.
>
> Set the variable to 0, so that success is returned, when no entry needs
> to be deleted.
>
> Tested on Dell OptiPlex 7010 with firmware A28.
>
>     $ sudo ./grub-install /dev/sda
>     Installing for x86_64-efi platform.
>     Installation finished. No error reported.
>
> [1]: https://github.com/rhboot/efibootmgr/issues/100
>
> Signed-off-by: Paul Menzel <pmenzel at molgen.mpg.de>

Reviewed-by: Daniel Kiper <daniel.kiper at oracle.com>

Daniel



More information about the Pkg-grub-devel mailing list