Это старая версия документа!
# Установка загрузчика 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 ```
