img

Загрузчик GRUB в Linux: что это такое?

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

 

Введение

Загрузчик – это неотъемлемый элемент операционный системы, который помогает выполнять инициализацию аппаратного обеспечения и установку компонентов программного обеспечения, необходимых для успешной загрузки. Если на компьютере установлено несколько операционных систем, то у загрузчика должен быть пользовательский интерфейс, через который можно выбрать, какую операционную систему необходимо загрузить. 

В этой статье мы расскажем, что такое загрузчик GRUB, а также рассмотрим его характерные особенности и роль в системе Linux.

Что такое GRUB?

GRUB (также известный как GNU GRUB или GNU Grand Unified Bootloader) – это загрузчик и диспетчер загрузки для Linux и других операционных систем на базе Unix. GRUB запускается уже после того, как BIOS завершит все необходимые проверки аппаратных средств и загрузит его из главной загрузочной записи (MBR - Master Boot Record). После чего GRUB получает контроль над системой и загружает ядро Linux.

На сегодняшний день существует две версии GRUB для Linux:

  • GRUB Legacy (GRUB 1). Это устаревшая версия GRUB, которая по-прежнему встречается в некоторых старых дистрибутивах Linux.
  • GRUB 2. Это версия GRUB, которая поддерживает новые архитектуры ПК (например, ARM) и файловые системы (например, ReiserFS), RAID-массивы и программу управления логическими томами (LVM - Logical Volume Manager). Большинство современных дистрибутивов используют именно эту версию. Ниже продемонстрирован пример меню GRUB, найденный в Linux Mint:

GRUB 2 in Linux Mint.

Загрузчик и диспетчер загрузки: в чем разница?

GRUB выполняет две функции: загрузчика и диспетчера загрузки. Во время запуска системы эти два компонента отвечают за разные задачи. 

  • Загрузчик загружает ядро системы с запоминающего устройства (жесткого диска или SDD) в оперативную память. Кроме того, загрузчики отвечают за инициализацию аппаратного обеспечения, а также установку памяти и настройку ЦП.
  • Диспетчер загрузки предоставляет пользователю интерфейс, где он может управлять процессом загрузки и выбирать, какую систему загружать. В качестве интерфейса может выступать стандартное меню GRUB или настроенное под конкретный дистрибутив, например, Kali Linux:

GRUB in Kali Linux.

Что делает GRUB?

После того, как BIOS загрузил GRUB в память, GRUB предоставляет пользователю меню с параметрами загрузки. Под этими параметрами подразумеваются установленные операционные системы и специальные параметры загрузки, такие как безопасный режим.

Как только пользователь указал все необходимые параметры или время, отведенное на это, истекло, GRUB приступает к загрузке соответствующего ядра. Для того, чтобы этот процесс был выполнен успешно, GRUB учитывает такие параметры, как:

  • BOOT_IMAGE. Это параметр, указывающий на расположение ядра Linux.
  • initrd (initial ramdisk). Схема, демонстрирующая, как можно загрузить временную корневую файловую систему в оперативную память.
  • root. Расположение корневой файловой системы.
  • quiet. Параметр конфигурации, который позволяет скрыть системный вывод, появляющийся в процессе загрузки.
  • ro. Параметр, который указывает на то, что файловая система должна быть смонтирована таким образом, чтобы она была доступна только для чтения. Это необходимо для работы программ проверки целостности файловых систем. 
  • splash. Экран-заставка, который отображается во время загрузки операционной системы.

Процесс загрузки GRUB

Процесс загрузки GRUB состоит из двух или трех этапов:

  • Этап 1. Первый этап начинается сразу после того, как BIOS загрузил GRUB из MBR. Для запуска следующего более сложного этапа GRUB использует небольшое пространство в MBR, выделенное под код инициализации.
  • Этап 1.5. Это необязательный этап, который позволяет произвести динамическое чтение файла на этапе 2. GRUB поддерживает несколько файловых систем и устанавливает ту, которая соответствует той, где находится файл этапа 2. Если в процессе установки GRUB этап 1.5 игнорируется, этап 2 выполняется статически.
  • Этап 2. Заключительный этап загрузки GRUB – самый длинный и самый сложный. Здесь выполняются все шаги, которые необходимы для запуска системы, в частности,
  • Отображение меню загрузки
  • Загрузка ядра операционной системы
  • Инициализация ядра
  • Инициализация пользовательского пространства

Характерные особенности GRUB

GRUB – это универсальный и надежный загрузчик, который был разработан с учетом требований современных операционных систем. Ниже приведен список характерных особенностей GRUB:

  • Модульная архитектура. Модульная архитектура GRUB обходит ограничения BIOS, за счет чего он может предложить больше функциональных возможностей.
  • Гибкая конфигурация. Путем редактирования файла конфигурации GRUB пользователи могут настраивать различные аспекты своей системы, например, запись загрузки по умолчанию, параметры ядра и время ожидания.
  • Поддержка мультизагрузки. У GRUB есть меню загрузки, где пользователь может выбрать, какую операционную систему (из установленных) запустить.
  • Динамическое обнаружение. GRUB динамически обнаруживает установленные операционные системы и генерирует соответствующие записи загрузки.
  • Цепочная загрузка. GRUB может взаимодействовать с другими загрузчиками, например, Windows Boot Manager или NTLDR.
  • Поддержка файловых систем. GRUB поддерживает различные файловый системы (например, ext2, ext3, ext4, Btrfs, HFS+, NTFS, FAT и ReiserFS), что делает его безопасным вариантом для запуска любой операционной системы на базе Unix.
  • Язык описания сценариев. Пользователи, которым необходимо создавать свои собственные конфигурации загрузки или которым необходима автоматизация, могут использовать язык описания сценариев GRUB.
  • Защита паролем. Предлагая установить пароль для меню загрузчика, GRUB повышает надежность системы.
  • Режим восстановления. Этот режим помогает пользователям устранять различные неполадки и проблемы, связанные с загрузкой.
  • Поддержка устаревших BIOS и UEFI. GRUB работает как с обычным BIOS, так и с современной прошивкой UEFI.
  • Загрузка по сети. GRUB поддерживает PXE-загрузку, позволяя компьютерам в сети загружаться через сервер. 

