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

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

    <bug>
          <bug_id>60808</bug_id>
          
          <creation_ts>2026-10-05 11:55:49 +0300</creation_ts>
          <short_desc>bootctl status возвращает 1 при отсутствии /boot/efi/loader/random-seed</short_desc>
          <delta_ts>2026-10-06 19:31:31 +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>systemd</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>NOTABUG</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="Vladislav Glinkin">glinkinvd</reporter>
          <assigned_to name="Alexey Shabalin">shaba</assigned_to>
          <cc>arseny</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>301198</commentid>
    <comment_count>0</comment_count>
    <who name="Vladislav Glinkin">glinkinvd</who>
    <bug_when>2026-10-05 11:55:49 +0300</bug_when>
    <thetext>Версия пакета: systemd-260.4-alt2

---

На EFI-системе с GRUB команда `bootctl status` выводит сведения о загрузке, но завершается с кодом 1, если на EFI System Partition (ESP) отсутствует `loader/random-seed`. В секции Random Seed выводится `Exists: no`, без сообщения об ошибке доступа к этому файлу.

Это регрессия относительно `systemd-257.9-alt1` из p11: при таком же отсутствии файла команда возвращает 0.

`loader/random-seed` на ESP используется механизмом передачи случайных данных загрузчика systemd-boot. На исследованных системах используется GRUB, а systemd-boot не установлен, поэтому отсутствие этого файла штатно. 

---

Шаги воспроизведения:
# rpm -q systemd
# test -d /sys/firmware/efi &amp;&amp; echo &apos;EFI boot&apos;
# findmnt /boot/efi
# stat /boot/efi/loader/random-seed
# LC_ALL=C SYSTEMD_COLORS=0 bootctl --no-pager status
# printf &apos;exit status: %s\n&apos; &quot;$?&quot;

---

Фактический результат:
Random Seed:
 System Token: not set
       Exists: no

...
Boot Loader Entry Locations:
          ESP: /boot/efi (..., $BOOT)
       config: /boot/efi//loader/loader.conf: No such file or directory
        token: altlinux

0 entries, no entry could be determined as default.
exit status: 1

---

Поведение вызвано коммитом https://github.com/systemd/systemd/commit/f90efd2d13aac38417b2e0e08068fc0fba2da72a.

В src/bootctl/bootctl-status.c, verb_status(), строки 590–594:
```
r = access(p, F_OK);
if (r &lt; 0 &amp;&amp; errno != ENOENT)
        printf(&quot;       Exists: Can&apos;t access %s (%m)\n&quot;, p);
else
        printf(&quot;       Exists: %s\n&quot;, yes_no(r &gt;= 0));
```
Переменная r используется для итогового результата команды. При отсутствии файла access() возвращает -1 с errno=ENOENT. Ошибка считается обычным отсутствием файла при формировании вывода, но отрицательное значение остаётся в r. Последующие вызовы через RET_GATHER сохраняют уже отрицательный результат; в строке 621 функция возвращает r.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301368</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2026-10-06 19:31:31 +0300</bug_when>
    <thetext>Я не знаю зачем запускать bootctl на системах с grub. Все равно ничего полезного он не покажет.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>