Что такое загрузчик GRUB в Linux?

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

В этой статье мы познакомимся с загрузчиком GRUB и объясним его функции и назначение в системе Linux.

Что такое GRUB?

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

В настоящее время для Linux доступны две версии GRUB:

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

GRUB меню

Загрузчик в сравнении с менеджером загрузки

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

  • Загрузчик загружает ядро системы с устройства хранения данных (жесткого диска или SDD) в оперативную память. Загрузчик также помогает выполнять задачи инициализации оборудования, такие как настройка памяти и конфигурирование процессора.
  • Менеджер загрузки представляет пользователю интерфейс, с помощью которого он управляет конфигурацией загрузки и выбирает, какую систему загружать. Интерфейс может представлять собой простое меню GRUB по умолчанию или быть настроенным под конкретный дистрибутив.

Что делает GRUB?

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

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

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

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

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

  1. Начальный этап GRUB начинается сразу после того, как BIOS загружает GRUB из MBR. GRUB использует небольшое пространство, выделенное для кода инициализации в MBR, чтобы начать следующий, более сложный этап.
    1. Этот дополнительный этап обеспечивает динамическое чтение файла второго этапа. GRUB поддерживает несколько файловых систем и устанавливает ту, которая соответствует файловой системе, на которой находится файл второго этапа. Если данная стадия отсутствует во время установки GRUB,  второй этап загружается статически.
  2. Заключительный этап процесса загрузки GRUB - самый длинный и сложный. Этот этап содержит все шаги, необходимые для запуска системы, включая:
    1. Отображение меню загрузки.
    2. Загрузка ядра ОС.
    3. Инициализация ядра.
    4. Инициализация пользовательского пространства.

Особенности GRUB

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

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

Как получить доступ к GRUB и отредактировать его?

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

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

Чтобы начать настройку GRUB, выполните следующие действия:

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

/etc/default/grub

Файл содержит параметры, которые управляют поведением GRUB. Вот несколько часто редактируемых параметров:

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

После завершения внесения изменений в файл сохраните его и выйдите из редактора. Затем в терминале выполните следующую команду для применения изменений:

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

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

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

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

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

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

  • GRUB_BACKGROUND. Этот параметр позволяет задать пользовательское фоновое изображение. Используйте следующий синтаксис:
  • GRUB_BACKGROUND=«[путь к изображению]/[имя файла].jpg».
  • GRUB_THEME: Если ваш дистрибутив поддерживает темы GRUB, задайте здесь путь к файлу темы.

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

Обновите GRUB:

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

GRUB Customizer

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

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

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

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

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

Установка GRUB Customizer в Ubuntu.

Запустите программу, набрав:

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

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

Вот несколько ценных особенностей программы настройки GRUB:

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

Заключение

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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий