В Debian-based дистрибутивах есть такая фишка, создаются симлинки на две последние версии ядра в корне или в каталоге /boot.
"Пример"

Подскажите, как это сделать на RockyLinux?
В Debian-based дистрибутивах есть такая фишка, создаются симлинки на две последние версии ядра в корне или в каталоге /boot.

Подскажите, как это сделать на RockyLinux?
Как то так возможно... все это делается средствами grub
Сохраняем бэкап на случай если файл получится запороть
[console]sudo cp /etc/grub.d/10_linux /etc/grub.d/10_linux.bak[/console]
Файл /etc/grub.d/10_linux отвечает за генерацию меню загрузки GRUB, в частности, добавление записей для установленных ядер Linux. В этом файле находятся скрипты, которые собирают информацию о доступных ядрах и формируют конфигурацию для отображения в меню при загрузке
[console]sudo nano /etc/grub.d/10_linux[/console]
Структура файла:
Внутри файла вы увидите множество функций, которые ищут доступные ядра и генерируют соответствующие записи. Основные функции имеют такие названия, как:
- linux_entry — создает запись для конкретного ядра.
- menuentry — отвечает за отображение записи в меню GRUB
строчка для двух ядер может выглядеть так
linux_versions=( $(ls /boot/vmlinuz-* | sort -V | tail -n 2) )Правим файл и после сохранения обычно делается команда обновить загрузчик
[console]sudo update-grub[/console]
возможно в вашем случае команда Выше может выглядеть так:
[console]sudo grub2-mkconfig -o /boot/grub2/grub.cfg[/console]
Добавлено: 04.08.2024 23:51:32
Пример ниже сгенерирован нейросетью
#!/bin/sh
set -e
if [ -e /boot/grub2/grubenv ]; then
save_env=grubenv
else
save_env=""
fi
# Определяем функцию для вывода пунктов меню для ядер Linux
menu_entry() {
local version="$1"
local title="$2"
local initrd="$3"
echo " menuentry 'Linux $title' --class linux --class gnu-linux {"
echo " insmod ext2"
echo " set root='${GRUB_DEVICE}'"
echo " linux /vmlinuz-$version root=$root ro"
[ -n "$initrd" ] && echo " initrd /$initrd"
echo " }"
}
# Считаем количество доступных ядер
count=0
# Цикл по доступным ядрам Linux и генерация пунктов меню
for kernel in /boot/vmlinuz-*; do
version=$(basename "$kernel" | sed 's/^vmlinuz-//')
initrd="/boot/initramfs-$version.img"
title="$version"
if [ -f "$initrd" ]; then
# Генерируем меню только для двух последних ядер
if [ $count -lt 2 ]; then
menu_entry "$version" "$title" "$initrd"
count=$((count + 1))
fi
fi
done
# Дополнительные настройки и пункты меню для восстановления или специальных ядер могут быть добавлены здесь