From: Andrei Borzenkov <arvidjaar@gmail.com>
To: grub-devel@gnu.org
Subject: Re: grub-install deleting long UEFI entries bug ?
Date: Sun, 23 Apr 2017 11:45:46 +0300 [thread overview]
Message-ID: <bcef12e8-0367-af07-3570-3f13222ec7d2@gmail.com> (raw)
In-Reply-To: <CAGkQCM2M81SSeqHdKN=Z26KBnZuXSX-gGos-fcPNU7764fNFNA@mail.gmail.com>
23.04.2017 11:21, adrian15 adrian15 пишет:
> 2017-04-23 6:36 GMT+02:00 Andrei Borzenkov <arvidjaar@gmail.com>:
>
>> 23.04.2017 03:54, adrian15 пишет:
>>> grub-install seems to be deleting long UEFI entries
>>>
>>> (*) What the bug is
>>>
>>> * Add an UEFI entry with this label (Remove the single quotes):
>>> '(Rescapp added) \EFI\ubuntu\MokManager.efi'
>>>
>>> Example:
>>>
>>> efibootmgr -c \
>>> -d /dev/sda \
>>> -p 2 \
>>> -L '(Rescapp added) \EFI\ubuntu\MokManager.efi' \
>>> -l '\EFI\ubuntu\MokManager.efi'
>>>
>>> * Run grub-install /dev/sda or maybe just grub-install
>>>
>>> I expect the newly added uefi entry to be there.
>>> What I find is that the entry has been lost or deleted!
>>>
>>
>> What is value of GRUB_DISTRIBUTOR in /etc/default/grub?
>>
>
> After evaluating the bash expression the GRUB_DISTRIBUTOR value is Ubuntu.
>
Yes, historically grub did case insensitive substring search. This
probably is wrong, we should just take everything after boot number
literally.
...
> 1) First of all this matches all the line:
>
> if (!strcasestr (line, efi_distributor))
> continue;
>
> That means that if you add a custom label which matches the efi distributor
> then it gets removed. I think that's what happened to me. I would prefer
> something more precise that would check the complete efi file path agains
> e.g. EFI/vendor/ .
>
> 2) Then there's:
>
> if (grub_memcmp (line, "Boot", sizeof ("Boot") - 1) != 0
> || line[sizeof ("Boot") - 1] < '0'
> || line[sizeof ("Boot") - 1] > '9')
> continue;
>
> which might be wrong because of 0 and 9 and maybe not because of the array
> indexes.
>
> Let's go into details about that.
>
> 2.1) Boot0000 First entry
> BootA000 Second entry
>
> Shouldn't the look for A to F hexadecimal letters too?
>
Yes. Patches are welcome for both problems. Second one is actually bug
fix so should be independent.
> And...
>
> 2.2) line[sizeof ("Boot") - 1] < '0'
>
> Am I doing it right?
>
> sizeof ("Boot") = 4
>
It is 5.
next prev parent reply other threads:[~2017-04-23 8:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-23 0:54 grub-install deleting long UEFI entries bug ? adrian15
2017-04-23 4:36 ` Andrei Borzenkov
2017-04-23 8:21 ` adrian15 adrian15
2017-04-23 8:45 ` Andrei Borzenkov [this message]
2017-04-23 20:33 ` adrian15
2017-04-24 3:33 ` Andrei Borzenkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bcef12e8-0367-af07-3570-3f13222ec7d2@gmail.com \
--to=arvidjaar@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).