DELLのBIOSアップデート無限ループに遭遇
DELLのノートPCでBIOSアップデートが無限ループする症状に遭遇しました。
悪戦苦闘の結果なんとか復旧できました。同様の症状に遭遇した時の為に覚書を作っておきます。
とりあえずループを止める
筆者が使用していたノートPCでは、BIOSアップデート中は電源ボタンを長押ししても電源を切れない仕様になっているようでした。
加えて、バッテリーが取り外しできない機種だったため、ループ自体を止める方法も最初はわかりませんでした。
電源を切れるタイミングは、一連のBIOSアップデート処理終了後(グリーンの文字でリブートを知らせるメッセージが出た後)から、ふたたびアップデートが始まるまでです。
リブート処理で立ち上がった後から、再びBIOSのエラー検出メッセージが出る前までの間で電源ボタンを押すと電源を切ることができます。
とりあえずこの状態にして、あとの対策をします。
Windowsアップデートが原因?
落ち着いてループの状況を見てみると、DELLの自動リカバリーツールがBIOSの不良を検知し、BIOSのアップデートを実行していました。
アップデート事体は正常に完了するのですが、リブートするとBIOSの再び不良を検知し、ループします。
最初はBIOSの書き込み領域に不良が発生したのかとも思いましたが、そうではなさそうでした。
証拠となる文献はみつけられませんでしたが、復旧の過程からWindowsアップデートが原因だと筆者は思います
回復までの経緯
筆者が回復するまでには次のような遷移でした。
DELLの公式ページを参考に、USBメモリからBIOSを復旧する方法を試しながら(これでは改善しませんでした)電源のON/OFFを繰り返していたところ、Windowsアップデートの表示が出ました。
アップデートは0~30%まで進み、その後再びBIOSアップデートループが始まりました。
この後も電源のON/OFFを繰り返していたところ、今度はWindowsアップデートが30~100%まで進み、正常に復旧しました。
Windowsのアップデートの表示が100%になってからはBIOSのリカバリモードが起動しなくなったので、推測するに、Windowの高速スタートアップ機能やアップデートとDELLのBIOSリカバリーツールが競合して無限ループを引き起こしていたのではないかと思います。
回復のカギはWindowsの自動復旧機能だったのかもしれません、近年のWindowsは何度か起動に失敗するとリカバリーモードになるので。そうだとしたら、単純に電源ON/OFFを繰り返せばもっと早く回復できたのかもしれません。
BIOSリカバリー方法
今回この作業が必要だったのか、必要でなかったのか不明ですがDELLのノートPCのBIOSアップデートの方法を合わせて書いておきます。
詳しくは先に紹介したページやこちらのページにも載っていますが、わかりづらい部分を補足しながら説明します。
- 機種の確認
DELLサポートでサービスタグを入力して、対象のPCの型のアップデートプログラムを検索します。
- BIOSイメージのダウンロード
ドライバーおよびダウンロードのタブから「特定のドライバ―を手動で検索」でカテゴリをBIOSにして検索します。
最新のBIOSアップデートの行を選択すると、詳細が表示されて「その他の形式」というリンクがあるので、ここをクリックしてBIOS_IMG.rcvファイルをダウンロードします。
また、最新のBIOSが問題だと思われる場合は「以前のバージョン」から以前のバージョンのファイルも選択することで旧バージョンのBIOSに戻すこともできます。
- USBメモリへコピー
ダウンロードしたBIOS_IMG.rcvファイルをUSBメモリにコピーします。ファイル名は変えてはいけません。
復旧したいノートPCにUSBメモリを差し込みます。
- USBリカバリーモードで起動
世代により方法が違うようですが、筆者の場合は電源OFFの状態から、Ctrl+ESCキーを押しながら電源アダプタを差し込む事でリカバリーモードが起動しました。(電源キーを押さなくても電源が入ります)
電源が入ったら、リカバリーメニューが表示されます。USBからの読み込みを指定してアップデートします。この指定の方法もPCの型や世代により違うようです。リカバリーモード=USBからイメージを取り込むモードになる機種もありました。
また、筆者の環境ではUSBメモリを差し込まずに、BIOSリカバリーモードを起動したらひとつ前のBIOS状態に戻す選択肢が表示されました。
デスクトップの場合
このBIOS更新の方法は、配布されているBIOSアップデート実行ファイルのexeを実行できないLinuxのPCからBIOSをアップデートするのにも応用可能です。
ただ、デスクトップPCの場合は、Ctrl+ESCキーを押しながら電源コードを差し込んでも何もおきないようです。BIOSをイメージから更新するには、電源ON時にF12キーを押して表示されるメニューからBIOS Setupを選択することでアップデートが可能です。
ただしデスクトップでのループ現象を経験していないので、ループ発生時に電源ONでF12キーが機能するかは確認していません。
ACアダプタが接続されていない、またはバッテリーがない状態での更新
基本的にBIOSの更新はバッテリー残量10%以上かつ、ACアダプタが接続されていないと実行できませんが、更新用ファイル.EXE /forceitと、「 /forceit 」オプションを付けて実行することで、BIOSの更新ができます。これを実行する場合は、途中で電源が遮断されないように細心の注意を払ってください。
/forceitオプションはWindowsのコマンドプロンプトやPowerShellからだけでなく、Inspiron 3552では(他は確認していないのでわかりません)、DELLのBIOS更新用のBIOS Flash Update UIのファイル指定の箇所でも付与して意図したように動かす事ができました。
ちなみに、例示に使ったInspiron 3552の場合ですが、このBIOSはEXE版しか配布されておらず、CTRL+ESCキーでの電源アダプタ差し込みの方法は利用できませんでした。こちらの場合は、F12キーからのBIOS Flash Update UIを起動したのち、USBメモリを指定してEXEファイルを指定する構造でした。