ニュース
2024年8月パッチのデュアルブート破壊問題、Microsoftが復旧方法を明らかに
セキュアブートを無効化してLinuxからSBATアップデートを削除
2024年8月23日 08:22
2024年8月パッチの適用でWindows/Linuxデュアルブート環境が壊れる問題に関し、米Microsoftは8月22日(現地時間)、追加のワークアラウンドを公開した。OSを再起動してパッチの適用を完了したあとも、デバイスを復旧できる可能性がある。
この問題は、2024年8月のセキュリティ更新プログラムを適用すると、WindowsとLinuxのデュアルブート環境が壊れることがあるというもの。セキュリティ強化のために「Secure Boot Advanced Targeting」(SBAT)と呼ばれる設定を変更して古い脆弱なブートマネージャーをブロックする処理が、本来適用されるべきではないデュアルブート環境にも設定されてしまう可能性があった。最悪の場合、Linuxを起動(ブート)できなくなる。影響するプラットフォームは、以下の通り。
- Windows 11 バージョン 23H2
- Windows 11 バージョン 22H2
- Windows 11 バージョン 21H2
- Windows 10 バージョン 22H2
- Windows 10 バージョン 21H2
- Windows 10 Enterprise 2015 LTSB
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
問題を緩和するには、パッチの適用を完了する前にSBATの変更をオプトアウトレジストリキーをインストールするのが有効。
reg add HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥SecureBoot¥SBAT /v OptOut /d 1 /t REG_DWORD
パッチの適用を完了してしまった場合は、以下の方法でLinux環境を復旧できる。
- セキュアブート(SecureBoot)を無効化する(手順はメーカーによって異なる)
- SBATアップデートを削除する
・Linuxを起動して、ターミナルから以下のコマンドを実行する。実行の際はrootパスワードが必要sudo mokutil --set-sbat-policy delete
・Linuxを再起動する - ターミナルで以下のコマンドを実行し、SBATの変更取り消しを確認する
mokutil --list-sbat-revocations
- セキュアブートを再度有効にする
- Linuxを起動し、以下のコマンドでセキュアブートのステータスを確認する
mokutil --sb-state
- セキュアブートが有効ならばOK。無効ならば手順4を再度実行する
- Windowsで今後のSBAT更新を防止する。管理者権限で以下のコマンドを実行
reg add HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥SecureBoot¥SBAT /v OptOut /d 1 /t REG_DWORD
ただし、ファームウェア設定を誤って変更すると、デバイスが正しく起動しなくなる可能性がある。十分に手順を確認したうえで、自信のあるユーザーのみが挑戦すべきだ。