GNU GRUB (GNU GRUB)

Перейти к навигации Перейти к поиску
GNU GRUB
Логотип программы GNU GRUB
Скриншот программы GNU GRUB
Тип пакет GNU[вд] и загрузчик операционной системы
Автор Erich Boleyn[вд]
Разработчик Проект GNU
Написана на Си и язык ассемблера
Операционные системы GNU/Linux[4], GNU/Hurd[вд][4] и BSD[вд][4]
Первый выпуск 1995[1]
Аппаратные платформы IA-32, x86-64 и PowerPC
Последняя версия 2.12 [2] (20 декабря 2023 года)
Тестовая версия
Репозиторий git.savannah.gnu.org/cgi…
Лицензия GPL 3.0+[4][5]
Сайт gnu.org/software/… (англ.)
Логотип Викисклада Медиафайлы на Викискладе
GNU GRUB на жестких дисках c таблицей разделов MBR
GNU GRUB на жестких дисках c таблицей разделов GPT
boot.img имеет точный размер 446 байт и записывается в MBR (сектор 0). core.img записывается в пустые сектора между MBR и первым разделом, если он доступен (по традиционным причинам первый раздел начинается в секторе 63 вместо сектора 1, но это не обязательно). Каталог / boot / grub-может находиться в отдельном разделе или в / -partition.

GRUB (англ. GRand Unified Bootloader) — загрузчик операционной системы от проекта GNU. GRUB позволяет пользователю иметь несколько установленных операционных систем и при включении компьютера выбирать одну из них для загрузки.

Основные сведения

[править | править код]

GRUB является эталонной реализацией загрузчика, соответствующего спецификации Multiboot, и может загрузить любую совместимую с ней операционную систему. Среди них: GNU/Linux, FreeBSD, Solaris и многие другие. Кроме того, GRUB умеет по цепочке передавать управление другому загрузчику, что позволяет ему загружать Windows (через загрузчик NTLDR или bootmgr), MS-DOS, OS/2 и другие системы.

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

GRUB позволяет пользователю при загрузке задавать произвольные параметры и передавать их в ядро Multiboot-совместимой ОС для дальнейшей обработки[6].

GRUB — самый популярный загрузчик в мире GNU/Linux и является загрузчиком по умолчанию в большинстве известных дистрибутивов.

Основные возможности GRUB

[править | править код]
StartUp-Manager — графический интерфейс для настройки GRUB
  • Загрузка Linux, OpenSolaris, *BSD ядер и других Multiboot-совместимых ОС;
  • Передача управления другим загрузчикам, возможность загрузки Windows-систем;
  • Защита паролем пунктов меню[7][8];
  • Поддержка BOOTP и TFTP для сетевой загрузки;
  • Интерактивная командная строка загрузки;
  • Поддержка файловых систем: ext2/ext3/ext4, ReiserFS, JFS, XFS, NTFS, ISO, UFS, UFS2, FFS, FAT16, FAT32 и Minix, и чтение файлов конфигурации, ядер, initrd и других файлов прямо с файловой системы.
  • Поддержка загрузчика EFI, начиная с версии 1.98 (загрузка операционных систем семейства Mac OS).
  • Помимо всего прочего, GRUB может достаточно гибко и удобно менять внешний вид используя темы, например, показывать красивый интерфейс и обои в загрузочном меню.
  • GRUB2 имеет модульную структуру. Это означает, что туда легко добавляется всё, что угодно, вплоть до игр, также как и выбрасывается, если необходимо уменьшить размер.

GRUB 2 — следующая версия GRUB. Разработчики писали GRUB 2 «с нуля», чтобы добиться переносимости и модульности[9].

В связи с существованием GRUB 2 разработка GRUB 1 прекращена, разработчики лишь принимают патчи, исправляющие ошибки[10].

Особенности загрузки

[править | править код]

На диск с таблицей разделов MBR есть два варианта установки GRUB. В первом варианте загрузчик «встраивается» в пустое место между MBR и первым разделом (там как минимум 31 килобайт), которое называется «boot track» — загрузочная дорожка, «MBR gap» — зазор или промежуток MBR или «embedding area» — область встраивания. Во втором варианте тело загрузчика находится в файловой системе, а список блоков с ним размещён в первом секторе раздела. Разработчики рекомендуют использовать первый способ[11].

При подготовке диска для установки GRUB[12] на компьютер, имеющий BIOS и диск с таблицей разделов GPT, необходимо создать специальный загрузочный раздел BIOS (тип раздела «bios_grub» в parted, код раздела «0xEF02» в gfdisk, GUID «21686148-6449-6e6f-744e656564454649») размером не меньше 31 килобайта (разработчики рекомендуют 1 мегабайт, чтобы в случае увеличения размера загрузчика в будущем не пришлось изменять разметку)[11]. GRUB поместит в этот раздел дополнительные данные, которые не могут быть помещены в другое место. Такой раздел необходим и для MBR в том случае, когда начало первого раздела находится на диске раньше 1 Мб, код типа раздела «4» в fdisk[13].

Примечания

[править | править код]
  1. https://www.gnu.org/software/grub/manual/grub.html#History
  2. GRUB 2.12 released. Дата обращения: 9 июня 2021. Архивировано 9 июня 2021 года.
  3. GRUB 2.12 release candidate 1 — 2023.
  4. 1 2 3 4 Free Software Directory
  5. https://www.gnu.org/software/grub/
  6. Передача параметров ядрам ОС предусмотрена в спецификации Multiboot. Дата обращения: 21 октября 2009. Архивировано 2 июля 2012 года.
  7. Устанавливаем пароль на GRUB. UseUnix.ru. Дата обращения: 9 февраля 2010. Архивировано из оригинала 21 июня 2010 года.
  8. Получение прав root’а к Linux системе [GRUB][безопасность][пароли] @ Загрузчик. ManLinux.org. Архивировано из оригинала 23 февраля 2011 года.
  9. GRUB 2 (англ.). Архивировано 31 мая 2010 года.
  10. GRUB Legacy Архивная копия от 24 августа 2008 на Wayback Machine (англ.)
  11. 1 2 GNU GRUB Manual 2.02, 4.4 BIOS installation.
  12. Подготовка дисков. Gentoo Linux Wiki (27 декабря 2014). Архивировано 24 апреля 2016 года.
  13. Gentoo Linux Wiki.

Полезные статьи