<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Симлинки на две последние версии ядра]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=41222</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=41222&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Симлинки на две последние версии ядра».]]></description>
		<lastBuildDate>Sun, 04 Aug 2024 20:51:32 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Симлинки на две последние версии ядра]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=472280#p472280</link>
			<description><![CDATA[<p>Как то так возможно... все это делается средствами grub<br />Сохраняем бэкап на случай если файл получится запороть<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">sudo cp /etc/grub.d/10_linux /etc/grub.d/10_linux.bak</div><br />Файл /etc/grub.d/10_linux отвечает за генерацию меню загрузки GRUB, в частности, добавление записей для установленных ядер Linux. В этом файле находятся скрипты, которые собирают информацию о доступных ядрах и формируют конфигурацию для отображения в меню при загрузке<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">sudo nano /etc/grub.d/10_linux</div><br />Структура файла:<br />&nbsp; &nbsp;Внутри файла вы увидите множество функций, которые ищут доступные ядра и генерируют соответствующие записи. Основные функции имеют такие названия, как:<br />&nbsp; &nbsp;- linux_entry — создает запись для конкретного ядра.<br />&nbsp; &nbsp;- menuentry — отвечает за отображение записи в меню GRUB</p><p>строчка для двух ядер может выглядеть так<br /></p><div class="codebox"><pre><code>linux_versions=( $(ls /boot/vmlinuz-* | sort -V | tail -n 2) )</code></pre></div><p>Правим файл и после сохранения обычно делается команда&nbsp; обновить загрузчик<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">sudo update-grub</div><br />возможно в вашем случае команда Выше может выглядеть так:<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh">sudo grub2-mkconfig -o /boot/grub2/grub.cfg</div><br /><strong>*** Добавлено: 04.08.2024 23:51:32 ***</strong></p><p>Пример ниже сгенерирован нейросетью<br /></p><div class="codebox"><pre><code>#!/bin/sh
set -e

if [ -e /boot/grub2/grubenv ]; then
  save_env=grubenv
else
  save_env=&quot;&quot;
fi

# Определяем функцию для вывода пунктов меню для ядер Linux
menu_entry() {
  local version=&quot;$1&quot;
  local title=&quot;$2&quot;
  local initrd=&quot;$3&quot;
  echo &quot;    menuentry &#039;Linux $title&#039; --class linux --class gnu-linux {&quot; 
  echo &quot;        insmod ext2&quot;
  echo &quot;        set root=&#039;${GRUB_DEVICE}&#039;&quot;
  echo &quot;        linux /vmlinuz-$version root=$root ro&quot;
  [ -n &quot;$initrd&quot; ] &amp;&amp; echo &quot;        initrd /$initrd&quot;
  echo &quot;    }&quot;
}

# Считаем количество доступных ядер
count=0

# Цикл по доступным ядрам Linux и генерация пунктов меню
for kernel in /boot/vmlinuz-*; do
  version=$(basename &quot;$kernel&quot; | sed &#039;s/^vmlinuz-//&#039;)
  initrd=&quot;/boot/initramfs-$version.img&quot;
  title=&quot;$version&quot;

  if [ -f &quot;$initrd&quot; ]; then
    # Генерируем меню только для двух последних ядер
    if [ $count -lt 2 ]; then
      menu_entry &quot;$version&quot; &quot;$title&quot; &quot;$initrd&quot;
      count=$((count + 1))
    fi
  fi
done

# Дополнительные настройки и пункты меню для восстановления или специальных ядер могут быть добавлены здесь</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (MozgFx)]]></author>
			<pubDate>Sun, 04 Aug 2024 20:51:32 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=472280#p472280</guid>
		</item>
		<item>
			<title><![CDATA[Симлинки на две последние версии ядра]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=472273#p472273</link>
			<description><![CDATA[<p>В Debian-based дистрибутивах есть такая фишка, создаются симлинки на две последние версии ядра в корне или в каталоге /boot.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Пример</div><div class="fancy_spoiler"><p><span class="postimg"><img src="https://snipboard.io/RkjpoS.jpg" alt="https://snipboard.io/RkjpoS.jpg" /></span></p></div></div><p>Подскажите, как это сделать на RockyLinux?</p>]]></description>
			<author><![CDATA[null@example.com (facebreaker)]]></author>
			<pubDate>Thu, 01 Aug 2024 14:24:26 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=472273#p472273</guid>
		</item>
	</channel>
</rss>
