Bug 40650 - При обновлении ядра не создается initrd образ
Summary: При обновлении ядра не создается initrd образ
Status: CLOSED FIXED
Alias: None
Product: Branch p9
Classification: Distributions
Component: alterator-update-kernel (show other bugs)
Version: не указана
Hardware: x86_64 Linux
: P5 normal
Assignee: Иван Савин
QA Contact: qa-p9@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-08-04 13:38 MSK by Иван Савин
Modified: 2021-08-30 18:26 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Иван Савин 2021-08-04 13:38:38 MSK
После обновления ядра при помощи alterator-update-kernel не создается initrd образ:

Совершаем изменения...
Подготовка...                           ################################# [100%]
Обновление / установка...
1: kernel-image-std-def-2:5.10.53-alt0.c9f ################################# [ 11%]
2: kernel-modules-drm-std-def-2:5.10.53-alt0.c9f ################################# [ 22%]
3: kernel-modules-drm-nouveau-std-def-2:5.10.53-alt0.c9f ################################# [ 33%]
4: kernel-modules-dm-secdel-std-def-2:1.0.7-alt2.330293.0.c9f ################################# [ 44%]
5: kernel-modules-drm-ancient-std-def-2:5.10.53-alt0.c9f ################################# [ 56%]
6: kernel-modules-ipset-std-def-7.5-alt1.330293.0.c9f ################################# [ 67%]
7: kernel-modules-ipt-so-std-def-1.0-alt6.330293.0.c9f ################################# [ 78%]
8: kernel-modules-ndpi-std-def-3.2-alt1.330293.0.c9f ################################# [ 89%]
9: kernel-modules-tripso-std-def-1.1-alt1.330293.0.c9f ################################# [100%]
make-initrd: /tmp: Unable to check executable bit
make-initrd: Perhaps 'noexec' mount option used?
Генерируется файл настройки grub …

Если обновлять ядро с помощью скрипта update-kernel, то образ initrd генерируется. 

Условия воспроизведения:

[root@c9f1-20201202-desktop-01-x86-64 ~]# cat /etc/fstab 
proc        /proc            proc    nosuid,noexec,gid=proc        0 0
devpts        /dev/pts        devpts    nosuid,noexec,gid=tty,mode=620    0 0
tmpfs        /tmp            tmpfs    noexec,nosuid            0 0
UUID=55f8a03b-18f0-4dc1-8d89-0063db20f226    /    ext4    relatime    11
UUID=34331fca-d0b1-479f-94f8-83ff196418fe    /home    ext4    noexec,nosuid,relatime    1    2
/dev/sr0    /media/ALTLinux    udf,iso9660    ro,noauto,user,utf8,nofail,comment=x-gvfs-show    0 0
tmpfs    /tmp/.private/root    tmpfs    defaults    0    0
mirror.ipa.basealt.ru:/ftppool/private /mnt/repo/ nfs ro,nolock,x-systemd.automount 1 0

[root~]#env
LANG=ru_RU.UTF-8
LESS=-MM
DISPLAY=:0
HOSTNAME=test
USERNAME=root
JAVA_HOME=/usr/lib/jvm/jre
LESS_TERMCAP_so=
LESS_TERMCAP_se=
USER=root
ENV=/root/.bashrc
INPUTRC=/etc/inputrc
PWD=/usr/lib/alterator/backend3
SSH_ASKPASS=/usr/lib/openssh/ssh-askpass
HOME=/root
TMP=/tmp/.private/root
LESS_TERMCAP_mb=
LESS_TERMCAP_md=
LESS_TERMCAP_me=
TMPDIR=/tmp/.private/root
SYSTEMD_PAGER=/usr/bin/less -FR
MAIL=/var/mail/root
LESSKEY=/etc/.less
SHELL=/bin/bash
TERM=xterm-256color
SHLVL=1
G_FILENAME_ENCODING=utf8
LOGNAME=root
XAUTHORITY=/root/.xauthQOmP28
LESS_TERMCAP_ue=
LESS_TERMCAP_us=
PATH=/root/bin:/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin
G_BROKEN_FILENAMES=1
HISTSIZE=999
HISTFILESIZE=9999
LESSOPEN=|/usr/share/less/lesspipe.sh %s
_=/usr/bin/env
OLDPWD=/root


Переменные окружения из скрипта (backend'а alterator):
PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin
ALTERATOR_DATADIR=/usr/share/alterator
LISTEN_FDS=1
LANG=ru_RU.UTF-8
INVOCATION_ID=184c1a33b9d04ef1ba3e645c15a73aa4
LISTEN_PID=5965
PWD=/
JOURNAL_STREAM=9:114764
ALTERATOR_LIBDIR=/usr/lib/alterator
SHLVL=1
LISTEN_FDNAMES=alteratord.socket
_=/usr/bin/env


Во втором случае отсутствуют TMP=/tmp/.private/root и TMPDIR=/tmp/.private/root

Обсуждение похожего бага на форуме:https://forum.altlinux.org/index.php?topic=38262.0
Comment 1 Anton V. Boyarshinov 2021-08-18 10:54:07 MSK
Проблема, очевидно, в том, что у настоящего root $TMP ведёт в /tmp/.private/root , а у альтератора -- в /tmp
Вообще говоря, альтератор может решать эту проблему, смонтировав собственную tmpfs под свои нужны, недоступную для простых пользователей.
Это можно сделать и в альтераторе глобально (при старте создавать такую tmpfs и экспортировать $TMP для бэкжндов), так и локально в пострадавшем модуле: смонтировать tmpfs перед операцией экспортировать путь к ней в переменную, выполнить операцию, отмонтировать tmpfs
Comment 2 Repository Robot 2021-08-30 18:26:44 MSK
alterator-update-kernel-1.4-alt4 -> sisyphus:

 Fri Aug 27 2021 Ivan Savin <svn17@altlinux> 1.4-alt4
 - Add the creation of tmpfs for make-initrd (env TMPDIR) when installing
   the kernel. (Closes: 40650)