LINUX.ORG.RU

GRUB, кастомное recovery

 


0

1

Подскажите, как правильно организовать автодобавление в GRUB 2 при установке ядра пунктов с кастомными параметрами? Т.е., чтобы кроме single, например, создавался еще 3-й пункт, где будут параметры, которые я буду парсить скриптами при загрузке. Статические пункты вроде ясно, как делать, а как делать автогенерируемые?

★★★★★

Собственно, разница между пунктами generic и recovery описывается в 10_linux:

  linux_entry "${OS}" "${version}" false \
      "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
  if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
    linux_entry "${OS}" "${version}" true \
    "single ${GRUB_CMDLINE_LINUX}"
  fi


Выше по тексту есть объявление linux_entry(). Текст из 40_custom 1 к 1 переносится в grub.cfg. В общем, есть ли возможность добавить простым способом еще один linux_entry, не правя 10_linux?

YAR ★★★★★
() автор топика

А, фиг с ним - похоже, действительно проще поправить код 10_linux, добавив свою строку. Главное, не забыть за нее, чтобы какой-то апдейт не перетер изменения. Сделал, попутно отключив субменю в Debian 9.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

Зачем ты правишь существующий файл? Создай рядом новый, с другим названием. И тогда обновления не будут его перетирать.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Суть в том, что это баш-скрипт с функцией, которая создает корректный блок меню по заданным параметрам (и так в цикле для каждого ядра и для каждой опции). В своем файле придется или копипастить эту функцию из 10_linux, или сорсить файл целиком (еще неизвестно, можно ли это безопасно сделать) лишь для использования этой функции. Плюс команды вне цикла 10_linux будут и отдельной сущностью в меню GRUB'а. Будет что-то в стиле

Ядро 1
Ядро 1 (single)
Ядро 2
Ядро 2 (single)
Ядро 3
Ядро 3 (single)
Ядро 1 (service)
Ядро 2 (service)
Ядро 3 (service)

Так или иначе, это не та система, где GRUB будет часто обновляться (как и софт, в принципе), так что случайно перетереть файлик - не так страшно. Если уж на то пошло, то и 40_custom тоже часть пакета grub-common, а значит, может быть случайно затерт. Но при установке пакетов обычно спрашивается, какую версию файла сохранять, если файл отличается от версии из пакета.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

В общем-то, да. Вопрос личных предпочтений.

Мне проще скопировать 10_linux в 09_linux, а в копии сделать свои правки. Пункты меню будут в двух экземплярах, зато можно не беспокоиться о том, что во время обновления внезапно придётся читать diff файлов. Можно даже вообще удалить 10_linux. Тогда дубли появятся только после обновления.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.