発生した問題
Linux Mint をインストールしている PC に LMDE をインストールしようとしたら
Verifiying shim SBAT data failed: Security Policy Violation
Something has gone seriously wrong: SBAT self-check failed: Security Policy Violation
と表示されて,インストールメディアが Boot できない。
解決方法
まあ要するに Secure Boot をオフればおk
- 起動直後に(モデルにもよるけど)F2 とか DEL とかを連打して,UEFI (BIOS) 設定を起動
- Boot 設定の項目から [Secure Boot] を無効化
- 外部メディアから Linux を起動
ってやれば起動するはず。 もしそのまま常用(& Secure Boot を有効化)したいなら
- そのまま OS をインストール → 外部メディアの取り外し
- インストールした OS を起動
- 内蔵パッケージを更新(
apt update && apt upgrade
) - PC を再起動 → 再度 UEFI から Secure Boot を有効化
より詳細なお話(おまけ)(駄文)
原因?
まずこのエラーで検索すると「Windows Update が原因」とする記事がいくつか出てくる。
- https://qiita.com/yutorimatsugami/items/fd015175258487825e98
- https://owl-blog.net/verifiying-shim-sbat-data-failed/
- https://zenn.dev/sushichaaaan/scraps/b4d5857b980d45
ただ今回のケースでは Linux Mint をインストールしていた PC に LMDE をインストールしようとしているため,Windows は関係ないはず。 ただ [空の HDD でも起動に失敗した] とする記事も存在するので,よく分からんがダメなときはダメなんでしょうね。 どちらにせよ,原因は UEFI の Secure Boot 周りってことは確か。
解決方法?
「Secure Boot が原因だからこれをオフにすれば動く」っていうのは分かった。 ただ Secure Boot がオフなのはちと怖いので何とか解決したい。 そのためには何にせよまず起動しなきゃならんので,ここは一旦諦めて Secure Boot を切った状態で起動(ここで起動出来なかったら多分別の問題)。 そのままインストール。
で,いれた OS を起動すると(これはどのディストロもそうですけど)内蔵パッケージの更新が来てるはずなのでこれを更新します。 すると何か良く分かりませんが,Secure Boot をオンにしても正常に起動するようになります(更新しないと起動できないまま)。 たぶん [shim の証明書 (shim-signed)] が更新されるのが理由じゃないかとは思っていますが,詳細な検証は面倒なので追走者に任せます。
それだけ