Я обновил свое ядро сегодня с ukuu, и с тех пор я не могу загрузиться, потому что я получаю это ошибки:
error: /boot/vmlinuz-4.18.12-041812-generic has invalid signature
error: you need to load the kernel first
У меня есть двойная загрузка с окнами 10 и человечность 18.10 (Обновленный сегодня)
Обновление: Мне удалось загрузиться к более старому ядру, которое я выбрал из "Расширенных настроек для Ubuntu" в личинке
Но я должен обновить свое ядро и если я делаю это, я все еще получаю ту же проблему...
Saya menyelesaikan masalah saya berikutan tutorial ini untuk menandatangani / boot / vmlinuz untuk boot selamat, Perhatikan bahagian terakhir tutorial
Вместо того, чтобы подписывать рассматриваемое ядро, я просто отключил безопасную загрузку в меню BIOS / UEFI своего ноутбука.
Обычно вы можете войти в меню, нажав специальную во время загрузки , вы можете использовать Google для своего устройства, или он может даже отображаться на экране во время загрузки.
https://github.com/jakeday/linux-surface/blob/master/SIGNING.md содержит более конкретные инструкции по подписанию ядра (адаптированные из того же учебного курса, ссылка на который приведена в принят ответ). Инструкции полностью воспроизводятся следующим образом:
Инструкции предназначены для ubuntu, но должны работать аналогично для других дистрибутивов, если они используют прокладку оболочки
и grub в качестве загрузчика. Если ваш дистрибутив не использует оболочку оболочки (например, Linux Foundation Preloader), там
должны быть аналогичные шаги для завершения подписи (например, HashTool вместо MokUtil для LF Preloader)
или вы можете использовать прокладку. Пакет ubuntu для прокладки называется подписанный оболочкой
, но
пожалуйста, узнайте, как правильно установить его, чтобы не испортить загрузчик.
Начиная с последнего обновления GRUB2 (2.02 + dfsg1-5ubuntu1) в Ubuntu, GRUB2 не загружает неподписанные ядер больше, пока включена безопасная загрузка. Пользователи Ubuntu 18.04 будут уведомлены во время при обновлении пакета grub-efi это ядро не подписано, и обновление будет прервано.
Таким образом, у вас есть три варианта решения этой проблемы:
Поскольку второй и третий варианты на самом деле нецелесообразны, это шаги, чтобы подписать ядро самостоятельно.
Инструкции адаптированы из блога Ubuntu . Перед тем, как продолжить, сделайте резервную копию каталога / boot / EFI, чтобы вы могли все восстановить. следить эти шаги на ваш страх и риск.
# This definition stops the following lines failing if HOME isn't
# defined.
HOME = .
RANDFILE = $ENV::HOME/.rnd
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = v3
string_mask = utf8only
prompt = no
[ req_distinguished_name ]
countryName = <YOURcountrycode>
stateOrProvinceName = <YOURstate>
localityName = <YOURcity>
0.organizationName = <YOURorganization>
commonName = Secure Boot Signing Key
emailAddress = <YOURemail>
[ v3 ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical,CA:FALSE
extendedKeyUsage = codeSigning,1.3.6.1.4.1.311.10.3.6
nsComment = "OpenSSL Generated Certificate"
Настройте все части с вашими данными.
openssl req -config ./mokconfig.cnf \
-new -x509 -newkey rsa:2048 \
-nodes -days 36500 -outform DER \
-keyout "MOK.priv" \
-out "MOK.der"
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
sudo mokutil --import MOK.der
Вам будет предложено ввести пароль, вы просто используете его для подтверждения ключевой выбор в следующий шаг, выберите любой.
Перезагрузите систему. Вы увидите синий экран инструмента под названием MOKManager. Выберите «Enroll MOK», а затем «View key». Убедитесь, что это ваш ключ, который вы создали на шаге 2. После этого продолжите процесс, и вы должны ввести пароль, который вы ввели в Шаг 4. Продолжите загрузку системы.
Убедитесь, что ваш ключ зарегистрирован с помощью:
sudo mokutil --list-enrolled
sudo sbsign --key MOK.priv --cert MOK.pem /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface --output /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface.signed
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
sudo update-grub
sudo mv /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo mv /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo update-grub
Теперь ваша система должна работать под подписанным ядром, и обновление GRUB2 снова работает. Если хочешь Чтобы обновить собственное ядро, вы можете легко подписать новую версию, выполнив указанные выше действия. снова, начиная с седьмого шага. Таким образом, РЕЗЕРВНОЕ КОПИРОВАНИЕ МОК-ключей (МОК.дер, МОК.пем, МОК.прив).
У меня возникла эта проблема после сегодняшнего обновления. Замена системного загрузчика на shimx64.efi
, похоже, исправила его.