# Установка загрузчика GRUB Основная задача загрузчика - предоставить возможность выбора операционной системы перед загрузкой. Загрузчик может быть установлен в различные таблицы разделов диска: - MBR (Master Boot Record) для BIOS - GPT (GUID Partition Table) для BIOS - UEFI GPT Для установки Grub будет использоваться команда grub-install, во всех случаях. Синтаксис: ```bash $ grub-install опции диск ``` Параметров достаточно много, но нужны будут только некоторые: * --compress - сжать файлы загрузчика; * --install-modules=модули - установить только эти модули; * --modules - записать эти модули в MBR; * --boot-directory - использовать другой каталог для файлов Grub; * --bootloader-id - имя загрузчика в меню EFI; * --core-compress - сжимать образ, загружаемый в MBR; * --efi-directory - использовать системный раздел EFI; * --force - установить несмотря на ошибки; * --recheck - удалить существующую карту устройств, помогает если возникают ошибки; * --removable - установка grub на флешку (только EFI); При описании всех дальнейших действий предполагается что они выполняются из системы, для которой нужно установить загрузчик, или из chroot окружения этой системы. ## Установка загрузчика GRUB в MBR для BIOS Установка Grub на жесткий диск выполняется командой: ```bash sudo grub-install /dev/sda ``` Или: ```bash sudo grub2-install /dev/sda ``` Утилиты grub в разных дистрибутивах могут включать двойку, а могут и не включать. Здесь: * /dev/sda - ваш жесткий диск. Теперь генерируем конфигурационный файл, чтобы автоматически определились установленные операционные системы: ```bash sudo grub-mkconfig -o /boot/grub/grub.cfg ``` Или: ```bash sudo grub2-mkconfig -o /boot/grub2/grub.cfg ``` Если вы хотите установить Grub на флешку в MBR, то просто примонтируйте флешку и выполните такую команду: ```bash sudo grub-install --root-directory=/mnt/USB/ /dev/sdb ``` Здесь: * /mnt/USB - папка, куда была смотирована ваша флешка, * /seb/sdb - сама флешка. Только здесь есть одна проблема, конфигурационный файл придется делать вручную . ## Установка загрузчика GRUB в GPT для BIOS Можно установить Grub так, как описано в предыдущем способе. Но тогда он будет установлен в область совместимости с MBR, что ненадежно. Поэтому в целях большей надежности _рекомендуется установить grub на отдельный раздел_. Нужный раздел можно создать в установщике любого дистрибутива, если вы выполняете установку в графическом интерфейсе или с помощью _gparted_. Для установки будет нужен раздел размером 1 Мегабайт без файловой системы и с меткой grub_bios. Параметры создаваемого раздела: * Partition name - `grub_bios` * File system - `unformatted` * Label - `grub_bios` Далее нажимаем на разделе правой кнопкой, выбираем *manage flags* и добавляем флаг `grub_bios`. Раздел готов. Если доступа к графическому интерфейсу нет, то можно создать такой раздел через терминал. Утилита fdisk не поддерживает работу с gpt, поэтому будем использовать _gfdisk_. Запускаем утилиту: ```bash $ sudo gdisk /dev/sda ``` Дальнейший порядок действий: * Чтобы создать новый раздел нажимаем n и выбираем номер раздела. * Затем выбираем начальный сектор раздела: по-умолчанию будет предложено использовать первый же свободный сектор, соглашаемся. * Далее выбираем конечный сектор раздела: Нам нужен раздел размером 1 Мб (1048576 байт). Размер одного сектора GPT - 512 байт, поэтому нам нужен раздел размером 2048 секторов. * Указываем HEX Code - это тот код, который скажет системе, что этот раздел нужно использовать для Grub, нужно установить ef02. * Далее нажимаем w для записи изменений на диск Установка grub на жесткий диск дальше выполняется точно так же, как и в предыдущем способе: ```bash $ sudo grub-install /dev/sda ``` Осталось создать конфигурационный файл grub: ```bash $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg ``` ## Установка GRUB UEFI GPT Установка Grub UEFI чем-то похожа на установку в GPT, тут тоже будет отдельный раздел, только на этот раз не для загрузчика, а раздел EFI. Если на компьютер уже установлена Windows, то, скорее всего, он уже существует. _**Этот раздел обычно занимает 100 Мб, имеет файловую систему fat32 и флаг ESP**_. Если же такого раздела нет, нужно его создать. Например _с помощью gparted_. Для этого создаем раздел с параметрами: * Размер 100 Мегабайт, * имя раздела ESP, * файловая система fat32. Дальше применяем изменения и **установливаем для раздела флаг ESP**. То же самое вы можете сделать _с помощью gdisk_, только на этот раз нужно устанавливать HEX Code раздела ef00 После того как раздел был создан, подключаем его к файловой системе: ```bash $ sudo mkdir /boot/efi $ sudo mount /dev/sda2 /boot/efi ``` Здесь /dev/sda2 - это EFI раздел Далее необходимо установить нужные пакеты, если они еще не установлены. ```bash $ sudo apt install grub-efi efibootmgr ``` Дальше останется только установка grub efi. Система сама определит нужный раздел и скопирует туда все файлы: ```bash $ grub-install /dev/sda ``` {{tag>grub}}