Вы здесь

Загрузчик GRUB

GRUB (GRand Unified Boot Loader) – Великий унифицированный загрузчик. Разработан в рамках проекта GNU как образцовая реализация мультизагрузчика, способного загружать различные ОС с различных разделов одного диска или различные версии одной ОС в рамках одного раздела.

В настоящий момент под названием GRUB известны две существенно отличающиеся версии программы. Версия 0.97 – "старый" или "legacy" GRUB – используется в RHEL до версии 6 включительно. В этой статье речь именно о нём. GRUB версии > 1.0 – это почти полностью переписанный вариант программы, используемый в Ubuntu, Fedora и многих других дистрибутивах.

Поскольку в MBR есть только 384 байт для размещения загрузчика – GRUB поделен на две части stage1 и stage2. Размер stage1 равен одному сектору на диске – 512 байт. При этом реально используется только 384, а остальное зарезервировано. Stage2 – довольно крупная программа, содержащая драйверы нескольких ФС, интерпретатор командной строки и несколько вспомогательных функций. Её размер составляет примерно 124 КБ. При инсталляции GRUB компонент stage2 должен быть размещён в последовательных секторах на диске, а адрес первого сектора и количество секторов должны быть прописаны в секторе, содержащем stage1. Если носитель не позволяет разместить stage2 в фиксированных секторах, то применяется промежуточный загрузчик stage1.5, поддерживающий одну конкретную ФС и занимающий менее 16 КБ.

Список ФС, поддерживаемых stage2/1.5 (ls /boot/grub/*1_5)

  • e2fs_stage1_5
  • fat_stage1_5
  • ffs_stage1_5
  • iso9660_stage1_5
  • jfs_stage1_5
  • minix_stage1_5
  • reiserfs_stage1_5
  • ufs2_stage1_5
  • vstafs_stage1_5
  • xfs_stage1_5