Инструменты пользователя

Инструменты сайта


linux:administration:cofiguration_grub

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
linux:administration:cofiguration_grub [2025/06/10 20:37] – [Настройка Grub через конфигурационные файлы] so_v_alinux:administration:cofiguration_grub [2026/09/16 11:41] (текущий) – so_v_a
Строка 1: Строка 1:
 +<!DOCTYPE markdown>
 +
 # Конфигурация GRUB # Конфигурация GRUB
 +
  
 ## Настройка Grub с помощью Grub Customizer ## Настройка Grub с помощью Grub Customizer
Строка 8: Строка 11:
  
 Для установки в Debian выполните: Для установки в Debian выполните:
 +```
 sudo apt update sudo apt update
 sudo apt install grub-customizer -y sudo apt install grub-customizer -y
 +```
  
 Последующий запуск осуществляется через главное меню или из консоли вводом команды: Последующий запуск осуществляется через главное меню или из консоли вводом команды:
 +```
 grub-customizer grub-customizer
 +```
  
 После внесения через программу Grub Customizer всех желаемых изменений, нажмите кнопку "Сохранить" и утилита автоматически сгенерирует обновленный файл конфигурации GRUB. После внесения через программу Grub Customizer всех желаемых изменений, нажмите кнопку "Сохранить" и утилита автоматически сгенерирует обновленный файл конфигурации GRUB.
  
-_Примечание_: После сохранения выполненных изменений, чтобы увидеть обновленное меню GRUB небходимо перезагрузить систему. +<blockquote>_Примечание_: После сохранения выполненных изменений, чтобы увидеть обновленное меню GRUB небходимо перезагрузить систему.   
 +Если изменения внесенные через Grub Customizer не видны после перезагрузки, выполните следующую команду, чтобы вручную обновить GRUB: 
 +``` 
 +sudo update-grub 
 +``` 
 +</blockquote>
  
 Программа Grub Customizer позволяет изменять только базовые параметры, Программа Grub Customizer позволяет изменять только базовые параметры,
 если же нужна более тонкая настройка загрузчика Grub, это необходимо делать посредством ручной настройки конфигурационных файлов. если же нужна более тонкая настройка загрузчика Grub, это необходимо делать посредством ручной настройки конфигурационных файлов.
 +
 +
 ## Настройка Grub через конфигурационные файлы ## Настройка Grub через конфигурационные файлы
  
 Существует два способа настройки Grub через конфигурационные файлы. Существует два способа настройки Grub через конфигурационные файлы.
-  - Через конфигурационный файл утилиты *grub-mkconfig*, который позволяет задать общие параметры для загрузчика +  - Через конфигурационный файл `/etc/default/grub` утилиты *grub-mkconfig*, который позволяет задать общие параметры для загрузчика 
-  - Через ручное редактирование /boot/grub/grub.cfg+  - Через ручное редактирование `/boot/grub/grub.cfg`
  
 Первый способ - рекомендованный, и с помощью него можно настроить большинство параметров, и в этом случае настройки не собьются когда вы обновите ядро или загрузчик. Второй гораздо более гибкий, но после любого обновления вы потеряете свои настройки.   Первый способ - рекомендованный, и с помощью него можно настроить большинство параметров, и в этом случае настройки не собьются когда вы обновите ядро или загрузчик. Второй гораздо более гибкий, но после любого обновления вы потеряете свои настройки.  
-Поэтому если что-то можно настроить через /etc/default/grub то настраиваем через него, все остальное - через /boot/grub/grub.cfg+Поэтому если что-то можно настроить через `/etc/default/grub` то настраиваем через него, все остальное - через `/boot/grub/grub.cfg `.
  
  
-### Настройка Grub через /etc/default/grub+### Настройка Grub через редактирование файла /etc/default/grub
  
 Список параметров, которые можно настроить данным способом: Список параметров, которые можно настроить данным способом:
