Bug 39604 - grub-efi не является noarch и содержит модули для ненужной архитектуры
Summary: grub-efi не является noarch и содержит модули для ненужной архитектуры
Status: RESOLVED LATER
Alias: None
Product: Sisyphus
Classification: Development
Component: grub-efi (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Николай Костригин
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-26 15:44 MSK by Vitaly Lipatov
Modified: 2021-01-26 17:01 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2021-01-26 15:44:15 MSK
grub-efi содержит модули для разных архитектур, в частност, каталоги i386-efi и x86_64-efi. Некорректно использует для этого каталог %_libdir/grub

Например, в Fedora есть
grub2-efi-x64
grub2-efi-ia32

с файлами, которые у нас в
/usr/lib64/efi/grubia32.efi
/usr/lib64/efi/grubx64.efi

а также
grub2-pc-modules.noarch
grub2-ppc64-modules.noarch
grub2-ppc64le-modules.noarch
grub2-efi-x64-modules.noarch
grub2-efi-aa64-modules.noarch
grub2-efi-ia32-modules.noarch

с модулями.
Comment 1 Николай Костригин 2021-01-26 15:58:23 MSK
Дело в том, что и ia32 и x64 принадлежат, как правило, платформе x86_64 и используются только на ней (про исключения, вопплощенные в железе - планшеты i586/ia32, я слышал но вживую не видел).
К примеру, машины, на которые производитель устанавливал ради экономии памяти и дискового пространства Windows10 32-bit (и как следствие UEFI ia32, так как только она по спецификации может загружать 32-bit код) были построены на базе Atom z8xxx (x86_64).

Действительно ли так критично хранить их раздельно?
Comment 2 Vitaly Lipatov 2021-01-26 16:35:40 MSK
Я подозреваю, что модули для других архитектур тоже появятся. Было бы странным носить их все вместе.

Получается, проблема в существовании 64-битного железа, у которого UEFI ia32?

Конечно, мне кажется, что наличие ia32 в отдельном пакете помогло бы обрабатывать эту ситуацию в инсталляторе.

Тем не менее, очень странно хранить 32-битные модули в /usr/lib64.
Comment 3 Николай Костригин 2021-01-26 17:01:40 MSK
(Ответ для Vitaly Lipatov на комментарий #2)
> Я подозреваю, что модули для других архитектур тоже появятся. Было бы
> странным носить их все вместе.

Никто не собирается носить их вместе. И aa64 (хоть там пока и путаница с именованием EFI-бинарника, будем исправлять), и ppc64le (ieee1275) ходят сами по себе.

> Получается, проблема в существовании 64-битного железа, у которого UEFI ia32?

Ну, в общем-то, да.

> Конечно, мне кажется, что наличие ia32 в отдельном пакете помогло бы
> обрабатывать эту ситуацию в инсталляторе.
> 
> Тем не менее, очень странно хранить 32-битные модули в /usr/lib64.

Это несоответствие можно исправить, но нужно посмотреть, как оно отразится на mkimage и mkimage-profiles.
При переносе бинарника EFI ia32 в /usr/lib/efi, нужно будет править процедуру подписи pesign. 
Если это сейчас ничему срочному не мешает - займусь этим позже.