Bug 13053

Summary: Installation with EFI does not works correctly on some machines
Product: [ROSA-based products] ROSA Fresh Reporter: a.betkher <a.betkher>
Component: Installer and live modeAssignee: ROSA Linux Bugs <bugs>
Status: VERIFIED FIXED QA Contact: ROSA Linux Bugs <bugs>
Severity: normal    
Priority: Normal CC: a.proklov, leshikne, m.novosyolov, pastordidi, v.potapov
Version: AllFlags: v.potapov: qa_verified+
a.proklov: published+
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Platform: --- ROSA Vulnerability identifier:
RPM Package: ISO-related:
Bad POT generating: Upstream:
Attachments: exi1.png

Description a.betkher 2022-12-24 13:14:24 MSK
efibootmgr не может корректно прописать загрузку Росы на некоторых машинах при установке системы. Как результат - не грузится.
Comment 1 a.betkher 2022-12-24 13:35:21 MSK
Предлагаю обходной путь решения проблемы. Дополнительно копировать EFI загрузчики росы из /EFI/rosa по стандартному для EFI пути /EFI/BOOT и использовать стандартное же имя для загрузчика BOOTx64.efi.

https://abf.io/platforms/rosa2021.1/products/316/product_build_lists/45191

Это сборка lxqt x86_64 с добавленными пакетами:
grub2-install-hooks
anaconda-grub2-install-hooks 
И с изменениями в пакете anaconda. Все изменения пока в моем персональном репозиотрии и добавлены в сборку с ADD_REPOS, ADD_PACKAGES.

