Добрый день. Иногда remove-old-kernels не предлагает оставить ни одной резервной версии ядер. Примеры: 1. ># remove-old-kernels >Currently booted kernel package: kernel-image-un-def-6.1.131-alt1 >Backup kernel is the same as booted kernel (uptime 14 days). >Keeping this kernel (with the reason why): > kernel-image-un-def-6.1.131-alt1.x86_64 (latest for un-def, currently booted) > >Will be removing this kernel: > kernel-image-un-def-6.1.121-alt1.x86_64 > >Confirm uninstall action for this kernel [Y/n]? n 2. ># remove-old-kernels >Currently booted kernel package: kernel-image-un-def-6.1.131-alt1 >Warning: Backup kernel is not determined. >Keeping this kernel (with the reason why): > kernel-image-un-def-6.1.131-alt1.x86_64 (latest for un-def, currently booted) > >Will be removing these 4 kernels: > kernel-image-un-def-6.1.79-alt1.x86_64 > kernel-image-un-def-6.1.99-alt1.x86_64 > kernel-image-un-def-6.1.112-alt1.x86_64 > kernel-image-un-def-6.1.121-alt1.x86_64 > >Confirm uninstall action for these 4 kernels [Y/n]? Было бы лучше, что если не удается вычислить бекапное ядро (Warning: Backup kernel is not determined), то оставлялось бы просто предпоследнее, не загруженное. Для удаления всех ядер, если кому надо, всегда есть ключик: -B, --no-backup Disable logic which keeps backup kernel (i.e. remove it too).
Или если вычисляется, что версия backup==booted, то также лучше оставлять предпоследнее, не загруженное. (Backup kernel is the same as booted kernel (uptime 14 days).)
Дело в том что "предпоследние" ядра -- не резервные. Резервное ядро - которое было успешно загружено и up в течении суток и более.
Виталий, выскажу свои мысли. По первому примеру: ># last -a reboot >reboot system boot Tue Apr 1 13:29 - 08:19 (14+18:49) 6.1.131-un-def-alt1 >reboot system boot Tue Apr 1 13:24 - 13:29 (00:04) 6.1.121-un-def-alt1 >reboot system boot Tue Feb 4 12:12 - 13:22 (56+01:10) 6.1.121-un-def-alt1 >reboot system boot Mon Jan 27 14:25 - 12:11 (7+21:46) 6.1.121-un-def-alt1 >reboot system boot Tue Jan 21 13:39 - 14:25 (6+00:46) 6.1.121-un-def-alt1 Но в good_kernel попадает текущее ядро, так как у него больше 1 дня аптайм: ># good_kernel=$(LC_ALL=C last -a reboot | awk '$ 10 ~ /+/ {print $10,$11; exit }') ># echo $good_kernel >(>14+18:51) 6.1.131-un-def-alt1 В таком варианте лучше бы искать другое ядро, кроме текущего, у которого аптайм более суток. По второму примеру в логах вообще только одно ядро, так как на сервере включен расширенный аудит, и логи забиваются этим аудитом (вычищая записи с reboot), хотя по аптайму ядер там примерно также как с предыдущим примером: ># last -a reboot >reboot system boot Tue Apr 15 09:03 - 08:19 (23:16) 6.1.131-un-def-alt1 И тогда remove-old-kernels не предлагает вообще ни одного запасного ядра. Понятно, что лучший вариант, оставлять ядро, у которого аптайм >1 дня, но в случае, если таких не нашлось, как запасной вариант оставлять хотя бы предпоследнее. Лучше иметь хоть одно запасное ядро, чем вообще не иметь никаких.
eepm-3.64.71-alt1 -> sisyphus: Wed Oct 21 2026 Ivan Mazhukin <vanomj@altlinux> 3.64.71-alt1 - epm play whatsie: add missing Qt WebChannel dependency (eterbug #17865) - epm play openshot: fix repack (eterbug #17865) - epm install: fail if task repo is not available instead of installing packages from system repos - epm print binpkgfilelist: return real file names and compare sourcerpm exactly (eterbug #19698) - epm repo set: install curl before removing repos for dnf on ALT (needed to download mirror key) - epm update: check latest EPM version in Korinf directly, app-versions as fallback - epm release-upgrade: suggest 'epm release-upgrade TO' after failed upgrade, explain rpm disk space overestimation on big block fs (ZFS) - epm update-kernel: fail if initrd for the new kernel is not created (ALT bug 61092) - epm update-kernel: install explicitly requested kernel (-t/-r) even if no kernels are installed - epm update-kernel: compare kernel versions without flavour when searching the next flavour (ALT bug 51945) - epm remove-old-kernels: do not take the booted kernel as backup, keep the previous kernel if backup is not determined (ALT bug 53849) - epm remove-old-kernels: remove only the kernels listed in the command line (ALT bug 55852) - epm update-kernel: install modules installed for the booted kernel, not for older kernels of the flavour (ALT bug 29408) - epm remove-old-kernels: accept listed kernels with arch suffix (rpm -q output) - epm upgrade: use common task install code with epm install (task repos for dnf, TASK/pkg syntax) - epm install: support name=version for yum and dnf (exp_with_rpm_version, shared with update-kernel) - epm-sh-functions: add sudocmd_dnf (--assumeno in dry run mode, ignore its error), use it in install/upgrade/remove/autoremove/dedup - epm-sh-altlinux: add __alt_has_installed_kernels, use it in update-kernel and remove-old-kernels - epm install: drop get_current_kernel_flavour, use __ak_flavour_from_release for kernel module flavour - epm update-kernel: add --set-default to make an installed kernel default for boot (ALT bug 38888) - makefile: keep symlinks (play.d aliases) on install instead of copying targets - epm play: add epic-games-launcher (Epic Games Launcher, official AppImage) - tests: install curl and gettext explicitly in test_all.sh - epm-query: add resolve_installed_packages (names, virtual names, files; several providers after confirmation like dnf) - epm installed: add --resolve to print installed package names for package names, virtual names or files - epm mark: use resolve_installed_packages, ask before marking all providers of a virtual name (marked all silently before) - epm qf: retry usrmerged path for explicit file (dpkg knows only /usr/bin/bash), return dpkg -S error, skip diversions and split several owners - epm-query: resolve file paths to their owner packages via epm qf code (works on deb, uses link target for unowned symlinks) - epm: do not resolve file arguments with realpath (changed the owner of /bin/sh in queries, partially reverts 7b7b2f444) - epm install/upgrade: do not drop plain package names given together with task packages (installed from the repos) - distr_info: detect Void Linux by os-release (NAME=Void, vendor void) - epm repo enable/disable: do not require root when EPM_APT_SOURCES_ROOT or EPM_APT_SOURCES_LIST is set - epm full-upgrade: do not hide output of eepm package update - epm update: show commands and set timeouts for network requests when checking for the latest epm version - epm play orca-slicer: switch to OrcaSlicer/OrcaSlicer repo and new AppImage names (was stuck on old release), add aarch64 - epm play: add qidistudio (QIDI Studio, slicer for QIDI 3D printers) - epm play photosuite: remove unavailable application (eterbug #17865) - epm play zcode-desktop: fix package name (eterbug #17865) - epm play waywallen: fix repack (eterbug #17865) - epm play: add Millennium - epm play orca-slicer: support old AppImage names for versions up to 2.2.0 (app-versions still has 2.2.0) - epm play: add vtcode (VT Code, Rust terminal coding agent) - epm play: add activinspire (Promethean ActivInspire for interactive whiteboards) - epm play activinspire: install Russian help and shared resources - repack: scan lib requires of files with spaces in path (/opt/SMART Technologies) - epm play: add smart-product-drivers (SMART Board drivers, eterbug #19724)
> eepm-3.64.71-alt1 -> sisyphus: Не думаю, что исправление eepm может как-то повлиять на работу update-kernel.
update-kernel-1.25-alt1 -> sisyphus: Tue Oct 20 2026 Vitaly Lipatov <lav@altlinux.ru> 1.25-alt1 - Fix update-kernel to select the next numeric flavour by kernel version, not by uname with the flavour name (closes: #51945). - Call ldconfig by full path in update-kernel (closes: #40428). - Install kernel headers of the selected build in update-kernel when they are in RPM::Allow-Duplicated (closes: #36936). - Take release files into account in the update-kernel APT database age check, apt-get update does not rewrite unchanged pkglists. - Keep the previous kernel with uptime of more than a day as the backup in remove-old-kernels when the booted kernel has it too (closes: #53849). - Allow to list kernels to remove on the remove-old-kernels command line (closes: #55852).