во-первых, понять, как 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 темы.