Эстетическое редактирование grub.cfg для

EDIT: (для ясности) я хочу изменить внешний вид меню загрузки grub, отредактировав файлы конфигурации (возможно, но не обязательно grub.cfg).

Итак, любой пользователь ubuntu знает, как заполняется меню загрузки после нескольких обновлений ядра. Назад в дни меню.lst, вы можете настроить меню, чтобы скрыть нежелательные параметры, но по-прежнему держать их доступными.

например, если ваше меню grub выглядело так:

на


B


C


D

вы можете сделать опции C и D невидимыми, вставив пустую опцию между B и C. Таким образом, опции C и D не будут видны во время загрузки, но станут видимыми, если вы прокрутите вниз до них в меню загрузки.

пробуем этот же трюк в grub.cfg не привело к результату вообще.
Итак, я ищу способ достичь того же результата с помощью нового меню grub, отредактировав вскапывать.файл cfg. Другие эстетические хитрости также приветствуются.

спасибо

EDIT2: если скрытие пунктов меню невозможно, я хотел бы способ вставить разделитель между ними, так что меню будет выглядеть следующим образом:

на


B

--Others--


C


D

1
задан Malabarba
07.11.2022 22:22 Количество просмотров материала 2695
Распечатать страницу

3 ответа

во-первых, понять, как Ubuntu настраивает Grub2.

  • / boot/grub / grub.cfg это меню Grub2
  • the update-grub команда автоматически создает файл
  • ...читая настройки по умолчанию из /и т. д./По умолчанию/харч
  • ...и запуск shellscripts в / etc / grub.d

поэтому, если вы не хотите редактировать grub.cfg после каждого обновления ядра, вы хотите настроить скрипты в / etc / grub.d так что ваши изменения применяются в любое время update-grub запускается.


во-вторых, чтобы ответить на ваш первый вопрос напрямую, я не знаком с какими-либо способами сделать конкретные параметры загрузки невидимыми, но все еще доступными через меню Grub. Есть много мелочей о Grub1, которые не были переопределены в Grub2, и это не удивило бы меня, если бы это был один из их.

вместо этого, вы могли бы сделать все пункты меню невидимы (пока не выделены), установив цвет шрифта меню таким же, как цвет фона. В / etc / grub.d / 05_debian_theme, change menu_color_normal так, чтобы первый цвет (шрифт) соответствовал второму цвету (фону). Оставь menu_color_highlight разные, поэтому запись под курсором показывает вверх.

# example from a likely-tweaked Karmic /etc/grub.d/05_debian_theme
set menu_color_normal=white/black
set menu_color_highlight=black/white

# ...to this
set menu_color_normal=black/black
set menu_color_highlight=black/white

получение разделителя в меню Grub.

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

# separator
title  --------------------
root

Я подозреваю, что Grub2 может быть похожим. Очень простой пункт меню выглядит так в grub.cfg:

# basic example
menuentry "Memory test (memtest86)" {
        linux   /boot/memtest86+.bin
}

С "ничего" в кавычки получает отображаемый как заголовок, вы можете подделать разделитель. Как Grub1, Grub2 хочет linux ключевое слово, чтобы рассматривать его как реальный пункт меню, так что будьте осторожны, вы не случайно выбрать его.

# a separator!  no, really!
menuentry "....." {
        linux   /boot/memtest86+.bin
}

к сожалению, "ничего" не значит что-нибудь; пока я тестировал это, я попробовал длинную строку тире ("----------------") и это никогда не срабатывало. Но ему нравится короткая строка точек, показанная выше, поэтому вы можете использовать что.

.....

вот, как сделать один сепаратор. Чтобы сделать кучу, и разместить их там, где вы хотите их автоматически, вам нужно добавить их в Скрипты в / etc / grub.d.

для этого примера, давайте поставим простой разделитель между различными разделами grub.cfg. Если вы посмотрите на / etc / grub.d, вы увидите следующее сценарии:

  • 00_header
  • 05_debian_theme
  • 10_linux - записи для ядер Ubuntu и восстановления
  • 20_memtest86+ - запись для Memtest86+
  • 30_os-prober-записи для Windows и других дистрибутивов Linux
  • 40_custom-ничего по умолчанию; специальные пользовательские записи могут идти сюда

мы создадим новый скрипт разделитель, и поместите следующее в это:

#!/bin/sh
# create a separator menu entry
cat << EOF
menuentry "....." {
  linux /boot/memtest86+.bin
}
EOF

теперь переместите этот скрипт на место для первого разделителя и свяжите его с другими. Скрипты выполняются по порядку, так что если вы хотите первым перед 10_linux имя 09_separator или что-то.

cd /etc/grub.d

# start the editor, paste in the script above, save, and exit
sudo nano separator

# set executable
sudo chmod +x separator

# rename into the first position
mv separator 09_separator

# link into remaining positions (can also use cp)
ln -s 09_separator 19_separator
ln -s 09_separator 29_separator
# not really necessary since 40_custom is empty by default
ln -s 09_separator 39_separator

если у вас есть определенная запись, установленная по умолчанию в /и т. д./По умолчанию/харч, возможно, вам придется обновить его -- Grub2 начинает подсчет пунктов меню с 0, и каждый из них "разделители" - это допустимая запись, поэтому они тоже считаются. Если предыдущая запись по умолчанию была 0 и перед ней был добавлен один разделитель, не забудьте изменить GRUB_DEFAULT к 1

теперь бегите update-grub, и изучить / boot/grub / grub.cfg -- вы должны увидеть разделители. Если да, перезагрузитесь и проверьте их.

....

если вы хотите разместить сепараторы в другом месте, скажем, между различными версиями ядра , вам нужно отредактировать 10_linux (или другой скрипт) непосредственно, и найдите подходящее место, чтобы добавить разделитель. Вы можете использовать строки из скрипта выше; включите все, кроме первого #!/ bin / sh линии.


если вы хотите что-то красивее, используйте Grub всплеск изображения или темы. Мне нужно дать вам raincheck по этим темам, но проверьте ресурсы ниже.


ресурсы:

на UbuntuForums есть два больших руководства Grub2, которые я узнал и полюбил:

GNU Grub 2 другой большой ресурс. У него есть набор скриптов для настройки кармического Grub2 (полное раскрытие: я не пробовал их).

Grub Формат темы Wiki страница является обязательным для взлома на Grub2 темы.

8
отвечен quack quixote 2022-11-09 06:10

разделитель может состоять из тире, если его первым символом является пробел. Кроме того, нет необходимости использовать команду linux для разделителя, вы можете использовать любую команду, как это:

menuentry " -----------------------------------------------------------" {
  echo "It is just a separator, select another item!"
}

или даже "true", чтобы вернуться молча:

menuentry " -----------------------------------------------------------" {
  true
}
4
отвечен MarSoft 2022-11-09 08:27

Если вы не используете другие ядра, вы можете просто удалить их, используя любой подходящий вам интерфейс менеджера пакетов. Это автоматически удаляет их из grub.cfg

0
отвечен ajackbot 2022-11-09 10:44

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх