エラーメッセージ Could not create MokListXRT: Out of Resources

Debian 10.10にアップグレードしたら、再起動できなくなってしまった。原因はshim-signed-common:amd64とのこと。

環境

  • Dell precision T1600 (Intel Xeon E31245 3.30GHz, メモリ 16GB)
  • BIOS version A02(後述するようにA21までアップグレードした。ただし、今回のエラーとは関係ない)

状況

特に考えなく 10.xから10.10へアップグレードし、その後再起動を行ったら以下のエラーメッセージが表示され、再起動しなかった(メッセージ提示後、自動で電源が切れる)

Could not create MokListXRT: Out of Resources
Something has gone seriously wrong: import_mok_state() failed: Out of Resources
  • Debian 10.10のCD(debian-10.10.0-amd64-netinst.iso)だとUEFIからブートできない(上記のエラーメッセージがでる)。
  • Debian 10.2のCD(debian-10.2.x-amd64-netinst.iso)だとUEFIからブートできる。

この現象は以下に報告されているものと同じ現象
www.mail-archive.com

どうも原因はshim-signed-common:amd64らしい。

現時点での解決法

2021年7月11現在は、shim-signed-common:amd64を古いバージョンに戻すか、Secure bootをオフにして、shim-signed-common:amd64もオフにするのが解決法とのこと。

www.mail-archive.com

In terms of making your system boot, I'd suggest temporarily one of:

  • switch back to an older shim-signed package
  • disable Secure Boot and remove shim-signed

解決法:shim-signedを使用しない

UEFIでの起動時に /boot/efi/EFI/debian/shimx64.efi で起動すると、shim-signed-common:amd64 を呼び出すことになる。そこで、grubx64.efi で起動するように設定することで、無事、再起動できるようになった。

手順は以下のとおり。

  1. Dell precision T1600のロゴがでているときにF12を押し、起動順選択画面を出す
  2. BIOS Setup を選ぶ
  3. General → Boot Sequence を選択する
  4. すでにUEFIでDebianを起動する設定がある場合は編集する。編集方法が分からない場合は削除する。
  5. 編集するか、Add boot optionで、設定する。
    • Boot Option Nameは debian
    • File System Listは既に入力されている値(ハードディスク情報が入力済み)
    • File Nameは \EFI\debian\grubx64.efi を入力 or 選択する。

今回、BIOSのバージョンが古すぎたので最新のBIOSにアップグレードした。

  1. Precision T1600のサポート | ドライバーおよびダウンロード | Dell 日本 からBIOSをダウンロードする(サービスタグの入力が必要だった)。最新はA21だが、その前にA04のインストールが必要だった。
  2. ダウンロードしたBIOSをインストールするには、ブータブルDOSのUSBメモリが必要だったので windows10でDOS boot USBを作成する。 | GARAGEMASTERMOJAに従い、作成し、アップグレードした。

余談: watchdog did not stop! となり、リブートできない

Debian GNU/Linux 10.10 で再起動する(reboot, shutdown -r now)をすると、watchdog did not stop! というメッセージがでて、フリーズする。そこで以下のページに従い、以下のように設定したらdebian上から再起動できるようになった。
unix.stackexchange.com

  1. /etc/default/grub のGRUB_CMDLINE_LINUXの値を GRUB_CMDLINE_LINUX="reboot=acpi"とする
  2. ターミナルで update-grub で反映させる。