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

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

    <bug>
          <bug_id>61092</bug_id>
          
          <creation_ts>2026-10-16 10:10:44 +0300</creation_ts>
          <short_desc>update-kernel сообщает об успехе (Done, код 0), когда make-initrd для нового ядра завершился ошибкой: ядро без initrd попадает в меню GRUB</short_desc>
          <delta_ts>2026-10-16 11:33:12 +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>update-kernel</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>31027</dup_id>
          
          <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="Vera Blagoveschenskaya">vercha</reporter>
          <assigned_to name="Ivan A. Melnikov">iv</assigned_to>
          <cc>antohami</cc>
    
    <cc>boyarsh</cc>
    
    <cc>evg</cc>
    
    <cc>lav</cc>
    
    <cc>mike</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>302576</commentid>
    <comment_count>0</comment_count>
    <who name="Vera Blagoveschenskaya">vercha</who>
    <bug_when>2026-10-16 10:10:44 +0300</bug_when>
    <thetext>Пакеты: update-kernel-1.24-alt1, make-initrd-2.60.0-alt1, bootloader-utils-0.5.5-alt1 (Sisyphus); то же в p11 с make-initrd-2.59.0-alt1.

Если при установке нового ядра make-initrd завершается ошибкой, update-kernel всё равно пишет «Done.» и возвращает 0. initrd для нового ядра не создаётся, а в grub.cfg добавляется пункт с этим ядром без строки initrd.

Шаги воспроизведения (сбой make-initrd имитируется снятием бита исполнения с одной из его утилит):
1. Система на Sisyphus, в репозитории есть ядро новее установленного (у меня установлено 6.12.111, в репозитории 6.12.112).
2. # chmod a-x /usr/share/make-initrd/tools/msg-timestamp
3. # update-kernel -y; echo EXIT=$?
4. # ls -l /boot; grep -nE &apos;menuentry|linux|initrd&apos; /boot/grub/grub.cfg

Фактический результат:
1: kernel-image-6.12-6.12.112-alt1      ################################# [ 33%]
...
/bin/sh: line 1: /usr/share/make-initrd/tools/msg-timestamp: Permission denied
make[1]: *** [/usr/share/make-initrd/mk/main.mk:68: process-config] Error 126
make: *** [/usr/share/make-initrd/mk/main.mk:59: all] Error 1
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.12.112-6.12-alt1
Found linux image: /boot/vmlinuz-6.12.111-6.12-alt1
Found initrd image: /boot/initrd-6.12.111-6.12-alt1.img
...
Done.
EXIT=0

- /boot/initrd-6.12.112-6.12-alt1.img нет; /boot/vmlinuz и /boot/initrd.img остались на 6.12.111.
- В grub.cfg добавлены пункты «..., 6.12.112-6.12-alt1» и «... (recovery)»: в них есть строка linux, но нет строки initrd, и стоит root=/dev/sda2 вместо root=UUID=... как у остальных пунктов.

Ожидаемый результат:
Если initrd для нового ядра не создан, update-kernel сообщает об ошибке и возвращает ненулевой код. Ядро без initrd не должно выглядеть установленным и готовым к загрузке.

Для сравнения: если вернуть бит исполнения (chmod a+x), удалить ядро 6.12.112 и снова запустить update-kernel -y, initrd-6.12.112-6.12-alt1.img создаётся («Image is saved as ...»), ссылки /boot/vmlinuz и /boot/initrd.img переключаются на новое ядро, а в grub.cfg появляется строка initrd и root=UUID=.... Сам make-initrd -k 6.12.112-6.12-alt1 при той же поломке возвращает 2, то есть ошибку он сообщает.

Насколько я вижу, ошибка теряется так: initrd собирает rpm-filetrigger /usr/lib/rpm/boot_kernel.filetrigger (bootloader-utils) через /sbin/installkernel. Неуспешный filetrigger не меняет код возврата apt-get, а update-kernel проверяет только код apt-get install (update-kernel, строка 745). Возможное исправление: после установки проверять, что /boot/initrd-&lt;версия&gt;.img нового ядра существует, а если его нет, сообщать об ошибке.

Проверила в тестовом окружении: Альт Сервер 11, обновлённый до Sisyphus на 15.10.2026, и то же для p11 (6.12.74 → 6.12.112). Воспроизводится 2 раза из 2 в каждой ветке.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302588</commentid>
    <comment_count>1</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2026-10-16 11:23:51 +0300</bug_when>
    <thetext>&gt; Если при установке нового ядра make-initrd завершается ошибкой, update-kernel всё равно пишет «Done.» и возвращает 0.

Потому что так поступают apt и rpm.

Концептуальный вопрос: должна ли установка пакета kernel-image-* завершаться с exit code 0 со стороны apt, если filetrigger не смог создать initrd? Я считаю, что нет, но может есть возражения?

&gt; initrd для нового ядра не создаётся, а в grub.cfg добавляется пункт с этим ядром без строки initrd.

Похоже на баг bootloader-utils.

See also: #31027.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302590</commentid>
    <comment_count>2</comment_count>
    <who name="Ivan A. Melnikov">iv</who>
    <bug_when>2026-10-16 11:27:42 +0300</bug_when>
    <thetext>Я подумал ещё, и вот мой вердикт: #31027 это в точности та же самая проблема.

*** This bug has been marked as a duplicate of bug 31027 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302593</commentid>
    <comment_count>3</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2026-10-16 11:33:12 +0300</bug_when>
    <thetext>(Ответ для Ivan A. Melnikov на комментарий #2)
&gt; Я подумал ещё, и вот мой вердикт: #31027 это в точности та же самая проблема.
&gt; 
&gt; *** Эта ошибка отмечена как дубликат ошибки 31027 ***

Спасибо за разбор!</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>