Замена grub на rEFInd

Maxim Taranov
4 min readJul 1, 2017

--

Хочу рассказать о том, как я отказался от загрузчика grub в пользу более современного и удобного rEFInd. Эта запись будет полезна пользователям, которые имеют на своём ПК две (или более) операционные системы, используют режим UEFI и хотят привести всё это дело к человеческому виду.

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

Так выглядит выбор загружаемой системы на моём ноутбуке.

Я использую HP ProBook 450 G1, на котором у меня было установлено две операционные системы: Windows и elementary OS. У вас могут быть установлены какие-то другие системы, однако всё нижесказанное применимо только к ubuntu-based.

Начнём с того, что Windows всегда ставит свой загрузчик в приоритет. А иногда и вовсе затирает другие загрузчики в efi. Кроме того, многие ноутбуки по умолчанию не отображают меню выбора загрузки UEFI и грузят сразу же первую запись (то есть Windows). А чтобы попасть в меню, нужно успеть после включения нажать специальную клавишу (Esc, F9 или что-то ещё). Это не очень удобно и я решил эту проблему благодаря rEFInd.

Шаг первый. В первую очередь вам нужно установить непосредственно rEFInd. На elementary OS или Ubuntu это можно сделать с помощью официального репозитория:

sudo apt-add-repository ppa:rodsmith/refind
sudo apt-get update
sudo apt-get install refind

Если вы используете elementary OS и никогда до этого не добавляли сторонние репозитории, то сперва выполните эту команду:

sudo apt install software-properties-common --no-install-recommends

На этом всё, rEFInd установлен. Можете проверить это, перезагрузив ПК. Должно появиться меню, похожее на это:

Даже если вы удалите все операционные системы, rEFInd останется на вашем ПК и продолжит свою работу(если не трогать загрузочный efi-раздел). В дальнейшем держать репозиторий rEFInd в системе не обязательно, однако его наличие гарантирует получение обновлений загрузчика.

Шаг второй. Тут можно оставить всё как есть, но мне больше нравится тема rEFInd theme Regular вместо стандартной. Вы видели на первом скриншоте этой записи именно Regular.

Скачайте архив с DeviantArt, а содержимое архива (папку refind-theme-regular) разместите в /boot/efi/EFI/refind/. Это можно сделать с помощью файлового менеджера (обязательны права администратора), либо используя терминал:

sudo cp -r refind-theme-regular /boot/efi/EFI/refind/

Теперь включите тему в конфиг-файле. Откройте файл refind.conf, используя ваш любимый текстовый редактор или nano:

sudo nano /boot/efi/EFI/refind/refind.conf

И добавьте в конец файла строку include refind-theme-regular/theme.conf.

В этом конфиг-файле вы также можете настроить время ожидания. По умолчанию это 20 секунд, я уменьшил это значение до 5 секунд. Таймаут меняется в начале файла (строка #13). Можете перезагрузиться и проверить результат. Если вы сделали всё правильно, вы увидите новую тему оформления.

elementary OS поставляется с собственными значками для UEFI-загрузчиков, которые перекрывают значки из сторонних тем. Если вы видите странный и некрасивый значок elementary, то удалите файлы .VolumeIcon.icns и .VolumeIcon.png из корневой директории системы.

Шаг третий. rEFInd умеет как загружать grub, так и загружать ядро напрямую, минуя grub. В результате вы можете видеть в меню загрузки сразу несколько значков одной ОС. Я решил эту проблему радикальным методом: я просто удалил grub со всеми его остатками. Не вижу в нём смысла, если rEFInd и сам умеет загружать ядро Linux. Если вы собираетесь последовать моему примеру, то сначала убедитесь, что система действительно корректно загружается без grub.

Если всё хорошо, то сначала удалите все пакеты, связанные с grub:

sudo apt purge grub-efi-amd64 grub-efi-amd64-signed grub-common grub-efi-amd64-bin grub-common grub2-common shim-signed mokutil os-prober secureboot-db shim

Также можно удалить директории /boot/grub и /boot/efi/EFI/ubuntu. После этих действий нужно обязательно установить пакет-пустышку grub-3.0, скачав его с сайта rEFInd. Если вы не сделаете этого, то при каждом обновлении ядра grub будет снова устанавливаться в систему.

Шаг четвёртый. Теперь нужно сделать так, чтобы rEFInd был в приоритете загрузки. Этот вопрос решается индивидуально для каждой железки, возможно у вас и так по умолчанию грузится rEFInd и ничего делать не нужно. На моём HP ProBook я сделал это в настройках биоса, в которых нужно было указать свой путь до загрузчика efi:

Извиняюсь за хреновое качество.

На этом всё, можете наслаждаться новым загрузчиком.

--

--