Professional Documents
Culture Documents
(оригинал http://ubuntuforums.org/showthread.php?t=1195275)
1. Введение
Примечание:
Для обновления меню GRUB2 в этом руководстве используется
команда sudo update-grub. Update-grub фактически выполняет команду
grub-mkconfig -o /boot/grub/grub.cfg. Эта команда запускает на
выполнение несколько скриптов и помещает результаты выполнения
в /boot/grub/grub.cfg, который определяет вид меню, которое вы видете
на экране во время загрузки. Поскольку разработчики GRUB2 не
намерены удалять команду update-grub, эта команда будет
использоваться для простоты и легкости в использовании.
3. Улучшения
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
Файл /etc/default/grub
Этот файл содержит информацию, ранее содержащуюся в верхней части
menu.lst GRUB Legacy и элементов, содержащихся в конце строки
инициализации ядра. Пункты в этом файле могут быть отредактирован
пользователем с правами администратора (root).
Вот содержимое этого файла:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT="3"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_HIDDEN_TIMEOUT=0
Меню будут скрыты, если символ # присутствует в начале этой строки.
(#GRUB_HIDDEN_TIMEOUT=0).
По умолчанию изначально зависит от присутствия других операционных
систем:
Обнаружена другая ОС: меню будет отображаться. (Линия будет
начинаться с символа #.)
Ни одна другая ОС не обнаружена: меню будет скрыто.
Для целых чисел больше, чем 0, система будет ждать столько секунд,
сколько вы укажете, но при этом меню отображаться не будет.
Если значение равно 0, то меню не будет отображаться. Там не будет
никаких задержек. Даже если этот параметр равен 0, то пользователь все
равно может заставить показать меню, если в процессе загрузки
компьютера будет удерживать клавишу SHIFT.
Во время загрузки, система будет проверять статуса клавиши SHIFT. Если
она не может определить положение клавиши, небольшая задержка
позволит пользователю для отображения меню нажать клавишу Esc.
Если опция включена, заставки, указанные в разделе 05_debian_theme
будут отображаться. Этот параметр скрывает только текст меню.
GRUB_HIDDEN_TIMEOUT_QUIET=
True - никакого счета. Экран будет пустым.
False - счетчик будет отображаться на пустой экран, на протяжении
значения, указанного в опции GRUB_HIDDEN_TIMEOUT.
GRUB_CMDLINE_LINUX
Если строка существует, то она импортирует все записи до конца строки
'Linux' в командной строке (в GRUB's Legacy это была строка "kernel") для
нормального режима и режима восстановления. Это похоже на строку
"altoptions" в menu.lst
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Эта строка импортирует все записи до конца строки 'Linux' (в GRUB
Legacy было "kernel"). Записи добавляются в конец строки инициализации
только в нормальном режиме. Это похоже на строку "defoptions" в
menu.lst. Для отображения черного экрана при загрузке с
отображением процесса загрузки в тексте удалите "quiet splash". Для
совмещения splash и вывода текста используйте только "splash". Эта
строка, где помещают и другие инструкции для ядра, такие, как
"ACPI=OFF".
# GRUB_TERMINAL=console
Раскомментируйте чтобы отключить графический терминал (Grub-pc)
# GRUB_DISABLE_LINUX_UUID= True
Раскомментируйте, если вы хотите чтобы GRUB не принимал параметр
root=UUID=xxx для ядра
# GRUB_GFXMODE=640x480
Вы можете добавить эту строку и удалить символ #, чтобы сделать его
активным. Эта запись устанавливает разрешение графического меню.
Она обеспечивает поддержку разрешения графических карт пользователя
(например, 640x480, 800x600, 1280x1024 и т.д.). Этот параметр
применяется только к тексту меню загрузки.
В меню GRUB 2 можно отображать имеющиеся разрешения, набрав "C", а
затем в оболочке GRUB> строку типа vbeinfo
# GRUB_DISABLE_LINUX_RECOVERY=True
Добавить или раскомментировать эту строку, чтобы предотвратить
"Восстановление" Параметры режима ядра появятся в меню. Если вы
хотите задать опцию "Восстановление" только для одного ядра, нужно
будет сделать специальную запись в файле /etc/grub/40_custom.
Каталог /etc/grub.d/
Файлы в этом каталоге читаются во время исполнения команды update-
grub или update-grub2. Результат обработки помещается в файл
/boot/grub/grub.cfg.
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply
type the
# menu entries you want to add after this comment. Be careful not to
change
# the 'exec tail' line above.
Создание своего меню: Итак, Вы хотите видеть в меню только то, что вы
написали сами. Вот как это делается:
Выполните команду sudo update-grub, чтобы получить список доступных
ядер.
Скопируйте требуемые записи меню из файла /boot/grub/grub.cfg в
файл /etc/grub.d/40_custom. Запись должна начинается со строки,
начинающиеся "menuentry" и заканчиваться на строку, содержащую ")".
Добавьите любую другую запись, которую вы хотели бы видеть в
загрузочном меню.
Измените название строки "menuentry" по желанию. Не изменяйте строки
после "menuentry". Каждая запись должна начинаться с "menuentry" и
заканчивается ")" в последней строке.
Удалите исполняемый бит с файлов /etc/grub.d/10_linux,
/etc/grub.d/20_memtest86 + и /etc/grub.d/30_os-prober.
Удаление исполняемого бита любого файла в каталоге /etc/grub.d
означает невозможность включить их содержимое в обновленное меню
GRUB2.
sudo chmod - x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+
/etc/grub.d/30_os-prober
sudo update-grub
Обновленный файл /boot/grub/grub.cfg теперь содержит только разделы
"00_header", "05_debian_theme" и "40_custom".
#! /bin/sh -e
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
. ${libdir}/grub/grub-mkconfig_lib
echo "Adding SystemRescueCD & Custom Kernel" >&2
menuentry "SystemRescue" {
save_default_entry | sed -e "s/^/\t/"
set root=(hd0,6)
linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
initrd /sysrcd/initram.igz
}
#! /bin/sh -e
for i in {/boot/grub,/usr/share/images/grub}/moreblue-orbit-grub.
{png,tga}; do
Примечание: Есть точка (.) после имени файла.
sudo update-grub2
Удалите GRUB2
sudo update-grub
Эти две строки больше не появятся при нажатии <Е> в меню Grub 2. Вы
увидите строку "save_env save_entry", но это не должно привести к
невозможности загрузки, если вы успешно загружались в прошлый раз.