5. Структура файлов

GRUB 2 включает полностью переработанную структуру файлов и каталогов. menu.lst больше не используется.
Для определения, где установлен GRUB 2, пользователю предоставлено две команды: sudo grub-probe -t device /boot/grub для устройства и sudo grub-probe -t fs_uuid /boot/grub идентификатора UUID.

Список файлов и каталогов, которые использует GRUB 2, включают:

/boot/grub/grub.cfg

Этот файл наиболее близок по назначению к файлу /boot/grub/menu.lst. Подобно основному файлу меню grub.cfg содержит записи о загружаемых системах, но он не подлежит редактированию.

* Каждая секция файла отделена меткой "(### BEGIN)" и генерируется из соответствующего ей файла в каталоге /etc/grub.d.

* grub.cfg обновляется с помощью запуска команды update-grub, выполняемой от суперпользователя. Команда является оберткой для инструкции sudo grub-mkconfig -o /boot/grub/grub.cfg. Форма update-grub выбрана для стандартизации.

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

* По умолчанию, когда бы ни выполнялась команда update-grub, этот файл получает права "только для чтения", то есть его нельзя отредактировать вручную.

Кроме этого файла пользователь видит множество файлов *.mod в каталоге /boot/grub. Эти файлы отражают модульную структуру GRUB 2 и используются по мере необходимости самим загрузчиком.

/etc/default/grub

* Этот файл конфигурации содержит информацию, которая раньше располагалась в верхней части файла menu.lst, до секций операционных систем, а также информацию, помещаемую в прежней версии GRUB в конце строк загрузки ядер. Этот файл может редактироваться суперпользователем и информация из него попадает в grub.cfg при запуске команды grub-update.

/etc/grub.d/ (каталог)

* Файлы из этого каталога читаются во время выполнения команды update-grub и инструкции, в них содержащиеся, транслируются в синтаксис файла /boot/grub/grub.cfg и помещаются в него. Порядок расположения блоков зависит от порядка обработки файлов в каталоге /etc/grub.d/ . Поскольку они обрабатываются в порядке сортировки, файл 10_linux будет обработан перед файлом 20_linux и блоки в /boot/grub/grub.cfg будут расположены соответствующим образом. Если в каталоге окажутся файлы с буквенными именами, они будут обработаны после файлов, имеющих цифровые префиксы.

* Пользовательские записи могут быть добавлены в файл 40_custom или в другой созданный пользователем файл. В соответствии с именем 40_custom записи из этого файла попадут в конец меню. Пользовательский файл с именем, например, 06_ позволит поместить инструкции в начало меню.

* Обрабатываются только файлы с правами выполнения.

* Содержание каталога /etc/grub.d/ по умолчанию:

- файл 00_header устанавливает значения по умолчанию для таких параметров, как графический режим, пункт меню по умолчанию, таймаут перед загрузкой и тому подобных. Обычно эта информация экспортируется из /etc/default/grub и пользователям нет нужды ее редактировать.

- файл 05_debian_theme . Установки в этом файле задают изображение для slpash-темы, текстовые цвета, цвета подстветки и имя темы. Если изображение для slpash-темы отсутствует, тогда устанавливается монохромная тема для дисплея начального меню.

- файл 10_hurd Locates устанавливает расположения ядер Hurd. Пока не используется.

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

- файл 20_memtest86+ используется для поиска исполняемого файла /boot/memtest86+.bin и помещения этой опции как отдельного пункта в меню загрузки. В настоящее время не существует опции для удаления этого пункта из меню, поэтому самый простой путь - сбросить для файла memtest86+.bin бит исполнимости, например с помощью команды sudo chmod -x /etc/grub.d/20_memtest86+ и затем выполнить sudo update-grub.

- файл 30_os-prober используется для запуска os-prober, который ищет установленные Линуксы и другие операционные системы во всех разделах. Результат помещается в grub.cfg с помощью скриптов из обсуждаемого файла. Файл разбит на четыре части, каждая из которых отвечает за поиск одной из систем: Windows, Linux, OSX, и Hurd. Переменные в этом файле определяют формат отображаемых имен в /boot/grub/grub.cfg и в графическом меню. Пользователи, хорошо знакомые с bash-скриптингом, могут изменять эти переменные с целью изменения формата отображаемых в меню имен. Альтернативно можно отключить влияние на имена этого скрипта в файле /etc/default/grub.

- файл 40_custom является шаблоном для добавления пользовательских записей в меню, они будут помещены в grub.cfg после запуска команды update-grub. Содержимое этого файла будет помещено непосредственно в /boot/grub/grub.cfg (все содержание, ниже строки "exec tail -n +3 $0" и комментариев по умолчанию) без изменения.

Все файлы этого каталога должны быть исполняемыми для использования командой update-grub.

Далее - Настройка поведения по умолчанию
Назад - Обновление до GRUB 2
Содержание