treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

Windows Update後エラー0x0000005Cが発生する

Windows Update後にOS起動でエラーコード:0x0000005CにてOSの起動が停止するケースに遭遇しました。
あまり対象となる環境は多くなさそうですが、自分のために記録しておきます。

対象の環境

対象はHyper-Vで稼働しているゲストOSのWindows Server 2012(R2でない)で発生しました。
自動更新で自動再起動しているゲストOSなのですが、更新プログラム適用後の起動時にエラーを出して停止したようでした。(という推測、と、いうのも発見が遅れてしまい更新プログラム適用直後に発生したのかどうかは定かではないです。)

ゲストOSは2世代目のゲストで構成しています。

エラー内容

OSの起動時、BIOS(UEFI)のフェーズ完了後のOS起動フェーズに入ったところで、下記のエラーメッセージが画面表示され、OSの起動が停止してしまいました。

----------------------------------------------
Your PC needs to restart.
Please hold down the power button.
Error Code: 0x0000005C
Parameters:
0x0000000000000110
0xFFFFFFFFFFD18000
0x0000000000000019
0xFFFFFFFFC0000001
----------------------------------------------

さしあたり、"Error Code: 0x0000005C"から当たっていこうと思いました。

このエラーコードは「HAL_INITIALIZATION_FAILED」で発生しており、HAL(ハードウェア抽象化レイヤ)の初期化に失敗したことを示しているようです。
2014年のWindows Updateの不具合として同じ症状が発生している情報を発見しました。

support.microsoft.com

他の情報も探してみましたが、VirtualPCでWindows8.1/10を動作させたときにACPI2.0が非サポートであることに起因した同様のエラーが発生している、という情報はいくつか発見できましたが、それ以外のところは発見できませんでした。

ひとまずOSが起動するようにする

対処しようにも、リセット後にまた上記のエラー画面となりOSの起動が阻害されている状態、なんとかOSを起動しないと手を入れるにも手が出ないため、ひとまずはOSが起動するようにそれっぽいオプションを変更してみることにしました。

Hyper-Vマネージャ(virtmgmt.msc)を起動してゲストOSを右クリックし「設定」を選択。

設定画面から「ハードウェア」⇒「セキュリティ」⇒「セキュアブート」の画面を開きます。

図のように「セキュアブートを有効にする」が有効化されている状態で今まで稼働していましたが、このチェックを外して、

このように無効化します。

これで再度リセットし、OSの起動を試行してみます。

OS起動

再びOSが起動してくると、エラー画面は表示されず、以下の画面が表示されました。

画面上部には、
--------------------------------------------------------------
Windows failed to start.(Windows を起動できませんでした。)
A recent hardware or software change might be the cause.(最近のハードウェアまたはソフトウェアの変更が原因である可能性があります。)
To fix the problem:(問題を解決するには:)
--------------------------------------------------------------
と記載があり、文末に
--------------------------------------------------------------
Info : A required device isn't connected or can't be accessed.
(情報 : 必要なデバイスが接続されていないか、アクセスできません。)
--------------------------------------------------------------
と記載。

画面下部に、「ENTER=OS Selection」とあり、いったんEnterキーを押下して起動を進めて見ることにしました。

すると、次の画面、

--------------------------------------------------------------
Choose an operating system to start, or press TAB to select a tool:
(起動するオペレーティング システムを選択するか、Tab キーを押してツールを選択します)
--------------------------------------------------------------
と表示されました。

セキュアブート関連でOS起動が引っ掛かっているなら、セキュアブートは無効化したのでこれでOSが起動するんじゃないかと思い、画面に表示されている「Windows Server 2012」と選択されている状態でEnterキーを押下、起動を続けることにしました。

すると、OSがいつも通り起動していき、

サインイン画面に到達できました。何とかOSが起動してくれたようです。

さっそくサインインしてWindows Updateの適用状況を確認してみたところ、

2月分の更新プログラム適用は正常に終了しているようでした。

この中にセキュアブート関連で起動を阻害したものがあるのかも。

ひとまず一次対処完了

OSが無事起動したことで、とりあえずの対処は完了。

次はセキュアブートを有効化してもエラーにならないように必要な対処を実施しようと思いますが、今回はここまで。

別のOSで

別のWindows Server 2012でWindows Updateを実行した際に気づいたのですが、

KB2992611が検出されて、適用対象としてあげられています。ひょっとしてこれの適用が走ったせいで今回の症状が発生したんじゃないかと考えました。

ひとまず、2023年2月でWindows Server 2012の更新をする際には、このKB2992611に注意しておくほうがいいのかもしれません。(誤検出なのか上書きで適用が動作しているのかは今のところ不明。)