From: Andrei Borzenkov <arvidjaar@gmail.com>
To: grub-devel@gnu.org
Subject: Re: grub-install deleting long UEFI entries bug ?
Date: Mon, 24 Apr 2017 06:33:28 +0300 [thread overview]
Message-ID: <bca0addd-57a0-11d1-cbe2-e2f355b237cf@gmail.com> (raw)
In-Reply-To: <58FD0F98.5080508@gmail.com>
23.04.2017 23:33, adrian15 пишет:
> El 23/04/17 a las 10:45, Andrei Borzenkov escribió:
>> 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.
>
> I see, like removing what you are about to add I guess.
> The problem that I see is that efibootmgr output (even if --verbose
> switch) it's not machine readable.
>
We are using plain "efibootmgr" without --verbose and output is variable
name followed by either '*' or space followed by space followed by
description if present. Unless description contains newline, it looks
straightforward to parse.
> I guess efibootmgr itself would need an specific switch in order to
> produce output suitable for scripts.
It would need somehow escape newline
> Another option is include some of
> the efibootmgr functionality/libraries into grub itself.
>
Yes, I have half-done patch but as I see now it is probably not really
needed unless we actually have case of description containing newlines.
>>>
>>> 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...
>
> Well, I think just checking 0 to 9 in the first character is a good
> compromise.
>
> Some outputs have: BootCurrent . So 'BootC' can be found in e.g.
> 'BootC001' too. So that would be adding another problem because
> 'BootCurrent' would be considered as a right entry.
>
This simply means that we have to check for exactly 4 hexadecimal
numbers, not shortcut this.
prev parent reply other threads:[~2017-04-24 3:33 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
2017-04-23 20:33 ` adrian15
2017-04-24 3:33 ` Andrei Borzenkov [this message]
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=bca0addd-57a0-11d1-cbe2-e2f355b237cf@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.