Вопрос или проблема
У меня есть компьютер с графическими картами NVidia, поэтому у меня установлен ключ подписи в MOK для загрузки проприетарного драйвера NVidia. Пока все хорошо.
Я также установил memtest86+ версии 7.00-1build1 amd64.
Как вы знаете, производитель программного обеспечения не может подписывать свои бинарные файлы у Microsoft.
Но это можно сделать, используя пользовательские ключи.
Вопрос, как я мог бы это сделать и создать /boot/memtest86+… различные бинарные файлы с правильной подписью моего локального ключа MOK?
Заранее благодарю за ваши подсказки, советы или решение.
Желаю вам хорошего и светлого дня, пока они еще есть..
Ответ или решение
Уважаемый пользователь,
Спасибо за ваш вопрос. Я постараюсь помочь вам найти решение для использования memtest86+ на машине с включенной защитой Secure Boot и установленными пользовательскими ключами MOK. Ваша ситуация относится к категории управления безопасностью загрузки, что требует аккуратного подхода и понимания соответствующего программного обеспечения и процедур.
Теория
Secure Boot — это функция, предназначенная для предотвращения загрузки неавторизованного кода при запуске системы. Она проверяет подписи всех загрузочных компонентов и программного обеспечения на компьютере. Все компоненты должны быть подписаны доверенными ключами, такими как ключи Microsoft или пользовательскими ключами, добавленными в систему через Machine Owner Key (MOK).
Memtest86+ — это полезное программное обеспечение для тестирования оперативной памяти на наличие ошибок. Однако его бинари не подписаны Microsoft, что делает его использование на системе с Secure Boot несколько сложным.
Пример
На практике это означает следующее: если вы хотите запускать неподписанные кодовые фрагменты, такие как memtest86+, на машине с Secure Boot, вам придется их подписать самостоятельно, используя пользовательские ключи MOK. Ваш сценарий включает уже подписанную NVidia-драйвер, поэтому у вас уже должен быть опыт с использованием MOK.
Применение
Вам необходимо будет выполнить следующие шаги, чтобы подписать memtest86+ и использовать его на вашем устройстве:
-
Создание пары ключей для подписи:
- Если у вас еще нет ключей, вы можете создать их с помощью утилиты
openssl
. Для этого выполните:openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Your Name/"
Это создаст закрытый ключ
MOK.priv
и открытый ключMOK.der
.
- Если у вас еще нет ключей, вы можете создать их с помощью утилиты
-
Импортирование ключа в MOK:
- Импортируйте созданный открытый ключ в MOK, используя утилиту
mokutil
:sudo mokutil --import MOK.der
Вам будет предложено создать пароль, который будет использоваться для подтверждения регистрации ключа при следующей загрузке.
- Импортируйте созданный открытый ключ в MOK, используя утилиту
-
Подтверждение ключа при загрузке:
- Перезагрузите систему. В процессе загрузки вы войдете в интерфейс MOK Manager. Следуйте инструкциям для завершения регистрации ключа, используя пароль, который вы создали ранее.
-
Подпись исполняемого файла memtest86+:
- Убедитесь, что у вас установлен
sbsigntool
. Установите его, если необходимо:sudo apt install sbsigntool
- Подпишите исполняемый файл memtest86+ вашим ключом:
sbsign --key MOK.priv --cert MOK.der --output /boot/signed_memtest86+.efi /boot/memtest86+.efi
Это создаст подписанную версию файла memtest86+.
- Убедитесь, что у вас установлен
-
Обновление загрузчика:
- Убедитесь, что ваша новая подписанная версия загружается вместо оригинальной. Вы можете отредактировать конфигурацию GRUB, чтобы она указывала на правильно подписанный файл:
sudo nano /etc/grub.d/40_custom
Добавьте в конец файла:
menuentry "Memtest86+ (EFI Signed)" { insmod part_msdos insmod ext2 set root='hd0,msdos1' chainloader /boot/signed_memtest86+.efi }
Сохраните изменения и выполните:
sudo update-grub
чтобы применить изменения в конфигурации GRUB.
- Убедитесь, что ваша новая подписанная версия загружается вместо оригинальной. Вы можете отредактировать конфигурацию GRUB, чтобы она указывала на правильно подписанный файл:
После выполнения этих шагов, вы сможете использовать memtest86+ на вашем устройстве, даже если Secure Boot включен. Это решение обеспечивает дополнительную гибкость при использовании систем контроля загрузки и позволяет вам использовать все преимущества диагностики памяти с помощью memtest86+.
С уважением,
Ваш IT-эксперт