Как получить доступ к GRUB и изменить его?

Отредактировав файл конфигурации GRUB, можно изменить его конфигурацию и настроить под себя его интерфейс. Настройка GRUB выполняется через терминал вашей системы и требует прав администратора. 

Редактирование файла конфигурации GRUB

Примечание: ошибки в конфигурации GRUB могут помешать загрузке системы. Прежде чем приступать к редактированию файла конфигурации, убедитесь, что вы сделали резервную копию системы.

Чтобы приступить к настройке GRUB:

1. Откройте файл конфигурации в текстовом редакторе, например, Nano:

sudo nano /etc/default/grub

Editing GRUB configuration file in Ubuntu.

В этом файле содержатся параметры, которые управляют поведением GRUB. Ниже приведены несколько параметров, которые редактируют чаще всего:

  • GRUB_DEFAULT. Устанавливает числовой индекс или заголовок пункта меню в качестве записи загрузки по умолчанию.
  • GRUB_TIMEOUT. Определяет количество секунд, в течение которых GRUB отображает меню загрузки, прежде чем выполнить загрузку по умолчанию.
  • GRUB_HIDDEN_TIMEOUT. Скрывает или показывает меню GRUB.
  • GRUB_CMDLINE_LINUX. Определяет параметры командной строки ядра.
  • GRUB_DISABLE_OS_PROBER. Отключает динамическое обнаружение операционных систем.

2. Внеся все необходимые изменения в файл, сохраните его и выйдите из редактора. Далее, чтобы применить изменения, введите следующую команду в терминале:

sudo update-grub

Эта команда сканирует изменения в /etc/default/grub и применяет их к grub.cfg (файлу, который GRUB использует в процессе загрузки).

3. Чтобы изменения вступили в силу, перезагрузите компьютер. 

Редактирование интерфейса GRUB

С помощью файла конфигурации также можно изменить то, как будет выглядеть GRUB в вашей системе. Чтобы настроить GRUB под себя, выполните следующие действия:

1. Откройте файл конфигурации в текстовом редакторе:

sudo nano /etc/default/grub

2. Найдите параметры, который определяют внешний вид диспетчера загрузки GRUB:

  • GRUB_BACKGROUND. Это параметр, с помощью которого можно установить свое собственное фоновое изображение. Для этого вам понадобиться следующий синтаксис:

GRUB_BACKGROUND="[path-to-the-image]/[filename].jpg"

  • GRUB_THEME. Если ваш дистрибутив поддерживает темы GRUB, укажите здесь путь к файлу темы. 

Сохраните файл и выйдите. 

4. Обновите GRUB:

sudo update-grub

Все изменения отобразятся при следующем запуске. 

GRUB Customizer

GRUB Customizer – это инструмент с графическим интерфейсом, предназначенный для изменения внешнего вида GRUB. Он избавляет вас от необходимости редактировать файл конфигурации вручную. Чтобы установить его через терминал, выполните следующие действия:

1. Добавьте репозиторий GRUB Customizer:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

Adding the GRUB Customizer repository to Ubuntu.

Нажмите Enter, чтобы подтвердить добавление репозитория, и дождитесь завершения процесса. 

2. Обновите информацию о репозитории

sudo apt update

3. Установите GRUB Customizer:

sudo apt install grub-customizer

Installing GRUB Customizer in Ubuntu.

Введите Y и нажмите Enter, чтобы начать установку. 

4. Запустите программу, введя следующее:

grub-customizer

Появится окно графического интерфейса GRUB Customizer.

GRUB Customizer's GUI window.

Ниже представлены несколько важных особенностей GRUB Customizer:

  • Простой графический интерфейс, с помощью которого можно изменять порядок записей загрузки в меню загрузки и устанавливать записи загрузки по умолчанию.
  • Параметры персонализации, с помощью которых можно изменять фоновое изображение и общий вид меню GRUB.
  • Параметры, с помощью которых можно настроить время ожидания. 
  • Графический способ изменения параметров ядра и переменных среды GRUB.
  • Варианты установки GRUB в определённый раздел или устройство.

Заключение

Прочитав эту статью, вы должны были больше узнать о том, что такое GRUB, о его особенностях и о том, как его можно настроить под себя. В этой статье мы также познакомились с GRUB Customizer – инструментом с графическим интерфейсом для редактирования конфигурации GRUB. 

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую под
img
Виртуализация серверов — популярная тема в мире ИТ, особенно на уровне предприятий. Она позволяет разным операционным системам з
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
21 ноября
20:00
Бесплатный вебинар
Введение в Docker