1 (01.08.2024 17:48:14 отредактировано facebreaker)

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

+ Пример

https://snipboard.io/RkjpoS.jpg

Подскажите, как это сделать на RockyLinux?

Аннушка уже разлила масло…

2

Как то так возможно... все это делается средствами grub
Сохраняем бэкап на случай если файл получится запороть

 Консоль:
sudo cp /etc/grub.d/10_linux /etc/grub.d/10_linux.bak

Файл /etc/grub.d/10_linux отвечает за генерацию меню загрузки GRUB, в частности, добавление записей для установленных ядер Linux. В этом файле находятся скрипты, которые собирают информацию о доступных ядрах и формируют конфигурацию для отображения в меню при загрузке
 Консоль:
sudo nano /etc/grub.d/10_linux

Структура файла:
   Внутри файла вы увидите множество функций, которые ищут доступные ядра и генерируют соответствующие записи. Основные функции имеют такие названия, как:
   - linux_entry — создает запись для конкретного ядра.
   - menuentry — отвечает за отображение записи в меню GRUB

строчка для двух ядер может выглядеть так

linux_versions=( $(ls /boot/vmlinuz-* | sort -V | tail -n 2) )

Правим файл и после сохранения обычно делается команда  обновить загрузчик

 Консоль:
sudo update-grub

возможно в вашем случае команда Выше может выглядеть так:
 Консоль:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

*** Добавлено: 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

# Дополнительные настройки и пункты меню для восстановления или специальных ядер могут быть добавлены здесь