From: Leonid Krivoshein <klark.devel@gmail.com> To: devel@lists.altlinux.org Subject: Re: [devel] Fwd: Политика установки и обновления grub-efi Date: Tue, 20 Feb 2024 11:39:18 +0300 Message-ID: <6e6088dc-5475-4ea2-980a-ccc973f8f2d6@gmail.com> (raw) In-Reply-To: <8b01a466-95f3-4e08-885b-b97313fdcbbb@ya.ru> On 2/20/24 08:27, Антон Мидюков wrote: > 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/ Всё это -- результат криво реализованной нами поддержки спецификации UEFI. Сравнивал от 2.5 до 2.10, как наиболее актуальных. Собственно, два разных поведения определяются пп. 3.5.1.1 и 3.5.1.2. Для увеличения надёжности (однозначности) нужно не два каталога создавать, а никогда не использовать запись в NVRAM при вызове grub-install, но делать стандартные пути на случай кривых BIOS (3.5.1.1, grub-install --removable), и одновременно использовать по умолчанию добивающую запись в NVRAM через efibootmgr, чтобы определить явно порядок загрузки, что поддерживается и верно интерпретируется на большинстве машин, желательно, во избежании сюрпризов, с предварительной очисткой NVRAM. > Второй вариант предлагать дефолтом, когда ESP раздел в RAID1 с суперблоком 0.9 или 1.0. Потому что: > - grub создать записи в nvram для каждого диска у нас в инсталляторе не может, выдаёт ошибку > - после замены диска потребуется создавать запись в NVRAM для заменённого диска grub-install --removable и добивающая запись в efibootmgr обе проблемы решают, т.к. первый не пишет и не спотыкается, а второй может быть вызван отдельно для каждого диска RAID-1/multipath. И я проверял с RAID-1 на альте -- при создании записи в NVRAM и удалении диска, вставки нового, запись не будет удалена, есть видео всего процесса. > Также я предлагаю сделать опцией поддержку Secure Boot. У shim могут быть проблемы с загрузкой на некоторых UEFI, поэтому было бы не плохо иметь возможность при установке его поддержку выключить, сняв галочку. Отличная идея, стоит добавить в предлагаемую политику. Больше всего кривизны как раз с не выключенным SB. > >>> >>> -------- 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 -- WBR, Leonid Krivoshein.
next prev parent reply other threads:[~2024-02-20 8:39 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-02-19 23:58 ` Leonid Krivoshein 2024-02-20 4:45 ` Anton Farygin 2024-02-20 5:27 ` Антон Мидюков 2024-02-20 8:39 ` Leonid Krivoshein [this message] 2024-02-20 8:18 ` Leonid Krivoshein 2024-02-20 5:54 ` Ivan A. Melnikov 2024-02-20 6:27 ` Антон Мидюков 2024-02-20 8:47 ` Leonid Krivoshein
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=6e6088dc-5475-4ea2-980a-ccc973f8f2d6@gmail.com \ --to=klark.devel@gmail.com \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git