[devel] Fwd: Политика установки и обновления grub-efi

Антон Мидюков midyukov-anton на ya.ru
Вт Фев 20 08:27:29 MSK 2024


20.02.2024 11:45, Anton Farygin пишет:
> On 20.02.2024 02:58, Leonid Krivoshein wrote:
>> Для обсуждения. С небольшими добавками...
>>
>> п.1 -- только intel.
>>
>> п.6 -- при обновлении grub-efi NVRAM вообще не надо трогать, за исключением ситуации отсутсвия в ней записи $EFI_DISTRIBUTOR, если мы её создавали при установке. В этом случае её надо создать заново.
> 
> nvram надо трогать иногда, когда меняются правила работы с nvram.
> 
> Пункт 1 - ты предлагаешь конвертировать NTFS в VFAT ? Думаю что это плохая идея
> 
> Пункт 2 - вычищать раздел ESP нельзя, мы должны сосуществовать с другими системами.
> 
> И из предложенного непонятно что делать с кривыми BIOS'ами, которые трактуют установленные системы в режиме removable как хотят.
> 
> С записью nvram хотя бы есть шанс ими управлять
> 

На некоторых кривых UEFI мы сейчас получаем следующее.
Мы устанавливаем в каталог EFI/altlinux/ shim + grub + grub.cfg и в дополнение к этому в EFI/BOOT/ shim + grub без grub.cfg
На кривом UEFI пропадает запись altlinux, а наш EFI/BOOT/ определяется как некий Linpus, который грузится, но не находит grub.cfg, поэтому выпадает в grub-rescue.
Выход мне видится в том, чтобы в параллель ставить EFI/altlinux/ shim + grub + grub.cfg и EFI/BOOT/ shim + grub + grub.cfg
Тогда EFI/BOOT/ будет запасным вариантом полноценным. Мне изначально было непонятно почему мы сделали так, как сделали. Скорее всего изначально grub.cfg встраивался в неподписанный grub.
Но теперь то он подписанный всегда и ему нужен внешний grub.cfg

Таким образом, я предложил бы оставить два варианта установки:
- EFI/altlinux/ + EFI/BOOT/ (отличие от сейчас, что в EFI/BOOT создаётся всегда grub.cfg)
- EFI/BOOT/

Второй вариант предлагать дефолтом, когда ESP раздел в RAID1 с суперблоком 0.9 или 1.0. Потому что:
- grub создать записи в nvram для каждого диска у нас в инсталляторе не может, выдаёт ошибку
- после замены диска потребуется создавать запись в NVRAM для заменённого диска
 
Также я предлагаю сделать опцией поддержку Secure Boot. У shim могут быть проблемы с загрузкой на некоторых UEFI, поэтому было бы не плохо иметь возможность при установке его поддержку выключить, сняв галочку.

>>
>>
>> -------- Forwarded Message --------
>> Subject:     [Bug 41959] grub-efi-autoupdate для removable
>> Date:     Mon, 19 Feb 2024 22:56:54 +0000
>> From:     Leonid Krivoshein (ALT Linux Bugzilla) <bugzilla-daemon на altlinux.ru>
>> To:     klark на altlinux.org
>>
>>
>>
>> https://bugzilla.altlinux.org/41959
>> Component: Sisyphus/grub-efi
>>
>> --- #21 from Leonid Krivoshein <klark на altlinux.org> ---
>> grub-efi-autoupdate для removable -- лишь часть политики установки и обновления grub-efi, которую имеет смысл поменять накануне 11.0. Детали ("зачем, почему?") можно обсудить в devel@, тут коротко предлагаю такой план:
>>
>> 1. На шагах разметки и установки загрузчика имеющийся ESP проверяется на предмет не только FAT, но и NTFS. Последнее нарушает стандарт и требует обязательного конвертирования в FAT.
>>
>> 2. Нужно проверять, есть ли раздел ESP. Если нет, только тогда его создаём. А если есть, я бы очищал его полностью. Но можно спросить пользователя, нужно ли его сохранить? По мне, так лучше его молча бэкапить.
>>
>> 3. Ориентироваться на EFI/<efi_distributor> по умолчанию не следует, если только пользователь об этом явно не попросит. Очень сильно этого могут захотеть лишь те, кто, во-первых, понимает, зачем им это надо, во-вторых, используют несколько ОС на машине, в-третьих, знает, что их UEFI Firmware очень хорошо справляется с задачей управляения записями NVRAM, включая вывод более удобных меню, нежели это делает grub-efi.
>>
>> 4. Исходя из вышесказанного, вариант установки grub-efi по умолчанию только в EFI/BOOT, т.е. как в сабже c --removable, как у всех Linux-дистрибутивов и главное, как у Windows. С полной перезаписью того, что там есть. Не важно, наше оно, чьё-то ещё или ядро EFI STUB, ставится с нуля или обновляется, grub-efi сам найдёт всё, что было на диске, и сделает своё меню, обычно более юзабельное, чем во встроенной firmware.
>>
>> 5. Значимые переменные конфигурации grub-efi хранятся в /etc/sysconfig/grub2 (grub-common), наши grub'овские скрипты патчены под него всё равно, так что не надо придумывать никаких контрольных сумм. Всё, что мы установили, с какими параметрами, сохраняется тут, и если включено автообновление (по умолчанию д.б. включено), то берётся снова отсюда. grub-efi не всегда реально удалить из-за цепочки зависимостей, так что любителям под себя перезаточить содержимое /EFI/BOOT -- велкам на ВиКи и руками лопатить данный конфиг.
>>
>>
> 
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel

-- 
С уважением, Антон Мидюков <antohami на altlinux.org>



Подробная информация о списке рассылки Devel