Сразу к делу: rEFInd, графический загрузчик UEFI, сам находит ядра и initramfs на всех разделах и показывает их в виде меню с иконками. Установка занимает две команды (pacman -S refind и refind-install), настройка сводится к правке одного файла refind.conf, а темы подключаются одной строкой include. В отличие от GRUB, конфиг не нужно перегенерировать после каждого обновления ядра: rEFInd сканирует разделы и подхватывает новый vmlinuz-linux автоматически.
rEFInd это менеджер загрузки для UEFI-систем. Он не хранит список пунктов в конфиге, как GRUB, а сканирует разделы в поисках загрузчиков и ядер. Нашёл vmlinuz-linux рядом с initramfs-linux.img на ext4 или btrfs разделе, добавил пункт в меню, подобрал иконку по имени ОС. Никаких grub-mkconfig после каждого обновления ядра.
Основные плюсы:
os-prober.Минусы тоже есть. rEFInd работает только на UEFI, для BIOS-систем он не подходит. Настройка параметров ядра менее гибкая, чем в GRUB, хотя для обычного использования её хватает.
Пакет лежит в официальных репозиториях:
sudo pacman -S refind
Дальше установщик сам кладёт файлы на ESP и создаёт запись в NVRAM:
sudo refind-install
Команда находит ESP, копирует туда каталог EFI/refind и регистрирует загрузчик как «rEFInd Boot Manager». После перезагрузки в меню UEFI появится новый пункт. Порядок загрузки при необходимости меняется через efibootmgr, разбор команд в статье «Порядок загрузки в NVRAM через efibootmgr».
Если запись в NVRAM не нужна, например ты хочешь загружаться с флешки или управлять порядком вручную, установи только файлы на ESP:
sudo refind-install --usedefault /dev/sda1
/dev/sda1 подставь свой ESP. В этом режиме rEFInd не трогает NVRAM, а кладёт загрузчик в EFI/BOOT/bootx64.efi, откуда его подхватывает прошивка.
refind-install сам определяет точку монтирования ESP. Если ESP смонтирована в /boot, конфиг появится в /boot/EFI/refind/refind.conf. Если в /efi, путь будет /efi/EFI/refind/refind.conf. Дальше в статье я пишу /boot/EFI/refind/, для /efi просто замени префикс.
Весь конфиг лежит в одном файле: /boot/EFI/refind/refind.conf. Он читается при каждой загрузке, правки применяются сразу, без перегенерации.
timeout 5
resolution 1920 1080
timeout задаёт секунды ожидания перед загрузкой пункта по умолчанию. resolution ставит разрешение меню, можно указать max, чтобы взять максимальное из поддерживаемых. Если картинка меню мылится, добавь:
use_graphics_for linux,windows
Эта строка включает графический вывод для перечисленных ОС. Без неё rEFInd может рисовать меню в текстовом режиме.
scanfor internal,external,optical
internal: внутренние диски.external: USB-накопители.optical: оптические приводы.bioshdd: поиск BIOS-загрузчиков на дисках с MBR.Если не хочешь, чтобы rEFInd копался во флешках, убери external.
default_selection "+,vmlinuz-linux"
Строка выбирает первый пункт, имя которого содержит vmlinuz-linux. Знак + означает «первый подходящий». Можно указать точное имя: default_selection "Arch Linux".
showtools shell,memtest,mok_tool,about,reboot,shutdown,firmware
Добавляет в нижнюю часть меню иконки: оболочку UEFI, тест памяти, перезагрузку, выключение и вход в прошивку. firmware удобен, когда нужно попасть в UEFI без клавиши на старте.
rEFInd ищет файлы с именами vmlinuz*, kernel*, bzImage* и пару к ним: initramfs-linux.img или initrd*.img. Для каждого ядра он создаёт пункт меню. Если в системе несколько ядер, например linux и linux-lts, в меню появятся оба пункта, каждый со своим initramfs.
Параметры загрузки берутся из файла refind_linux.conf, который лежит рядом с ядром, то есть в /boot. Сгенерировать его можно одной командой:
sudo mkrlconf
Утилита читает текущую командную строку ядра из /proc/cmdline и записывает варианты загрузки. Файл выглядит так:
"Boot with standard options" "root=UUID=1a2b... rw"
"Boot to single-user mode" "root=UUID=1a2b... rw single"
"Boot with minimal options" "ro root=UUID=1a2b..."
Первая строка используется по умолчанию. Если в системе LUKS или btrfs, параметры вроде cryptdevice= и rootflags= тоже попадут сюда из /proc/cmdline. Проверь файл после генерации: cat /boot/refind_linux.conf. UUID корня можно сверить командой lsblk -f.
Если refind_linux.conf нет, rEFInd попробует загрузить ядро с минимальными параметрами, но корень может не найтись. Поэтому сразу после установки запускай mkrlconf.
Темы для rEFInd ставятся в каталог тем на ESP. Популярные варианты: rEFInd-minimal, Darkmini, rEFInd-minimal-black. Скачай архив с GitHub и распакуй:
sudo mkdir -p /boot/EFI/refind/themes
sudo tar -xzf rEFInd-minimal.tar.gz -C /boot/EFI/refind/themes
Затем подключи тему в конец refind.conf:
include themes/rEFInd-minimal/theme.conf
Путь относительный, от каталога с refind.conf. Внутри theme.conf прописаны баннер, иконки и цвета. После перезагрузки меню сменит оформление. Для GRUB похожий приём разобран в статье «Тема оформления GRUB: фон и шрифты».
rEFInd поставляется с набором иконок для Linux, Windows и macOS. Иконка выбирается по имени файла ядра или загрузчика: нашёл vmlinuz-linux на разделе с меткой Arch, показал иконку Linux. Свои иконки можно положить в каталог темы и переопределить через icons_dir в theme.conf. Формат PNG, размер обычно 128 на 128 пикселей.
Если Windows не отображается в меню, проверь, что раздел с ней доступен для сканирования и в scanfor есть internal.
rEFInd не трогает GRUB: файлы загрузчика остаются на месте. Чтобы вернуть всё как было, удали запись rEFInd из NVRAM и сотри его каталог с ESP.
Сначала посмотри список записей:
efibootmgr
Найди строку с «rEFInd Boot Manager» и её номер вроде Boot0003, затем удали:
sudo efibootmgr -b 0003 -B
Потом удали файлы:
sudo rm -rf /boot/EFI/refind
Если rEFInd ставился с --usedefault, файлы лежат в /boot/EFI/BOOT/ под именем bootx64.efi. В этом случае запись в NVRAM не создавалась, достаточно удалить каталог. После этого в меню UEFI останется только GRUB. Смена загрузчика без переустановки системы разобрана в статье «Смена загрузчика с GRUB на systemd-boot»: приём тот же, только в обратную сторону.
Если ESP отдельный от /boot, rEFInd не умеет читать ext4 или btrfs без драйверов. Ядро лежит на корневом разделе, а драйверов нет, меню пустое. Решение: установить драйверы:
sudo refind-install --alldrivers
Команда скопирует все драйверы в /boot/EFI/refind/drivers_x64/. Нужные файлы называются ext4_x64.efi и btrfs_x64.efi. Если ESP смонтирована в /boot, драйверы не нужны: rEFInd читает ядро через файловую систему ESP.
Частая причина: resolution выше, чем поддерживает прошивка. Поставь resolution max или убери строку совсем. Второй вариант: отключи графику для Linux строкой use_graphics_for windows.
Проверь scanfor и что раздел Windows не скрыт. Для dualboot с общим ESP смотри статью «Один EFI-раздел для dualboot».
Нет. rEFInd встанет рядом, а в меню UEFI будет выбор между загрузчиками. GRUB можно удалить позже, когда убедишься, что rEFInd работает.
Он видит, просто пункт мог уехать вниз списка. Проверь default_selection и что refind_linux.conf на месте. После обновления ядра ничего перегенерировать не нужно.
Порядок первого пункта задаёт default_selection, остальные rEFInd сортирует сам. Точный порядок можно навязать через dont_scan и also_scan в refind.conf.
Значит, параметры ядра неполные. Проверь refind_linux.conf: там должны быть root=UUID=... и rw. Перегенерируй файл командой sudo mkrlconf.
systemd-boot тоже автообнаруживает ядра, но работает только с ESP и не умеет читать ext4 или btrfs без дополнительных настроек. rEFInd сканирует все разделы и умеет грузить Windows и macOS из одного меню.
rEFInd подходит тем, кто устал перегенерировать конфиг GRUB после каждого обновления ядра и хочет красивое графическое меню. Установка через refind-install, настройка в одном refind.conf, темы одной строкой include. Главное после установки: запусти mkrlconf, чтобы ядро получало правильные параметры, и при отдельном ESP не забудь про драйверы. Вернуться к GRUB можно в любой момент, удалив запись из NVRAM и каталог с ESP.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии