Bug 29705

Summary: grub2 unable to chainload windows 8 bootloader when secureboot is enabled
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: grub2-efiAssignee: Michael Shigorin <mike>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aen, boyarsh, cas, rider, sbolshakov, sem, vitty, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 27685    

Description Michael Shigorin 2014-01-10 18:46:20 MSK
Если при установке флэшка оказалась sda, то в конфигурацию grub попадает hd1 вместо hd0 и единственное, что наводит на мысли -- это строчка вроде "Windows Boot Manager (UEFI on sdb1)".

Мопед не наш и широко известен, но надо что-то с ним сделать:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091464

Как там и упоминается, отключение secureboot без каких-либо иных действий загрузку win8 чинит.  Почему, пока неясно.
Comment 1 Michael Shigorin 2014-01-10 21:49:55 MSK
sda/sdb тут совсем не при чём, поиск делается всё же по UUID в итоге.

При включенном SecureBoot ошибка выглядит вот так:

Booting a command list

/EndEntire
file path: /ACPI(a0341d0,0)/PCI(2,1f)/UnknownMessaging(12)
/HD(1,800,96000,fed12b717a32444e,81,b5)/File(\efi\Microsoft\Boot)
/File(bootmgfw.efi)/EndEntire
error: cannot load image.

На Fedora 20/win8.1 то же самое (если не хуже, выясняю насчёт SB):
https://bugzilla.redhat.com/show_bug.cgi?id=986731#c2
http://stelexu.com/showthread.php?t=515993

Судя по http://git.savannah.gnu.org/gitweb/?p=grub.git;a=commitdiff;h=fba31b5f69f955dc6e7041a80de52979403a1042 -- апстрим о проблеме догадывается, но предпринять пока ничего не в состоянии.

Надо проверить openSUSE 13.1 (текущая версия) и 12.3 (есть упоминание, что "работает").
Comment 2 AEN 2014-01-10 22:20:00 MSK
Тут:
http://stackoverflow.com/questions/20885504/ubuntu-13-10-alongside-windows-8-resulting-in-a-grub-2-issue
говорится, что если сдвинуть Wundows в меню grub2 выше Ubuntu, то он загрузится, но перестанет грузится Ubuntu :-)
Comment 3 Michael Shigorin 2014-01-11 01:20:03 MSK
(В ответ на комментарий №2)
> Тут [...] говорится, что если сдвинуть Wundows в меню grub2 выше Ubuntu,
> то он загрузится, но перестанет грузится Ubuntu :-)
Мне так показалось, что речь всё-таки о фирмварной менюшке (и тогда понятно).

Комментарий к https://build.opensuse.org/package/view_file/openSUSE:Factory/grub2/grub2-secureboot-chainloader.patch?expand=1 навёл на мысль посмотреть, а входит ли chainloader в подписанный grub2 core image.  И если нет -- впихнуть.
Comment 4 AEN 2014-01-11 13:57:43 MSK
Замечу, что версия Windows -- важна.
Comment 5 Michael Shigorin 2014-01-17 21:39:13 MSK
(In reply to comment #0)
> Если при установке флэшка оказалась sda
Если sdb, как при очередной проверке "с нуля" (на другом ноутбуке) -- то эта проблема не воспроизвелась, а в grub.cfg попала строчка "Windows Boot Manager (UEFI on sda1)".
Comment 6 Michael Shigorin 2014-01-22 21:54:53 MSK
(В ответ на комментарий №1)
> Надо проверить openSUSE 13.1 (текущая версия)
Там работает.  В смысле после установки с win8 в дуалбут виндовый загрузчик при включенном secureboot грубом chainload'ится нормально.  Рассмотрение разницы grub.cfg существенных различий, кроме sda/sdb и соответственно hd0/hd1, не показало (поиск там осуществляется по UUID в любом случае).

Возникла мысль сделать объезд, воткнув в propagator/probing.c::find_media() загрузку ahci.ko первым делом, ещё до проверки USB, чтобы флэшка на типичных системах с секирбутом не попадала вперёд дисков.

С одной стороны, с таким propagator на системах с AHCI диск стал sda (из тех, что под рукой, рядом с не-AHCI оказалась машинка на ASUS M2N с MCP51/sata_nv -- но там флэшка и так ушла на sdb).

С другой -- на тестовом E330, где флэшка успевала на sda, а AHCI-диск уходил на sdb, загрузка regular-e18.iso с этим объездом привела к тому, что флэшка опять попала на sda.  Пробую образ с MODULES_PRELOAD += ahci в /etc/initrd.mk... о! так флэшка стала sdb :)
Comment 7 Michael Shigorin 2014-02-11 03:13:47 MSK
Возможно, это firmware bug, у которого есть какой-то обход:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091464/comments/31
Comment 8 Anton Farygin 2017-10-04 08:29:57 MSK
не актуально, новый груб и windows уже не тот