Bug 5586 - [UPDATE REQUEST] grub2-2.00-73
: [UPDATE REQUEST] grub2-2.00-73
Status: VERIFIED FIXED
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: All Linux
: Normal normal
: ---
Assigned To: ROSA Linux Bugs
: ROSA Linux Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2015-05-21 15:33 MSD by Konstantin Vlasov
Modified: 2015-05-25 15:49 MSD (History)
4 users (show)

See Also:
RPM Package:
ISO-related:
Bad POT generating:
Upstream:
firstlevel: qa_verified+
denis.silakov: published+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Konstantin Vlasov 2015-05-21 15:33:03 MSD
Several improvements for grub2.
Comment 1 Konstantin Vlasov 2015-05-21 16:43:16 MSD
https://abf.io/build_lists/2502719
https://abf.io/build_lists/2502720

Advisory: Various EFI-related improvements:
1. If EFI contains several Windows Boot Manager entries, update-grub2 added first one to the boot menu, even if it was not default. Now BootOrder EFI variable is taken into account (grub menu will contain the Windows entry which is first in the BootOrder).
2. If GRUB_DISABLE_OS_PROBER=true, Windows entry will not be added to the menu anymore.
3. In EFI mode update-grub2 caused the current system's grub.cfg to become default (/boot/efi/EFI/rosa/grub.cfg was overwritten with new data). Now grub2-install/grub2-efi-install performs this action, and update-grub2 will only update the local grub.cfg; this is more consistent with the Legacy (non-EFI) mode behavior.


How to test p.1:

I
You need a computer with EFI and pre-installed Windows (Secure Boot does not matter).

II
You need to configure EFI boot entries so that it contained at least two Windows entries with reversed boot order. Run `efibootmgr -v' and look for 'Windows Boot Manager' entries. If you have something like that:

BootOrder: 0003,0002,2001
Boot0002* Windows Boot Manager    HD(1,800,82000,05eba79a-6350-4d57-9be4-b797192104d4)File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0003* Windows Boot Manager    HD(3,363800,82000,33cc1833-f30c-4c94-bbf4-da500d3ebdc5)File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot2001* EFI USB Device    RC

then you already have the required test system: Boot0002 entry is listed before Boot0003, but BootOrder specifies them in reverse: first 0003, then 0002.

If you do not have such configuration, you can simulate it manually:
a) Run the following command:
efibootmgr -c -L 'Windows Boot Manager' -l '\EFI\Microsoft\Boot\bootmgfw-fake.efi' -b NEWBOOTNUM -d /dev/sdX -p PART
where:
  NEWBOOTNUM is a 4-digit hex number which is larger than any of the existing Boot entry numbers. DO NOT USE EXISTING ENTRY NUMBERS! If you do, they will be overwritten!
  /dev/sdX is a disk where your EFI partition is located (not the partition itself!)
  PART is the number of the EFI partition
For example, if your EFI partition is /dev/sda2, and the largest Boot entry number is 2001, you can run:
efibootmgr -c -L 'Windows Boot Manager' -l '\EFI\Microsoft\Boot\bootmgfw-fake.efi' -b 3001 -d /dev/sda -p 2

b) Run `efibootmgr -v' to check that new fake Windows entry is placed first in the BootOrder and therefore precedes the already existing (real) Windows entry.

III
On grub2-2.00-72 run:
grub2-efi-mkconfig -o /tmp/grub-72.cfg
Check that the generated config file contains Windows entry which is first in efibootmgr listing, that is loads \EFI\Microsoft\Boot\bootmgfw.efi file (incorrect behavior).

IV
Update to grub2-2.00-73, run:
grub2-efi-mkconfig -o /tmp/grub-73.cfg
Check that in the new config the latest Windows entry is used, because it is specified first in BootOrder (correct behavior).

To remove the fake Windows entry from EFI boot list, run:
efibootmgr -B -b BOOTNUM
for example,
efibootmgr -B -b 3001
Comment 2 Vladimir Potapov 2015-05-21 19:51:37 MSD
The update is sent to expanded testing 
**************************************
Comment 3 Andrey Ponomarenko 2015-05-22 01:51:00 MSD
Sony SVE1713S1RW + ROSA.FRESH.KDE.R5.10760.b.x86_64

grub2-2.00-72: http://hw.rosalinux.ru/index.php?probe=79d832060c
grub2-2.00-73: http://hw.rosalinux.ru/index.php?probe=008812af50

Seems that all is OK with both versions of grub. In both cases the Windows menu entry loads hd0,gpt3. So I can't reproduce incorrect behaviour.

Please check logs.
Comment 4 Konstantin Vlasov 2015-05-22 03:46:56 MSD
(In reply to comment #3)
> Seems that all is OK with both versions of grub. In both cases the Windows
> menu entry loads hd0,gpt3. So I can't reproduce incorrect behaviour.

No, it's not OK. Actually, there is another bug that I forgot to mention, which was also fixed in 73: search hints were incorrect (they always took the current /boot/efi partition instead of what Windows entry really used).

Extracts from your configs:
72:
search --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  3EFD-73E0
73:
search --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  F63D-5F92

And from /dev/disk/by-uuid/ we can see that 3EFD-73E0 is sda1, and F63D-5F92 is sda3. Therefore, in the version 72 sda1 was used, even though the hints pointed to sda3 (the hints are only "helpers", UUID is the primary search criterion).
Comment 5 FirstLevel 2015-05-25 15:33:52 MSD
grub2-2.00-73
http://abf-downloads.rosalinux.ru/rosa2014.1/container/2502719/i586/main/release/
http://abf-downloads.rosalinux.ru/rosa2014.1/container/2502720/x86_64/main/release/
************************ Advisory **********************
Various EFI-related improvements:
1. If EFI contains several Windows Boot Manager entries, update-grub2 added first one to the boot menu, even if it was not default. Now BootOrder EFI variable is taken into account (grub menu will contain the Windows entry which is first in the BootOrder).
2. If GRUB_DISABLE_OS_PROBER=true, Windows entry will not be added to the menu anymore.
3. In EFI mode update-grub2 caused the current system's grub.cfg to become default (/boot/efi/EFI/rosa/grub.cfg was overwritten with new data). Now grub2-install/grub2-efi-install performs this action, and update-grub2 will only update the local grub.cfg; this is more consistent with the Legacy (non-EFI) mode behavior.
********************************************************
QA Verified