昇腾故障案例详情页

Atlas 800-3000 Ubuntu 18.04在secure boot开启下启动kdump失败

更新时间: 2021/09/06

暂无评分

问题信息

问题来源产品大类产品子类关键字
版本测试安装部署驱动固件kdump、secure、boot

问题现象描述

软件配置:

OS版本:Ubuntu18.04.3

OS内核:4.15.0-55-generic

问题现象:服务器在secure boot开启的情况下启动kdump提示required key不可用,无法加载kdump kernel,如下图所示:

关键过程、根本原因分析

关键过程:在虚拟机下开启secure boot然后安装Ubuntu 18.04.3,开启kdump也出现了同样的问题,证明该问题与服务器硬件无关,与OS有关。

根本原因分析:
  1. 查找Ubuntu launchpad网站,发现该问题已经在跟踪,给出的可能原因是Canonical的CA证书没有导入BIOS引起的,通过导入可以规避该问题。
  2. 使用mokutil工具将UEFI:MokListRT cert 'Canonical Ltd. Master Certificate Authority证书导入到BIOS发现确实可以规避该问题。
  3. 根据Ubuntu给出的解决方案,CA证书应该由OS安装时自动导入到BIOS,问题就出在shim-signed软件包,这个软件包在安装时没有将Canonical的CA证书更新到BIOS,因此导致kdump启动失败。

结论、解决方案及效果

结论:

这是Ubuntu 18.04.3的BUG,该BUG也存在于Ubuntu 16.04各个小版本以及Ubuntu 18.04.3之前的各个小版本,由于shim-signed包的BUG引起。

解决方案:

Ubuntu UEFI平台开发团队已经知道了这个问题,并且已经发布了新的shim-signed软件包来解决该问题,但是直到输出这个文档为止,这个软件包尚未合入到新的Ubuntu18.04发行版中。新的软件包下载路径如下:

https://launchpad.net/~ubuntu-uefi-team/+archive/ubuntu/ppa

除了使用新的shim-signed包来解决这个问题以外,还可以使用以下的规避方案来规避该问题:
  1. 将crt格式的CA证书转换为der格式。

    # openssl x509 -outform der -in /etc/ssl/certs/ca-certificates.crt -out new-ca.der

  2. 使用mokutil工具将der格式的CA证书导入,注意在导入时会提示设置密码,这个密码将会在后面的步骤中用到。

    # mokutil --import new-ca.der

  3. 重启OS。
  4. 重启后将会进入MOK管理界面,然后按enter键。
  5. 选择Enroll MOK,然后按Yes,在提示输入密码时输入第(2)步设置的密码。
  6. 重启服务器。
  7. OS启动完成后,我们将会使用下面的命令来检查kdump是否已经开启成功:

    # /etc/init.d/kdump-tools status

    上图是表示kdump已经开启成功。

经验总结、预防措施和规范建议

备注

本页内容

该页面对您有帮助吗?
我要评分