Advisory: 
- Install OS from this iso using EFI, boot it, check that /boot/efi/EFI/BOOT is not emty
- remove /boot/efi/EFI/rosa/* check that still
Comment 2 a.betkher 2022-12-24 13:54:23 MSK
i meant: check it still boot
Comment 3 a.betkher 2022-12-26 09:46:48 MSK
updated efibootmgr (version 18, last commit)

https://abf.io/build_lists/4192589 - x86_64
https://abf.io/build_lists/4192590
https://abf.io/build_lists/4192591
https://abf.io/build_lists/4192593

Advisory:
- it works
Comment 4 a.betkher 2022-12-27 12:21:38 MSK
grub2-install-hooks
https://abf.io/build_lists/4192939 - x86_64

Нужен в main если будем использовать с анакондой, если нет можно в контриб.

Advisory:
- Установленный Rosa fresh загрузить с efi
- установить пакет grub2-install-hooks
- dnf reinstall grub2 

Должен сработать триггер и запустить grub2-install-hooks. Скрипт установит заново grub2-efi и дополнительно создаст копии файлов ефи загрузчиков в /boot/efi/EFI/BOOT/.
Comment 6 a.betkher 2022-12-29 18:27:59 MSK
grbd2-install-hooks

https://abf.io/build_lists/4193383 - i668
https://abf.io/build_lists/4193384 - x86_64
https://abf.io/build_lists/4193385 - aarch


Прикреплен к main. Таможня дает добро?
Comment 7 Dmitry Postnikov 2023-01-09 14:52:19 MSK
Т.е. всё из /boot/efi/EFI/rosa копируем в /boot/efi/EFI/Boot ? 
Там же и Виндовые загрузчики лежат. Норм будет?

И образ тогда собрать бы, для проверочки.
Comment 8 Dmitry Postnikov 2023-01-09 14:54:44 MSK
Created attachment 5853 [details]
exi1.png

У меня с Виндой и Росой вот так пока.
Comment 9 a.betkher 2023-01-09 16:11:08 MSK
Хм. У тебя выглядит будто i686 ОС, BOOTX64.efi должен называться shim  если х86_64.
Comment 10 a.betkher 2023-01-09 16:15:52 MSK
> Т.е. всё из /boot/efi/EFI/rosa копируем в /boot/efi/EFI/Boot ? 
> Там же и Виндовые загрузчики лежат. Норм будет?

Росовские ефи загрузчики копируются в /EFI/BOOT esp раздела только если там пусто, либо если там уже росовские загрузчики и их нужно обновить. Если там загрузчики от другой ОС скрипт ничего делать не будет.
Comment 11 Dmitry Postnikov 2023-01-09 16:27:50 MSK
(In reply to a.betkher from comment #9)
> Хм. У тебя выглядит будто i686 ОС, BOOTX64.efi должен называться shim  если
> х86_64.

Ну так и есть. Ты скрин видмио мельком глянул.
Comment 12 Dmitry Postnikov 2023-01-09 16:30:47 MSK
(In reply to a.betkher from comment #10)
> > Т.е. всё из /boot/efi/EFI/rosa копируем в /boot/efi/EFI/Boot ? 
> > Там же и Виндовые загрузчики лежат. Норм будет?
> 
> Росовские ефи загрузчики копируются в /EFI/BOOT esp раздела только если там
> пусто, либо если там уже росовские загрузчики и их нужно обновить. Если там
> загрузчики от другой ОС скрипт ничего делать не будет.

Я почему спросил, потому, что всё дело в регистре букв. У меня /EFI/Boot с Виндой. А росовсий ефи будет сичтать это папкой /EFI/BOOT или /EFI/Boot ? Т.е. регистр разный, соответственно сам понимаешь, могут быть касяки. Росовский ефи почситает , что папки /EFI/BOOT нет, и рядом такую же запилит. И будет две: 
/EFI/Boot и /EFI/BOOT
Comment 13 a.betkher 2023-01-09 16:56:14 MSK
Мысль понял, починю.
Comment 14 Dmitry Postnikov 2023-01-09 17:00:18 MSK
(In reply to a.betkher from comment #13)
> Мысль понял, починю.

Погоди, в /boot/efi же файловая система fat32. Там регистр без разницы же?
Comment 15 a.betkher 2023-01-09 18:59:11 MSK
https://abf.io/build_lists/4299013
https://abf.io/build_lists/4299015

Добавил проверки на имя папок EFI и BOOT, будет понимать три варианта:
- все строчные
- все заглавные
- первая заглавная остальные строчные
Добавил переустановку shim если он не найден. 


> Погоди, в /boot/efi же файловая система fat32. Там регистр без разницы же?

Как раз в этом и может крыться проблема. Линуксовый драйвер позволяет создавать на фат файлы FILE и file одновременно, а например граб на фат увидит только один файл из двух в каком регистре не пиши. Может и у EFI также быть лучше подстраховаться и не создавать вторую аналогичную папку с символами в другом регистре. 

Advisory: тоже что и в прошлый раз.
Comment 16 Dmitry Postnikov 2023-01-10 13:10:49 MSK
Собери iso образ какой-нибудь, с этими фичами. Посмотрим.
Comment 17 a.betkher 2023-01-11 10:23:18 MSK
> Собери iso образ какой-нибудь, с этими фичами. Посмотрим.

https://abf.io/platforms/rosa2021.1/products/316/product_build_lists/45320
Comment 18 Dmitry Postnikov 2023-01-15 14:08:24 MSK
(In reply to a.betkher from comment #17)
> > Собери iso образ какой-нибудь, с этими фичами. Посмотрим.
> 
> https://abf.io/platforms/rosa2021.1/products/316/product_build_lists/45320

Капец, нужно было мне сразу версии проверить. Убил 1,5 дня на тесты.
В образе и efibootmgr и grub2-install-hook - старые.
Comment 19 Mikhail Novosyolov 2023-01-16 10:19:48 MSK
(In reply to Dmitry Postnikov from comment #14)
> (In reply to a.betkher from comment #13)
> > Мысль понял, починю.
> 
> Погоди, в /boot/efi же файловая система fat32. Там регистр без разницы же?

В FAT32, насколько знаю, регистр без разницы е в самой файловой системе, а в ее конкретной реализации. Я бы придерживался регистра в спецификации UEFI.
Comment 20 a.betkher 2023-01-16 17:07:05 MSK
Сборка x86_64 с изменениями в анаконде для grub2-install-hooks и сам этот пакет:

https://abf.io/platforms/rosa2021.1/products/316/product_build_lists/45384

anaconda:
https://abf.io/build_lists/4309640 - x86_64
https://abf.io/build_lists/4309641
https://abf.io/build_lists/4309642
https://abf.io/build_lists/4309643
https://abf.io/build_lists/4309644

grub2-install-hooks:
https://abf.io/build_lists/4309645 -x86_64
https://abf.io/build_lists/4309646
https://abf.io/build_lists/4309647
https://abf.io/build_lists/4309649

Именно эту сборку сам не проверял, но проверял такую же где анаконда и грабен-костылен из контейнеров собранных с личного репозитория. По коду должно быть идентично.
Comment 21 Dmitry Postnikov 2023-01-17 15:12:34 MSK
(In reply to a.betkher from comment #3)
> updated efibootmgr (version 18, last commit)
> 
> https://abf.io/build_lists/4192589 - x86_64
> https://abf.io/build_lists/4192590
> https://abf.io/build_lists/4192591
> https://abf.io/build_lists/4192593
> 
> Advisory:
> - it works

(In reply to a.betkher from comment #20)
> Сборка x86_64 с изменениями в анаконде для grub2-install-hooks и сам этот
> пакет:
> 
> https://abf.io/platforms/rosa2021.1/products/316/product_build_lists/45384
> 
> anaconda:
> https://abf.io/build_lists/4309640 - x86_64
> https://abf.io/build_lists/4309641
> https://abf.io/build_lists/4309642
> https://abf.io/build_lists/4309643
> https://abf.io/build_lists/4309644
> 
> grub2-install-hooks:
> https://abf.io/build_lists/4309645 -x86_64
> https://abf.io/build_lists/4309646
> https://abf.io/build_lists/4309647
> https://abf.io/build_lists/4309649
> 
> Именно эту сборку сам не проверял, но проверял такую же где анаконда и
> грабен-костылен из контейнеров собранных с личного репозитория. По коду
> должно быть идентично.




***************************
The update sent to testings
Comment 22 Vladimir Potapov 2023-01-26 12:21:05 MSK
efibootmgr-18-1
https://abf.io/build_lists/4192589 - x86_64
https://abf.io/build_lists/4192590
https://abf.io/build_lists/4192591
https://abf.io/build_lists/4192593

anaconda-34.25.0.10-1.52
https://abf.io/build_lists/4309640 - x86_64
https://abf.io/build_lists/4309641
https://abf.io/build_lists/4309642
https://abf.io/build_lists/4309643
https://abf.io/build_lists/4309644

grub2-install-hooks-0.2-6
https://abf.io/build_lists/4309645 -x86_64
https://abf.io/build_lists/4309646
https://abf.io/build_lists/4309647
https://abf.io/build_lists/4309649
************************* Advisory ************************
Update efibootmanager, fix UEFI boot for some UEFI bios
***********************************************************
QA Verified