ニュース

2024年8月パッチのデュアルブート破壊問題、Microsoftが復旧方法を明らかに

セキュアブートを無効化してLinuxからSBATアップデートを削除

自社のサポートサイト

 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環境を復旧できる。

  1. セキュアブート(SecureBoot)を無効化する(手順はメーカーによって異なる)
  2. SBATアップデートを削除する
    ・Linuxを起動して、ターミナルから以下のコマンドを実行する。実行の際はrootパスワードが必要
    sudo mokutil --set-sbat-policy delete

    ・Linuxを再起動する
  3. ターミナルで以下のコマンドを実行し、SBATの変更取り消しを確認する
    mokutil --list-sbat-revocations
  4. セキュアブートを再度有効にする
  5. Linuxを起動し、以下のコマンドでセキュアブートのステータスを確認する
    mokutil --sb-state
  6. セキュアブートが有効ならばOK。無効ならば手順4を再度実行する
  7. Windowsで今後のSBAT更新を防止する。管理者権限で以下のコマンドを実行
    reg add HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥SecureBoot¥SBAT /v OptOut /d 1 /t REG_DWORD

 ただし、ファームウェア設定を誤って変更すると、デバイスが正しく起動しなくなる可能性がある。十分に手順を確認したうえで、自信のあるユーザーのみが挑戦すべきだ。