[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