Обноружил при тестировании нового memtest86+ на loongarch64. При одновременном обновлении grub и memtest86+ *иногда* не обновляется /boot/grub/grub.cfg, в результате чего в меню остаётся неработующая строка от старого memtest86+
Исследовал проблему и пришёл к такому выводу: проблема в конструкции if grep [...]; then ... fi | if grep -Eqs [...]; then ... fi `grep -Eqs [...]` выходит, как только обнаруживает match; если первый grep при этом продолжает писать, он получает SIGPIPE, завершается ошибкой, и в первое условие оказыватся ложным. Упростим grub.filetrigger вот до такого: $ cat ./a.sh #!/bin/sh if grep -E '^/boot/(vmlinuz|xen|memtest)|^/usr/lib(64|)/grub'; then echo >&2 "regenerating" fi | if grep -Eqs '^/usr/lib(64|)/grub'; then echo >&2 "grub updated" fi В простейшем случае всё работает: $ echo "/usr/lib64/grub" | ./a.sh grub updated regenerating Однако можно подобрать входные данные, при которых первый grep упадёт, и regenerating выдаваться не будет. У меня на локалхосте это стабильно вот так: $ yes "/usr/lib64/grub" | head -n 100000 | ./a.sh grub updated То есть, будет ли вызван grub-mkconfig зависит от количества обновляемых пакетов и порядка, в котором имена файлов из этих пакетов подаются на вход файлтригерру. Особенно возрастают шансы воспроизвести проблему, если в одной транзакции обновляется много пакетов или большие пакеты, и grub.filetrigger должен сработать на несколько из них.
Пока сделал так: https://git.altlinux.org/people/iv/packages/grub.git?a=commitdiff;h=d458c1e4364fa8ab9b5338737952137a92f2f189 Хотя по-моему логичнее и проще сделать два отдельных файлтриггера.
grub-2.14-alt1 -> sisyphus: Fri Feb 27 2026 Egor Ignatov <egori@altlinux> 2.14-alt1 - update to grub 2.14 - add grub-efi-install utility for EFI installation with Secure Boot support and proper NVRAM management (closes: #52976) - add probe module to efi image (closes: #54496) - align with upstream usage for GRUB_CMDLINE_LINUX variable (closes: #53710) - replace 'failsafe' with 'single' default for recovery boot entries (closes: #44269) - add GRUB_BTRFS_USE_DEFAULT_SUBVOL option (closes: #56881) - new subpackage grub-common-extra (closes: #38715, #51394, #51395) - add ALT Linux distro name translation (closes: #36004) - add "UEFI Firmware settings" translation (closes: #48768) - read distro name from /etc/os-release (closes: #55546) - add btrfs savedefault support (closes: #50525) - disable savedefault for f2fs (closes: #52193) - refactor grub filetriggers (closes: #57107) - enhance grub-efi-autoupdate UX (closes: #56960)