如何用签名的内核替换或删除内核

如何用签名的内核替换或删除内核

每当我更新 ubuntu 时都会收到以下错误消息。该消息要求我删除当前内核版本或用签名版本替换当前内核版本。

这个怎么做?

以下是我收到的消息:

您的系统在固件中启用了 UEFI 安全启动,并且系统上存在的以下内核未经签名:

4.19.6

这些内核无法在安全启动下进行验证。为确保您的系统保持可启动状态,除非删除这些内核或将其替换为已签名的内核,否则 GRUB 将不会在您的磁盘上升级。


我的机器上现在安装了以下内核,通过运行命令列出:dpkg --list | grep linux-image

  1. ic linux-image-4.15.0-29-generic 4.15.0-29.31 amd64 签名内核映像通用
  2. rc linux-image-4.15.0-39-generic 4.15.0-39.42 amd64 签名内核映像通用
  3. ii linux-image-4.15.0-42-generic 4.15.0-42.45 amd64 签名内核映像通用
  4. ii linux-image-4.15.0-43-generic 4.15.0-43.46 amd64 签名内核映像通用
  5. ii linux-image-4.15.0-45-generic 4.15.0-45.48 amd64 签名内核映像通用
  6. ii linux-image-generic 4.15.0.45.47 amd64 通用 Linux 内核映像
  7. ii linux-image-unsigned-4.19.5-041905-generic 4.19.5-041905.201812031110 amd64 64 位 x86 SMP 上 4.19.5 版 Linux 内核映像

我正在运行的内核版本,通过运行命令检索uname -a

Linux dipak 4.19.6 #1 SMP 星期二 十二月 18 10:30:34 IST 2018 x86_64 x86_64 x86_64 GNU/Linux


Ubuntu 发行版本(lsb_release -a):

没有可用的 LSB 模块。分销商 ID:Ubuntu 描述:Ubuntu 18.04.2 LTS 发行版:18.04 代号:bionic

答案1

自上次更新 Grub(2 月 1 日)以来,我们遇到了同样的问题。如果启用了安全启动,未签名的内核将无法启动。它以一条消息结束,内容为签名无效,必须先加载内核. 需要冷停机。

您有 2 个选择:

  1. 在 BIOS 中永久禁用安全启动(最糟糕的选择)
  2. 使用 MOK 管理器在启动时暂时禁用安全启动

莫克经理

sudo mokutil  --disable-validation
root password
mok password: 12345678
mok password: 12345678
sudo reboot

机器将在蓝屏中重新启动,即 MOK 管理器菜单。输入显示的数字,如果是 7,则它是密码的第 7 个字符。因此,保留 12345678。要回答的问题为“是”,以禁用安全启动。重新启动。

启动后,您将看到一条新消息(左上角),内容为 <<以不安全模式启动>>. 之后机器将正常启动并且安全启动保持启用状态。

此更改是永久性的,全新安装 Ten 不会覆盖它。您必须保持这种状态。

要重新启用它:

sudo mokutil  --enable-validation
root password
mok password: 12345678
mok password: 12345678
sudo reboot

Tumbleweed 提供了一个在 Ubuntu 中不起作用的选项:注册密钥并散列到引导加载程序。我们的计算机不是双启动,并且该错误也存在于 Mint 19.1 中。

我们做了一个修改,让启动在 Grub 菜单中持续 5 秒钟,因为左移键在这里不起作用,其他组合键也不起作用。这个调整在 LVM 中工作正常。

GRUB_DEFAULT=0

GRUB_TIMEOUT_STYLE=false

GRUB_TIMEOUT=

https://www.rodsbooks.com/refind/secureboot.html

http://www.rodsbooks.com/efi-bootloaders/secureboot.html#add_keys

mokutil  --sb-state
SecureBoot enabled

4.19.5-041905:未签名且默认

sudo apt-get purge linux-headers-4.19.5-041905 linux-headers-4.19.5-041905-generic linux-image-4.19.5-041905-generic linux-modules-4.19.5-041905-generic

4.15.0-29

sudo apt-get purge linux-headers-4.15.0-29 linux-headers-4.15.0-29-generic linux-image-4.15.0-29-generic

4.15.0-39 + 42

sudo apt-get remove --purge $(sudo dpkg -l | grep "^rc" | awk '{print $2}' | tr '\n' ' ')

第一个命令给了我以下消息/错误

dpkg:错误:需要一个操作选项

输入 dpkg --help 获取关于安装和卸载软件包的帮助 [*];使用 'apt' 或 'aptitude' 实现用户友好的软件包管理;输入 dpkg -Dhelp 获取 dpkg 调试标志值的列表;输入 dpkg --force-help 获取强制选项的列表;输入 dpkg-deb --help 获取关于操作 *.deb 文件的帮助;

标有 [*] 的选项会产生大量输出 - 通过“less”或“more”进行管道传输!

现在读的是:

dpkg --list | grep linux-image
  1. rc linux-image-4.15.0-39-generic 4.15.0-39.42 amd64 签名内核映像通用
  2. rc linux-image-4.15.0-42-generic 4.15.0-42.45 amd64 签名内核映像通用
  3. ii linux-image-4.15.0-43-generic 4.15.0-43.46 amd64 签名内核映像通用
  4. ii linux-image-4.15.0-45-generic 4.15.0-45.48 amd64 签名内核映像通用
  5. ic linux-image-unsigned-4.19.5-041905-generic 4.19.5-041905.201812031110 amd64 64 位 x86 SMP 上 4.19.5 版 Linux 内核映像

与 4.19.5 有冲突(仅安装了配置文件)。您没有正确安装 4.19。重新安装 4.19.5 然后再卸载。

获取 2 个通用标题 + 模块通用 + 图像通用:

https://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D

然后确保下载文件夹中没有 deb 文件并运行以下命令:

cd //home/**your user name**/Downloads
sudo dpkg -i *.deb

重启

相关内容