Windows 10/11向けの2024年8月の月例更新プログラムを適用すると、WindowsとLinuxのデュアルブートが壊れるという問題をMicrosoftが公式に認め、調査と修正を約束したことがわかりました(Neowin)。
Windows 11の既知の不具合をまとめたページには、以下のような情報が掲載されています。
この不具合の内容は、「2024年8月13日にリリースされたWindowsセキュリティ更新プログラム(KB5041585)をインストールした後、デバイスでWindowsとLinuxのデュアルブートセットアップを有効にしている場合、Linuxの起動に関する問題が発生する可能性がある」というものです。
この問題により、Linuxの起動に失敗し、「Verifying shim SBAT data failed: Security Policy Violation. Something has gone seriously wrong: SBAT self-check failed: Security Policy Violation.」というメッセージが表示されます。
2024年8月のWindowsセキュリティ更新プログラムは、古い脆弱なブートマネージャーをブロックするために、Secure Boot Advanced Targeting(SBAT)設定を適用します。このSBAT更新プログラムは、デュアルブートデバイスには適用されないはずですが。一部のデバイスはデュアルブートが検出されず、SBAT値が適用されるべきでない場合に適用されたとのこと。
Microsoftは一時的な回避策として、更新プログラムをまだインストールしていない場合は、以下のレジストリキーを設定することで、SBAT更新プログラムをブロックする方法を提案しています。
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\SBAT /v OptOut /d 1 /t REG_DWORD
すでに更新プログラムを適用し、デュアルブート環境が壊れてしまった場合に関しても回避策が提供されています。こちらはかなり長い手順が必要となっています。
a) Disable Secure Boot:
- Boot into your device’s firmware settings.
- Disable Secure Boot (steps vary by manufacturer).
b) Delete SBAT Update:
- Boot into Linux.
- Open the terminal and run the below command:
sudo mokutil --set-sbat-policy delete
- Enter your root password if prompted.
- Boot into Linux once more.
c) Verify SBAT Revocations:
- In the terminal, run the below command:
mokutil --list-sbat-revocations
- Ensure the list shows no revocations.
d) Re-enable Secure Boot:
- Reboot into the firmware settings.
- Re-enable Secure Boot.
e) Check Secure Boot Status:
- Boot into Linux. Run the below command:
mokutil --sb-state
- The output should be “SecureBoot enabled”. If not, retry the step 4.
f) Prevent Future SBAT Updates in Windows:
- Boot into Windows.
- Open Command Prompt as Administrator and run:
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\SBAT /v OptOut /d 1 /t REG_DWORD
この問題は、Windows Server 2012およびWindows 10 2015 LTSBから、Windows 11 Version 23H2およびWindows Server 2022までサポートされているすべてのWindowsクライアント、サーバーエディションに影響します。