<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>38888</bug_id>
          
          <creation_ts>2020-09-03 17:37:39 +0300</creation_ts>
          <short_desc>Просьба по добавлению опции установки ядра по умолчанию для систем с несколькими ядрами</short_desc>
          <delta_ts>2022-03-17 08:46:28 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>update-kernel</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Евгений Кухтинов">kuhtinov_ev</reporter>
          <assigned_to name="Vitaly Chikunov">vt</assigned_to>
          <cc>aen</cc>
    
    <cc>antohami</cc>
    
    <cc>asy</cc>
    
    <cc>boyarsh</cc>
    
    <cc>evg</cc>
    
    <cc>kuhtinov_ev</cc>
    
    <cc>lav</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>ruslandh</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>192207</commentid>
    <comment_count>0</comment_count>
    <who name="Евгений Кухтинов">kuhtinov_ev</who>
    <bug_when>2020-09-03 17:37:39 +0300</bug_when>
    <thetext>Здравствуйте, коллеги.

Столкнулся недавно с необходимостью смены ядра загрузки по умолчанию для альтового первого пункта меню grub.
Ядра стоят оба un-def и std-def. Оба актуальные, причем un-def было установлено позже, т.е оно и было ядром по умолчанию.

В связи с этим предлагаю добавить в утилиту update-kernel &quot;фичу&quot;, например -d, --default установка ядра по умолчанию.

К сожалению знаний не хватает сделать это самому.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192208</commentid>
    <comment_count>1</comment_count>
    <who name="Евгений Кухтинов">kuhtinov_ev</who>
    <bug_when>2020-09-03 17:42:31 +0300</bug_when>
    <thetext>Забыл добавить эта &quot;фича&quot; не должна заново качать ядра, модули, а просто устанавливать из этих двух, в моём случае, установленных ядер, одно, по умолчанию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192209</commentid>
    <comment_count>2</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2020-09-03 17:46:04 +0300</bug_when>
    <thetext>update-kernel -t std-def -f

Разве не оно?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192211</commentid>
    <comment_count>3</comment_count>
    <who name="Евгений Кухтинов">kuhtinov_ev</who>
    <bug_when>2020-09-03 18:13:31 +0300</bug_when>
    <thetext>Антон, update-kernel -f -t std-def тоже не помогло. Умолчальным осталось un-def. 
Помогло apt-get remove kernel-image-std-def и, следом update-kernel -t std-def
Но это излишние операции с удалением, установкой пакетов. Надо выделить функционал из этих манипуляций и оформить как фичу к update-kernel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192213</commentid>
    <comment_count>4</comment_count>
    <who name="Vitaly Lipatov">lav</who>
    <bug_when>2020-09-03 20:15:18 +0300</bug_when>
    <thetext>Управление меню grub, конечно, слабо относится к update-kernel, но вообще такая ручка для выбора очень даже интересна.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192214</commentid>
    <comment_count>5</comment_count>
    <who name="ruslandh">ruslandh</who>
    <bug_when>2020-09-03 20:40:28 +0300</bug_when>
    <thetext>Используйте команду 

installkernel

Например:

installkernel 5.7.19-un-def-alt1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192221</commentid>
    <comment_count>6</comment_count>
    <who name="Евгений Кухтинов">kuhtinov_ev</who>
    <bug_when>2020-09-04 06:01:52 +0300</bug_when>
    <thetext>installkernel конечно подходит, и пакеты вроде бы не скачивает. Но перегенеривает initrd и производит упаковку образа. Это не слишком ли для простой смены ядра по умолчанию? Я конечно не специалист в этом, но есть сомнения. Мб из скрипта installkernel пакета bootloader-utils вытянуть некую функциональность, урезать её и добавить к update-kernel фичей -d ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192222</commentid>
    <comment_count>7</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2020-09-04 06:10:13 +0300</bug_when>
    <thetext>JFYI. На разных архитектурах, на разных системах загрузки (bios/efi) есть разные варианты переключения и некоторые из них не работают. Так что задача не тривиальная.

Сколько я не пользовался использовать (там где было нужно) grub-set-default и grub-reboot ни разу они у меня не сработали как нужно (а у других людей на других системах якобы работали).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192223</commentid>
    <comment_count>8</comment_count>
    <who name="Евгений Кухтинов">kuhtinov_ev</who>
    <bug_when>2020-09-04 06:33:14 +0300</bug_when>
    <thetext>А может обернуть команду installkernel пока нет иного способа? На вариант наличия двух ядер. Например: update-kernel -d std-def и будет выбрано ядро std-def.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192224</commentid>
    <comment_count>9</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2020-09-04 06:48:04 +0300</bug_when>
    <thetext>installkernel, на сколько я помню, выставляет симлинк vmlinuz (например, на vmlinuz-5.4.61-std-def-alt1), но если у вас в grub уже изменено умолчание с vmlinuz на что-то другое, то эта смена симлинка не окажет эффекта. Но, я не изучал эту тему глубоко - просто наблюдения с точки зрения очередного пользователя, для того кто будет это реализовывать (если будет).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192229</commentid>
    <comment_count>10</comment_count>
    <who name="ruslandh">ruslandh</who>
    <bug_when>2020-09-04 09:42:46 +0300</bug_when>
    <thetext>Тут много вариантов получается:
1 - какой загрузчик используется (grub, lilo, extlinux ...) Grub2 крнечно по-умолчанию, но это не единственный вариант.
2 - какой образ или какое поведение предусмотрено в конфигурационном  этого файле загрузчика.

Теоретически наверное, можно написать скрипт, который проверяет, что применяется grub2, затем устанавливает в  /etc/sysconfig/grub2 что-то типа:
...
GRUB_DEFAULT=&apos;saved&apos;
GRUB_SAVEDEFAULT=true
....
(ну, или что-то другое)

ну и потом вызвать installkernel

А в случае, если это не grub, то просто вызвать installkernel.

Но вопрос , насколько результат выполнения такого скрипта будет соответствовать тому, что ожидает пользователь.

И да - этот скрипт никак не связан по смыслу с обновлением ядра (updat-kernel)

PS IMHO перегенерить initrd всегда полезно, особенно если сменилось ядро или железо в компе ;-) А время это занимает немного.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192230</commentid>
    <comment_count>11</comment_count>
    <who name="ruslandh">ruslandh</who>
    <bug_when>2020-09-04 09:47:07 +0300</bug_when>
    <thetext>pps пропустил этап инициализации конфига (ggrub-mkconfig, lilo и т.п.  ) ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193508</commentid>
    <comment_count>12</comment_count>
    <who name="Sergey Y. Afonin">asy</who>
    <bug_when>2020-10-24 14:52:13 +0300</bug_when>
    <thetext>(In reply to ruslandh from comment #10)
&gt; Тут много вариантов получается:
&gt; 1 - какой загрузчик используется (grub, lilo, extlinux ...) Grub2 крнечно
&gt; по-умолчанию, но это не единственный вариант.
&gt; 2 - какой образ или какое поведение предусмотрено в конфигурационном  этого
&gt; файле загрузчика.
&gt; 
&gt; Теоретически наверное, можно написать скрипт, который проверяет, что
&gt; применяется grub2, затем устанавливает в  /etc/sysconfig/grub2 что-то типа:
&gt; ...
&gt; &gt; GRUB_SAVEDEFAULT=true
&gt; ....

Только как раз наоборот, false. Чтобы не менял. Но, вообще, у Grub уже есть готовый набор ручек в виде grub-set-default, grub-reboot, grub-entries:
https://www.altlinux.org/Grub#Как_отучить_GRUB2_запоминать_последний_выбранный_пункт?</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>