Bug 53710 - Переименовать GRUB_CMDLINE_LINUX в sysconfig/grub2
Summary: Переименовать GRUB_CMDLINE_LINUX в sysconfig/grub2
Status: ASSIGNED
Alias: None
Product: Sisyphus
Classification: Development
Component: grub (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 enhancement
Assignee: Egor Ignatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-04-03 10:38 MSK by Sergey Y. Afonin
Modified: 2025-04-04 08:26 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Y. Afonin 2025-04-03 10:38:26 MSK
В /etc/sysconfig/grub2 можно увидеть

GRUB_CMDLINE_LINUX_DEFAULT='panic=30 splash'
GRUB_CMDLINE_LINUX='failsafe vga=normal'

C DEFAULT понятно, что везде добавляется, но вот с GRUB_CMDLINE_LINUX какой-то диссонанс в восприятии...
Comment 1 zvn 2025-04-03 14:42:09 MSK
м.б. не надо переименовывать, а?

оба же параметра имеют своё назначение, GRUB_CMDLINE_LINUX - во все варианты загрузки включается, GRUB_CMDLINE_LINUX_DEFAULT - после GRUB_CMDLINE_LINUX в те, варианты, которые НЕ recovery

https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html#Simple-configuration

‘GRUB_CMDLINE_LINUX’

    Command-line arguments to add to menu entries for the Linux kernel.

‘GRUB_CMDLINE_LINUX_DEFAULT’

    Unless ‘GRUB_DISABLE_RECOVERY’ is set to ‘true’, two menu entries will be generated for each Linux kernel: one default entry and one entry for recovery mode. This option lists command-line arguments to add only to the default menu entry, after those listed in ‘GRUB_CMDLINE_LINUX’.
Comment 2 Sergey Y. Afonin 2025-04-03 15:49:04 MSK
А почему у нас "failsafe vga=normal" в GRUB_CMDLINE_LINUX тогда? И попадает только в "recovery mode"?
Comment 3 zvn 2025-04-03 16:20:40 MSK
наверное, где-то здесь смысл закопан

/etc/grub.d/10_linux
.....
is_top_level=true
for linux in ${reverse_sorted_list}; do
....
  linux_entry "${OS}" "${version}" advanced \
      "${GRUB_CMDLINE_LINUX_DEFAULT}" $default
  if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ] && [ "x${GRUB_VMLINUZ_FAILSAFE}" != "xno" ] && [ "x${GRUB_VMLINUZ_FAILSAFE}" != "xfalse" ]; then
    if [ $linux = "/boot/vmlinuz" ] || [ "x${GRUB_VMLINUZ_FAILSAFE}" != "xdefault" ]; then
      linux_entry "${OS}" "${version}" recovery \
               "${GRUB_CMDLINE_LINUX}" $default
    fi
  fi
done
Comment 4 Egor Ignatov 2025-04-03 16:52:35 MSK
(In reply to Sergey Y. Afonin from comment #2)
> А почему у нас "failsafe vga=normal" в GRUB_CMDLINE_LINUX тогда? И попадает
> только в "recovery mode"?

Что-то временное опять стало постоянным :)
https://bugzilla.altlinux.org/show_bug.cgi?id=25676#c2

https://git.altlinux.org/gears/g/grub2.git?p=grub2.git;a=commit;h=daa88a5f53bdaad967ba42164f67dcb09dc289ca

А вот в апстрим GRUB_CMDLINE_LINUX_RECOVERY попал только в 2021 
https://git.savannah.gnu.org/cgit/grub.git/commit/?id=0e5889b98ac202e0aadf04f4115a810304578219


Надо будет привести все к актуальному виду и при этом не сломать обратную совместимость.
Comment 5 zvn 2025-04-04 08:26:38 MSK
оно?

https://git.altlinux.org/gears/g/grub.git?p=grub.git;a=commitdiff;h=775fa7d1c7eef82ef29eb2e5ed300d1a97243f61

замены вида
     linux_entry "${OS}" "${version}" simple \
-    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+    "${GRUB_CMDLINE_LINUX_DEFAULT}"

или 
   linux_entry "${OS}" "${version}" advanced \
-              "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
-  if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
-    linux_entry "${OS}" "${version}" recovery \
-                "single ${GRUB_CMDLINE_LINUX}"
+      "${GRUB_CMDLINE_LINUX_DEFAULT}" $default

т.е. вместо 4-го параметра, соединяющего две строки "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" теперь отправляет 4-й параметр "${GRUB_CMDLINE_LINUX_DEFAULT}" и 5й параметр  $default, при том, что $5 там нет, не очень ясно.

linux_entry ()
{
  os="$1"
  version="$2"
  type="$3"
  args="$4"

  if [ -z "$boot_device_id" ]; then
....