Secure Boot на Arch Linux включается через утилиту sbctl: ставишь пакет, создаёшь ключи, подписываешь ядро и загрузчик, записываешь ключи в прошивку и активируешь Secure Boot в BIOS. Занимает минут десять, если прошивка не кривая.
Secure Boot — механизм в UEFI-прошивке, который проверяет подписи EFI-бинарников перед загрузкой. Если подпись неизвестна или отсутствует, прошивка отказывается загружать файл. Цель — защита от подмены загрузчика и ядра до момента, когда ОС берёт контроль. Secure Boot не заменяет шифрование диска — это дополнительный слой.
Проверь, что видит система:
sbctl status
Утилита покажет, установлены ли ключи и в каком режиме прошивка — User Mode (Secure Boot активен) или Setup Mode (ключи можно менять). Альтернатива — bootctl status, строка Secure Boot:.
Важно: чтобы записать свои ключи, прошивка должна быть в Setup Mode. Если она в User Mode — зайди в BIOS и удали текущий Platform Key (опция «Clear Secure Boot Keys»). Об особенностях UEFI — в статье про ошибку EFI variables not supported.
sbctl (Secure Boot Key Manager) — утилита от Foxboron, делающая включение Secure Boot на Arch делом пяти команд. До неё приходилось возиться с efitools и openssl, подписывая каждый бинарник отдельно. Сейчас sbctl — стандарт де-факто: генерирует ключи (PK, KEK, db), записывает их в прошивку, подписывает EFI-файлы и автоматически подписывает обновлённые ядра через pacman hook.
sudo pacman -S sbctl
sudo sbctl create-keys
Ключи сохраняются в /etc/efi-keys/. Не теряй папку — при переустановке системы только с ними восстановишь доступ к подписанным бинарникам.
sudo sbctl enroll-keys -m
Флаг -m добавляет ключи Microsoft в базу доверия. Это критично для dualboot с Windows — иначе файлы, подписанные Microsoft (включая драйверы NVIDIA), не будут загружаться. На некоторых Lenovo ThinkPad и ASUS TUF замена ключей без Microsoft может привести к brick. Если сомневаешься — ставь с -m.
sudo sbctl verify
Утилита проверит EFI-файлы в /boot и покажет неподписанные. Стандартный набор для systemd-boot:
sudo sbctl sign -s /boot/vmlinuz-linux
sudo sbctl sign -s /boot/EFI/BOOT/BOOTX64.EFI
sudo sbctl sign -s /boot/EFI/systemd/systemd-bootx64.efi
Флаг -s копирует подписанный файл в /usr/lib/, чтобы pacman hook обновлял подписи автоматически. Для GRUB вместо systemd-boot подписывается grubx64.efi.
sudo sbctl list
sudo sbctl verify
list покажет подписанные файлы, verify — подтвердит порядок.
Пакет sbctl ставит pacman hook автоматически: после каждого обновления ядра hook переподписывает бинарник. Исключение — systemd-boot-update.service: загрузчик обновляется после ребута, и hook может не подхватить новый файл. Решение — подписать бинарник напрямую в /usr/lib/:
sudo sbctl sign -s -o /usr/lib/systemd/boot/efi/systemd-bootx64.efi.signed /usr/lib/systemd/boot/efi/systemd-bootx64.efi
bootctl install подхватит файл с расширением .efi.signed.
Когда ключи записаны и ядро подписано:
Если система загрузилась — всё работает. sbctl status теперь должен показывать Secure Boot: enabled.
MokManager (Machine Owner Key Manager) — утилита из пакета shim, которая позволяет добавлять собственные ключи (MOK) через интерфейс при загрузке. Это обходной путь для прошивок, которые не дают записать ключи напрямую в базу Secure Boot.
На практике MokManager нужен редко — sbctl справляется напрямую. Но бывают случаи: прошивка не входит в Setup Mode, нужно добавить ключ для конкретного драйвера без полной замены базы, или машина корпоративная с заблокированными настройками. Если sbctl enroll-keys отработал без ошибок — MokManager не нужен.
Если модули NVIDIA не подписаны, после включения Secure Boot будет чёрный экран без GUI. Подпиши модули вручную:
sudo sbctl sign -s /usr/lib/modules/$(uname -r)/kernel/drivers/video/nvidia-drm.ko.zst
Самые частые причины:
sbctl verify.sbctl status.sudo sbctl sign -s /boot/vmlinuz-linux-zen.Нет, есть альтернативы: systemd-ukify (systemd v254+, пакет в core), ручной процесс через efitools и sbsigntools, утилита sbupdate. Но sbctl — самый удобный вариант и стандарт де-факто.
Нет, sbctl подписывает любой EFI-бинарник: ядро, загрузчик, UKI, модули. Про сборку и подписание UKI читай в статье про разрешение проблем с gop-simpledrm и UKI.
Да. Выключи Secure Boot в BIOS или удали ключи — вернёшься в исходное состояние. Подписанные бинарники продолжат работать, просто прошивка перестанет их проверять.
При sbctl enroll-keys -m ключи Microsoft добавляются в базу доверия, и Windows Boot Manager загрузится без проблем. Проблемы возможны, только если Windows сменит ключ загрузчика — тогда придётся переподписать.
Secure Boot на Arch через sbctl — это реально и не больно. Десять минут: ставишь пакет, генерируешь ключи, подписываешь ядро и загрузчик, записываешь ключи с флагом -m, включаешь Secure Boot в BIOS. Дальше обновления ядра подписываются автоматически. Главное — проверь, что прошивка входит в Setup Mode и принимает ключи. Если прошивка кривая, смотри статью про EFI variables not supported. А если ставишь Arch с нуля — загляни в пошаговое руководство по установке или в установку с LVM.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии