Как правильно установить systemd-boot?
Из любопытства я пробую systemd-boot на своем ноутбуке с UEFI с безопасной загрузкой. Установка GRUB по умолчанию работает нормально.
Для systemd-boot большинство запросов приводит к этой странице. Это включает установку systemd-boot с
bootctl, создавая
loader.conf, создание postinst ядра
zz-update-systemd-bootсценарий. До сих пор все выглядит нормально, хотя я не понимаю, почему в systemd-boot нет драйвера ext4 fs для доступа к ядрам. В любом случае, как и ожидалось, это не загружается из-за безопасной загрузки.
В разделе безопасной загрузки на этой странице есть
PreLoader.efi &
HashTool.efiнастроить. После выполнения этих шагов при загрузке системы отображается меню systemd-boot, но после выбора Ubuntu выдается эта ошибка:
EFI stub: UEFI Secure Boot is enabled.
Насколько я понимаю,
PreLoaderэто подписанный двоичный файл, который принимается UEFI. Затем загружается
loader.efi (переименован
systemd-bootx64.efi), хэш которого был зарегистрирован. Это загружает
vmlinuzядро, хеш которого также был зарегистрирован. Итак, похоже, что безопасная цепочка в порядке, но загрузка по-прежнему не выполняется. Похоже, что подпись Canonical для ядра здесь не играет роли.
Как заставить это работать, и правильно ли я понял аспекты безопасности?
1 ответ
Я следил за вариантом страницы, о которой вы говорите, за исключением параметров безопасной загрузки.
К сожалению, после внесения изменений Ubuntu linux-generic, linux-headers-generic и linux-image-generic настаивают на установке GRUB в дополнение к установке systemd-boot и устанавливают GRUB в качестве параметра загрузки по умолчанию при каждом обновлении apt. ядра.
В результате при следующей перезагрузке бокс больше не загружается с использованием systemd-boot. Так что, похоже, нужна последняя команда для запуска efibootmgr, чтобы заново установить порядок загрузки, чтобы снова использовать "ubuntu".
Чтобы предотвратить эту неприятность, я думаю, что пакеты DEB Ubuntu linux-generic, linux-headers-generic и linux-image-generic должны быть настроены так, чтобы принимать либо GRUB, либо systemd-boot в качестве принятых загрузчиков, а не принудительно устанавливать GRUB.