Visor, новый открытый UEFI-менеджер загрузки для Linux, предназначен для запуска ядер, Unified Kernel Images, Windows и других EFI-приложений. Проект написан в основном на C и сочетает скорость и эффективность GRUB с продуманным интерфейсом rEFInd, использующим иконки.

Visor отличается от аналогов тем, что не использует скриптовый движок и множество генерируемых конфигурационных файлов, а полагается на один конфигурационный файл boot.conf, размещённый в системном разделе EFI.

При запуске Visor отображает графическое меню загрузки с использованием протокола UEFI Graphics Output Protocol. Интерфейс использует двойную буферизацию для минимизации мерцания и поддерживает плавные анимации при переключении между операционными системами и пунктами загрузки.

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

Visor UEFI Boot Manager
Visor UEFI Boot Manager

Автор изображения: Visor

Ещё одна особенность: навигация не ограничивается клавиатурой. Если прошивка системы предоставляет совместимое указательное устройство, пользователи могут выбирать и запускать пункты меню с помощью мыши, тачпада или сенсорного экрана. В качестве запасного варианта, когда графический вывод недоступен, предусмотрено текстовое меню.

Visor может загружать Linux с помощью EFI-заглушек ядра (EFI stub) или Unified Kernel Images, объединяя ядро, initramfs и параметры командной строки в единый исполняемый EFI-файл. Для упрощения и переносимости разработчики рекомендуют размещать UKI на системном разделе EFI с файловой системой FAT.

Также поддерживаются традиционные конфигурации с отдельными файлами vmlinuz и initramfs. Однако для доступа к файлам на файловых системах Linux, таких как ext4 или Btrfs, пользователям потребуется предоставить подходящий EFI-драйвер файловой системы. Visor не включает эти драйверы, но может загружать совместимые драйверы .efi, размещённые в его каталоге drivers.

Помимо Linux, Visor может передавать управление другим исполняемым EFI-файлам, включая диспетчер загрузки Windows от Microsoft, поэтому он подходит для систем с двойной загрузкой Linux и Windows.

Ещё одна полезная функция: автоматическое обнаружение загрузочных записей. При отсутствии файла boot.conf Visor ищет наиболее распространённые загрузчики Linux и Windows и пытается автоматически построить меню. Пользователи, предпочитающие полный контроль, могут вручную определить записи через конфигурационный файл.

Visor также понимает записи спецификации Boot Loader Specification, используемые в системах на основе OSTree и системах с образами, таких как Fedora Silverblue, Fedora Kinoite, Fedora CoreOS и развёртываниях bootc. Несколько развёртываний одной операционной системы могут быть сгруппированы под одной иконкой, а пользователи могут просматривать текущую, предыдущие и версии для отката прямо из меню загрузки.

Для систем с подсчётом загрузок Visor может уменьшать счётчик оставшихся попыток загрузки перед запуском записи. Если обновление не загружается после исчерпания всех разрешённых попыток, менеджер автоматически возвращается к предыдущему развёртыванию.

Поддерживается и Secure Boot. При запуске через shim Visor использует протокол проверки shim для проверки ядер Linux, UKI, диспетчера загрузки Windows и других EFI-образов в формате PE перед выполнением. Если проверка не пройдена при активном Secure Boot, Visor не запустит образ.

Для полной совместимости с Secure Boot сам Visor и любые отдельно установленные драйверы файловых систем должны быть подписаны или запускаться через соответствующую доверенную цепочку.

Для диагностики Visor записывает файл boot.log в системный раздел EFI. Журнал сохраняет информацию о трёх последних загрузках и регистрирует ошибки разбора конфигурации, загрузки образов, декодирования PNG, инициализации драйверов и передачи управления.

Установка осуществляется с помощью скрипта проекта, который собирает Visor, копирует необходимые файлы в системный раздел EFI и опционально создаёт запись в прошивке с помощью утилиты efibootmgr. Установщик также предоставляет команду visor на стороне хоста для сборки, установки, обновления, подписи, проверки конфигураций, проверки статуса и удаления загрузочного менеджера.

Visor предназначен для x86_64 систем с UEFI и требует для сборки из исходников файлы разработки GNU-EFI, GCC и binutils. Проект распространяется под пермиссивной лицензией BSD из 2 пунктов.

Дополнительная информация, исходный код, инструкции по установке и примеры конфигураций доступны в GitHub-репозитории проекта.