Здравствуйте, коллеги. Столкнулся недавно с необходимостью смены ядра загрузки по умолчанию для альтового первого пункта меню grub. Ядра стоят оба un-def и std-def. Оба актуальные, причем un-def было установлено позже, т.е оно и было ядром по умолчанию. В связи с этим предлагаю добавить в утилиту update-kernel "фичу", например -d, --default установка ядра по умолчанию. К сожалению знаний не хватает сделать это самому.
Забыл добавить эта "фича" не должна заново качать ядра, модули, а просто устанавливать из этих двух, в моём случае, установленных ядер, одно, по умолчанию.
update-kernel -t std-def -f Разве не оно?
Антон, update-kernel -f -t std-def тоже не помогло. Умолчальным осталось un-def. Помогло apt-get remove kernel-image-std-def и, следом update-kernel -t std-def Но это излишние операции с удалением, установкой пакетов. Надо выделить функционал из этих манипуляций и оформить как фичу к update-kernel.
Управление меню grub, конечно, слабо относится к update-kernel, но вообще такая ручка для выбора очень даже интересна.
Используйте команду installkernel Например: installkernel 5.7.19-un-def-alt1
installkernel конечно подходит, и пакеты вроде бы не скачивает. Но перегенеривает initrd и производит упаковку образа. Это не слишком ли для простой смены ядра по умолчанию? Я конечно не специалист в этом, но есть сомнения. Мб из скрипта installkernel пакета bootloader-utils вытянуть некую функциональность, урезать её и добавить к update-kernel фичей -d ?
JFYI. На разных архитектурах, на разных системах загрузки (bios/efi) есть разные варианты переключения и некоторые из них не работают. Так что задача не тривиальная. Сколько я не пользовался использовать (там где было нужно) grub-set-default и grub-reboot ни разу они у меня не сработали как нужно (а у других людей на других системах якобы работали).
А может обернуть команду installkernel пока нет иного способа? На вариант наличия двух ядер. Например: update-kernel -d std-def и будет выбрано ядро std-def.
installkernel, на сколько я помню, выставляет симлинк vmlinuz (например, на vmlinuz-5.4.61-std-def-alt1), но если у вас в grub уже изменено умолчание с vmlinuz на что-то другое, то эта смена симлинка не окажет эффекта. Но, я не изучал эту тему глубоко - просто наблюдения с точки зрения очередного пользователя, для того кто будет это реализовывать (если будет).
Тут много вариантов получается: 1 - какой загрузчик используется (grub, lilo, extlinux ...) Grub2 крнечно по-умолчанию, но это не единственный вариант. 2 - какой образ или какое поведение предусмотрено в конфигурационном этого файле загрузчика. Теоретически наверное, можно написать скрипт, который проверяет, что применяется grub2, затем устанавливает в /etc/sysconfig/grub2 что-то типа: ... GRUB_DEFAULT='saved' GRUB_SAVEDEFAULT=true .... (ну, или что-то другое) ну и потом вызвать installkernel А в случае, если это не grub, то просто вызвать installkernel. Но вопрос , насколько результат выполнения такого скрипта будет соответствовать тому, что ожидает пользователь. И да - этот скрипт никак не связан по смыслу с обновлением ядра (updat-kernel) PS IMHO перегенерить initrd всегда полезно, особенно если сменилось ядро или железо в компе ;-) А время это занимает немного.
pps пропустил этап инициализации конфига (ggrub-mkconfig, lilo и т.п. ) ;-)
(In reply to ruslandh from comment #10) > Тут много вариантов получается: > 1 - какой загрузчик используется (grub, lilo, extlinux ...) Grub2 крнечно > по-умолчанию, но это не единственный вариант. > 2 - какой образ или какое поведение предусмотрено в конфигурационном этого > файле загрузчика. > > Теоретически наверное, можно написать скрипт, который проверяет, что > применяется grub2, затем устанавливает в /etc/sysconfig/grub2 что-то типа: > ... > > GRUB_SAVEDEFAULT=true > .... Только как раз наоборот, false. Чтобы не менял. Но, вообще, у Grub уже есть готовый набор ручек в виде grub-set-default, grub-reboot, grub-entries: https://www.altlinux.org/Grub#Как_отучить_GRUB2_запоминать_последний_выбранный_пункт?
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. Варианты: - Не менять ядро по-умолчанию в grub при установки другого флавора - Менять ядро по-умолчанию у grub при смене ядра по-умолчанию у update-kernel - Какие-то ещё варианты ?