久々に、 Ventoy: A New Bootable USB Solution をブートしようとしたら、以下のようなエラーが発生してしまった。
Verifiying shim SBAT data failed: Security Policy Violation
Something has gone seriously wrong: SBAT self-check failed: Security Policy Violation
スペルのブレで場合によっては以下の表記となっているかもしれない。
Verifying shim SBAT data failed: Security Policy Violation
Something has gone seriously wrong: SBAT self-check failed: Security Policy Violation
どうやら、セキュアブートをサポートする UEFI 環境で起動しようとすると、上記エラーが発生するようだ。
本記事執筆時の Ventoy 最新版 1.99 では修正されていない。
もしかしたらより新しいバージョンでは修正されているかもしれないので、古いバージョンを使用しているなら、まずはバージョンアップを試してみよう。
ただ、大分前 (2023年12月) から問題になっているのに、 Ventoy 側にはこの修正が反映されていない。
このため、この問題のワークアラウンドについて紹介しよう。
ワークアラウンド方法1) セキュアブートを無効にする
単純な話、セキュアブートでエラーになっているのだから、 UEFI 設定でセキュアブートを無効にしてしまえば良い。
無効方法は各PC (が採用している UEFI) によって異なるので各自調べてほしい。
セキュアブートを無効にしている間は、セキュリティが落ちる。
Ventoy を使う用事が一通り済んだら、セキュアブート設定は有効に戻しておこう。
ワークアラウンド方法2) Ventoy の SHIM を更新する
セキュアブートを無効にしたくない場合、 Ventoy 側の "shim" を更新しても解消する。
そもそも今回の問題は、 Windows Update 等によって UEFI Secure Boot Advanced Targeting (SBAT) の電子署名検証の失効リストが更新され、 特定の古いブートローダー (shim 15.7) の起動に失敗するようになった為だ。 (ref: ventoy/Ventoy#2692)
Ventoy のイメージ上のブートローダーを、修正された shim 15.8 に差し替えてやれば良い。
ざっくりしたやり方は、 https://github.com/ventoy/Ventoy/issues/2692#issuecomment-2085409080 に書いてある。
…が、 Windows 上だと他の shim を使ったセキュアブートする OS (Ubuntu とか Fedora とか) から最新の shim コピーして持ってくるのが若干面倒だ。
shim を置き換え済みの Ventoy 用のイメージを添付してくれている人がいたので、そちらを利用する。
- Ventoy の DLページ から、 Ventoy 1.0.99 の Windows 版をダウンロードして展開。
- もし 1.0.99 より新しいけど SBAT の問題が修正されていないバージョンがあっても、 1.0.99 をつかう
- https://github.com/ventoy/Ventoy/issues/2692#issuecomment-2362323248 に添付されている
ventoy-1.0.99.-.Updated.shim-x64-15.8-3.x86_64.-.ventoy.disk.img.xz.zip
をダウンロード&展開。 - (2) の
./*/ventoy/ventoy.disk.img.xz
を、 (1) の./ventoy/ventoy.disk.img.xz
へ上書きコピーする- 私が DL した時点では、更新済みの
ventoy.disk.img.xz
の SHA256 は22960ce44aecec2afb82a55d0b111bb2d3117220727c686905780d812c8e754e
だった。
- 私が DL した時点では、更新済みの
- (1) の
./Ventoy2Disk.exe
を起動して、USB メモリに Ventoy をインストールするか、既存の Ventoy USB をアップデートする。
Ventoy とは第三者だろうこの添付ファイルを作成した人を信用するか否か(悪意ある改変が無いか)といった懸念はゼロではないが、 OSS でそこ疑い出すと切りが無いので、ありがたく使わせていただく。
各自自己責任で使ってくれ。