Строка 67: Строка 79:
 - GRUB\_CMDLINE\_LINUX\_DEFAULT="quiet splash" — параметры, которые передаются ядру (по умолчанию он загружается без лишнего вывода).\\ - GRUB\_CMDLINE\_LINUX\_DEFAULT="quiet splash" — параметры, которые передаются ядру (по умолчанию он загружается без лишнего вывода).\\
 - GRUB\_CMDLINE\_LINUX — дополнительные параметры, которые работают во всех режимах. - GRUB\_CMDLINE\_LINUX — дополнительные параметры, которые работают во всех режимах.
 +
 +После внесения изменений в файл `/etc/default/grub` для обновления непосредственного конфигурационного файла загрузчика GRUB (т.е. файла `/boot/grub/grub.cfg`) необходимо выполнить команду:
 +```
 +sudo update-grub
 +```
 +
 +<blockquote>Примечание:  
 +Если при обновлении GRUB возникает ошибка, например: "sudo: update-grub: command not found", это означает, что команда `update-grub` не является стандартной, а является псевдонимом и выполняет вместо себя команду `sudo grub-mkconfig -o /boot/grub/grub.cfg`  
 +в данном случае необходимо выплонить указанную команду непосредственно.</blockquote>
  
  
 ### Настройка Grub через /boot/grub/grub.cfg ### Настройка Grub через /boot/grub/grub.cfg
 +
 +Файл `/etc/boot/grub/grub.cfg` управляет непосредственно работой загрузчика, здесь указаны все его параметры и настройки, а также сформировано меню. Изменяя этот файл можно настроить Grub как угодно. 
 +
 +Синтаксис файла напоминает синтаксис bash и состоит из нескольких команд, которые что-то делают, загружают и настраивают. Команды могут быть объединены в функции или блоки с помощью инструкций if else, синтаксис которых аналогичен bash.
 +
 +Основные из этих команд:
 +  * **load\_env** - загрузить переменные окружения из файла;
 +  * **set** - установить значение переменной окружения. Используется как `set имя_переменной=значение`;
 +  * **insmod** - загрузить модуль из папки с модулями Grub;
 +  * **linux** - загружает ядро Linux;
 +  * **initrd** - подготавливает образ initrd для загрузки ядра;
 +  * **boot** - пытается загрузить систему;
 +  * **chainloader** - запускает загрузчик из другого раздела;
 +  * **search** - установить значение переменной выполнив поиск по заданным параметрам, например, может найти диск по его UUID или метке;
 +  * **menuentry** - позволяет создать пункт меню;
 +
 +Поскольку на практике наиболее часто используются последние две команды рассмотрим их подробно:
 +
 +Команда **search** используется для поиска дисков и имеет такой синтаксис:
 +```
 +$ search опции_поиска --set=имя_переменной --hint приметы_устройства основной_параметр
 +```
 +здесь:
 +  * **опции\_поиска** - задают по какому критерию нужно искать, например, **--fs-uuid** - искать по UUID, **--label** - по метке, **--no-floppy** - не искать в съемных носителях.
 +  * **приметы устройства** - дают программе дополнительные подсказки для более быстрого поиска;
 +  * **основной параметр** - значение, по которому будем выполнять поиск.
 +
 +Например, команда может выглядеть вот так:
 +```
 +$ search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint='hd0,msdos5' c52ca066-e48f-4df2-bc7e-4d885a354090
 +```
 +
 +Команда **menuentry** используется для создания пунктов меню, с помощью которых будут загружаться операционные системы и дистрибутивы linux. Синтаксис этой команды такой:
 +```
 +menuentry имя_пункта {
 +команды установки переменных окружения
 +загрузка модулей
 +linux файл_ядра параметры_ядра
 +initrd файл_initrd
 +}
 +```
 +
 +Для нормальной загрузки операционной системы сначала необходимо установить корневой раздел, для чего, возможно, нужно загрузить некоторые модули, дальше нужно запустить ядро с нужными параметрами и добавить образ initrd если это требуется.\\
 +Поэтому самый простой пример пункта меню будет такой:
 +```
 +menuentry "Ubuntu" {
 +set root=(hd0,1)
 +linux /casper/vmlinuz boot=casper noeject noprompt splash
 +initrd /casper/initrd.lz
 +}
 +```
 +
 +
 +#### Пример самого просто конфигурационного файла /boot/grub/grub.cfg для Grub созданного вручную
 +
 +```
 +# Время показа меню загрузчика GRUB 5 секунд
 +set timeout=5
 +
 +# Устанавливаем разрешение экрана и указываем что это же разрешение нужно сохранять для ядра:
 +set gfxmode="1280x800"
 +set gfxpayload=keep
 +
 +# Загружаем модули необходимые для работы видео режима, это нужно для использования фоновой картинки
 +insmod vbe
 +insmod gfxterm
 +terminal_output gfxterm
 +
 +# Устанавливаем шрифт с поддержкой Unicode:
 +font "/boot/grub2/fonts/unicode.pf2"
 +loadfont unicode
 +
 +# Загружаем модуль работы с jpeg и задаём фоновый рисунок:
 +insmod jpeg
 +background_image "/boot/fon.jpg"
 +
 +# Устанавливаем переменные окружения для настройки цвета меню:
 +set menu_color_normal=red/black
 +set menu_color_highlight=yellow/black
 +set color_normal=yellow/black
 +
 +# Пункты меню для операционных систем:
 +menuentry "Ubuntu" {
 +root=(hd0,1)
 +linux /casper/vmlinuz boot=casper noeject noprompt splash
 +initrd /casper/initrd.lz
 +}
 +
 +menuentry "OpenSUSE" {
 +insmod gzio
 +insmod part_msdos
 +insmod ext2
 +set root='hd0,msdos5'
 +linux /boot/vmlinuz-4.1.31-30-default root=UUID=c52ca066-e48f-4df2-bc7e-4d885a354090 resume=/dev/sda7 splash=silent quiet showopts
 +initrd /boot/initrd-4.1.31-30-default
 +}
 +```
 +
 +Если знать как примерно выглядит конфигурационный файл Grub, то можно разобраться и с файлом, созданным автоматически. Например - пункты с указанием ОС в меню выводятся по порядку, поэтому чтобы поменять их местами будет достаточно поменять местами команды в файле.
 +
 +
 +{{tag>grub}}
  
/var/www/html/dokuwiki/data/attic/linux/administration/cofiguration_grub.1749587869.txt.gz · Последнее изменение: — so_v_a