<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>39432</bug_id>
          
          <creation_ts>2020-12-13 01:53:08 +0300</creation_ts>
          <short_desc>grub-install создает запись с нерабочим загрузчиком на некоторых материнках с UEFI (отсутствует BOOT/BOOTX64.EFI)</short_desc>
          <delta_ts>2021-01-15 11:43:32 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>grub</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vyacheslav Dikonov">slava</reporter>
          <assigned_to name="Николай Костригин">nickel</assigned_to>
          <cc>antohami</cc>
    
    <cc>boyarsh</cc>
    
    <cc>nickel</cc>
    
    <cc>placeholder</cc>
    
    <cc>rider</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>194839</commentid>
    <comment_count>0</comment_count>
    <who name="Vyacheslav Dikonov">slava</who>
    <bug_when>2020-12-13 01:53:08 +0300</bug_when>
    <thetext>У меня появилась игровая мат. плата MSI MEG z490i Unify,на которой не работает стандартный и рекомендуемый установщиком на livecd starterkit-ов способ установки загрузчика. 

В конце установки появляется меню вариантов установки загрузчика, где по-умолчанию рекомендуется запись grub в папку altlinux на разделе EFI. После этого должна вноситься запись в nvram, но это, видимо, не срабатывает. 

Вот вывод efibootmgr, после установки. Он соответствует таблице в биосе, которая не меняется после устаноки. Secure boot при этом DISABLED.

BootOrder: 0001,0002,0003,0004,0005,0006
Boot0001* UEFI OS
Boot0002* UEFI: Generic STORAGE DEVICE 9407
Boot0003* UEFI: Generic STORAGE DEVICE 9407, Partition 2
Boot0004* UEFI:CD/DVD Drive
Boot0005* UEFI:Removable Device
Boot0006* UEFI:Network Device

Работает только один вариант из этого меню - UEFI Removable drive, создающий файл EFI/boot/bootx64.efi ! 

ПРОБЛЕМА состоит в том, что пользователь скорее всего не знает, что рекомендованный вариант негоден и не может вернуться в это меню после ошибки и переделать. Догадаться, что надо выбирать removable drive для встроенного SSD крайне тяжело, так что ошибка будет повторяться. Для этого придется раз 5 чертыхаясь заново разбивать диск, ждать копирования и создавать пользователей. 

ВОЗМОЖНЫЕ РЕШЕНИЯ
- Написать подробное разъяснение возможных проблем в самом установщике и переформулировать названия вариантов установки загрузчика.
- Добавить проверку, появилась ли новая запись в NVRAM, например запуском efibootmgr до и после. В случае неудачи удалять EFI/altlinux и предлагать другие варианты
- Добавить возможность переустановки только загрузчика без полного повторения установки системы.

Конечно, желательно сделать все три поправки.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194841</commentid>
    <comment_count>1</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2020-12-13 10:48:54 +0300</bug_when>
    <thetext>Спасибо, мы тоже столкнулись с такой же проблемой на MSI и уже готовим исправление.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194842</commentid>
    <comment_count>2</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2020-12-13 10:52:22 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #1)
&gt; Спасибо, мы тоже столкнулись с такой же проблемой на MSI и уже готовим
&gt; исправление.

alterator-grub надо бы тоже усовершенствовать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194843</commentid>
    <comment_count>3</comment_count>
    <who name="Anton Farygin">rider</who>
    <bug_when>2020-12-13 10:52:49 +0300</bug_when>
    <thetext>Предполагается, что нужно:
1) сделать так, что бы grub-efi при установке всегда создавал BOOT/BOOTX64.EFI
2) убрать отдельную строчку про мобильные носители из инсталятора.
3) grub-autoupdate должен обновлять BOOT/BOOTX64.EFI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194844</commentid>
    <comment_count>4</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2020-12-13 11:04:32 +0300</bug_when>
    <thetext>(Ответ для Anton Farygin на комментарий #3)
&gt; Предполагается, что нужно:
&gt; 1) сделать так, что бы grub-efi при установке всегда создавал
&gt; BOOT/BOOTX64.EFI

Т.е. в nvram никогда не лезть? Или делать это в случае неудачи с записью в nvram?

&gt; 2) убрать отдельную строчку про мобильные носители из инсталятора.

тогда другие пункты тоже излишни

&gt; 3) grub-autoupdate должен обновлять BOOT/BOOTX64.EFI

Замечательно.

И ещё до кучи. Нужно:

1) При ручной разбивке не пускать далее, пока точка монтирования /boot/efi не будет создана при загрузке в режиме UEFI

2) Не показывать в alterator-grub пункты установить на Жёсткий диск и разделы в режиме efi. Пользователи путаются.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194845</commentid>
    <comment_count>5</comment_count>
    <who name="Николай Костригин">nickel</who>
    <bug_when>2020-12-13 12:44:14 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #4)
&gt; (Ответ для Anton Farygin на комментарий #3)
&gt; &gt; Предполагается, что нужно:
&gt; &gt; 1) сделать так, что бы grub-efi при установке всегда создавал
&gt; &gt; BOOT/BOOTX64.EFI
&gt; 
&gt; Т.е. в nvram никогда не лезть? Или делать это в случае неудачи с записью в
&gt; nvram?

По моим наблюдениям наличие EFI\BOOT\BOOTX64.EFI является, своего рода костылем, с которым эти новые EFI-firmware не удаляют созданную в nvram загрузочную запись.
Как только появляется эта запись, которая сама по себе недостаточна, перестает исчезать при перезагрузке основная запись о загрузчике в EFI\altlinux\SHIMX64.EFI (их становится 2: &quot;altlinux&quot; и UEFI OS )

Таким образом описанный Антоном сценарий является необходимым и достаточным на данном этапе понимания проблемы: 
(Ответ для Anton Farygin на комментарий #3)
&gt; Предполагается, что нужно:
&gt; 1) сделать так, что бы grub-efi при установке всегда создавал
&gt; BOOT/BOOTX64.EFI
&gt; 2) убрать отдельную строчку про мобильные носители из инсталятора.
&gt; 3) grub-autoupdate должен обновлять BOOT/BOOTX64.EFI

До опубликования изменений в grub-efi и alterator-grub можно пользоваться следующим сценарием в установщике:
1. EFI (для съемных носителей)
2. возврат на предыдущий шаг установки
3. EFI (рекомендуемый)

После этого, в результате перезагрузки, созданная загрузочная запись altlinux не должна исчезать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195423</commentid>
    <comment_count>6</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2021-01-15 11:43:32 +0300</bug_when>
    <thetext>grub-2.04-alt2 -&gt; sisyphus:

 Fri Dec 25 2020 Nikolai Kostrigin &lt;nickel@altlinux&gt; 2.04-alt2
 - grub-install: add workaround for malformed EFI-firmware implementations
   (closes: #39432)
   + add debian-grub-install-removable-shim patch
   + add debian-grub-install-extra-removable patch
   + add alt-grub-install-no-fallback-for-removable patch
 - grub-efi-autoupdate: use grub-install --force-extra-removable by default</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>