img

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

Введение

icon strelka icons icons

узнай больше на курсе

Онлайн-курс по Linux
Курс по Linux от Мерион Нетворкс - стань Linux администратором, прокачай свой скиллсет умением работать с операционными системами линукс и сделай большой шаг к DevOps
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту

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

В этой статье мы расскажем, что такое загрузчик 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. 

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Онлайн-курс по Linux
Курс по Linux от Мерион Нетворкс - стань Linux администратором, прокачай свой скиллсет умением работать с операционными системами линукс и сделай большой шаг к DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования - Python
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
Еще по теме:
img
Рассказываем, как появился nginx, его отличия от apache, для чего нужен nginx и какие у него преимущества
img
В этом руководстве вы узнаете, как установить и настроить Fail2ban на своем сервере.
img
В этой статье обсудим гипервизоры — важные компоненты процесса виртуализации серверов, как они работают и какие бывают типы.
img
В этой статье мы рассмотрим, как работают различные системные вызовы, разберемся в их функциях, а также постараемся сделать работу вашей системы более безопасной и предсказуемой.
img
Статья объясняет, что такое SWAP-память, как она работает, ее преимущества и недостатки, а также как управлять объемом SWAP-пространства на разных ОС.
Весенние скидки
30%
50%
60%
До конца акции: 30 дней 24 : 59 : 59