WindowsとLinuxのデュアルブート環境でLinuxが起動しない不具合。2024年8月の更新プログラムが原因 [Update 2]
Microsoftは、WindowsとLinuxのデュアルブート環境において、Linuxが起動しなくなる不具合が発生していることを発表しました。
更新履歴 [記事初公開日: 2024/8/23] ① すでにLinuxが起動しなくなっている場合の復旧手順を加筆。 [2024/8/23] ② 記事下部の修正情報を加筆。 [2024/9/26] [New] |
不具合概要
日本時間で2024年8月14日にリリースされたWindows Update / セキュリティ更新プログラム(以降)をインストールすると、WindowsとLinuxのデュアルブート環境において、Linuxが起動しなくなる場合があります。その際、以下のメッセージが表示される場合があります。
Verifying shim SBAT data failed: Security Policy Violation. Something has gone seriously wrong: SBAT self-check failed: Security Policy Violation. |
2024年8月のセキュリティ更新プログラムは、Secure Boot Advanced Targeting (SBAT)設定を適用して、古くて脆弱なブートマネージャーをブロックします。通常、このSBATアップデートはデュアルブート環境には適用されません。しかし、一部の環境においてデュアルブートを検出できず、適用されてしまい、Linuxが起動しなくなります。
この不具合が発生するOSおよび不具合を内包する更新プログラムは以下。
- Windows11 23H2 / 22H2
KB5041587 (2024年8月28日公開 プレビューリリース)
KB5041585 (2024年8月14日公開 セキュリティ更新プログラム) - Windows11 21H2
KB5041592 (2024年8月14日公開 セキュリティ更新プログラム) - Windows10 22H2 / 21H2
KB5041580 (2024年8月14日公開 セキュリティ更新プログラム) - Windows Server 2022
KB5041580 (2024年8月14日公開 セキュリティ更新プログラム) - Windows Server 2019
KB5041578 (2024年8月14日公開 セキュリティ更新プログラム) - Windows Server 2016
KB5041773 (2024年8月14日公開 セキュリティ更新プログラム) - Windows10 LTSB 2015
KB5041782 (2024年8月14日公開 セキュリティ更新プログラム) - Windows Server 2012 R2
KB5041828 (2024年8月14日公開 セキュリティ更新プログラム) - Windows Server 2012
KB5041851 (2024年8月14日公開 セキュリティ更新プログラム)
対処方法・回避策
▼まだ2024年8月のセキュリティ更新プログラムをインストールしていない場合
まだ2024年8月のセキュリティ更新プログラムをインストールしていない場合、以下のレジストリを追加すればSBATのアップデートはインストールされず不具合も発生ません。
【キー】HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\SBAT 【DWORD】OptOut 【値】『1』 |
上記レジストリの設定はレジストリエディター([Windows] + [R]キーを押して『regedit』と入力してエンター)でできます。または、コマンドプロンプト(管理者として実行)で、『reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\SBAT /v OptOut /d 1 /t REG_DWORD』と入力してエンターキーを押すことでも同じ設定ができます。
将来的にSBATのアップデートをインストールする場合は、DWORD『OptOut』を削除してください。
▼すでにLinuxが起動しなくなっている場合
すでにLinuxが起動しなくなっている場合は以下の手順で復旧するようMicrosoftは案内しています。
- セキュアブート(Secure Boot)を無効化する
- Linuxを起動してターミナルを開き、コマンド『sudo mokutil --set-sbat-policy delete』を実行する。その後、Linuxを再起動する
- ターミナルでコマンド『mokutil --list-sbat-revocations』を実行してSBATの失効を確認する
- セキュアブートを有効化する
- Linuxを起動して、コマンド『mokutil --sb-state』を実行し、『SecureBoot enabled』(セキュアブートが有効)と表示されることを確認する。もし、disabled (無効)なら『4.』の手順を再び行う
- 上記『まだ2024年8月のセキュリティ更新プログラムをインストールしていない場合』を実行し、WindowsにSBATのアップデートがインストールされないようにする
現在、MicrosoftはLinuxパートナーとともに本不具合の調査を行っているとのことです。
修正情報 [2024/9/26] [New]
Microsoftは、2024年9月11日(日本時間)に公開したセキュリティ更新プログラム(以降)にて、本不具合を修正したことを発表しました。詳細は以下の記事をご覧ください。