DELL XPS 9380 Windows11 22H1 を最新の 22H2 に手動アップデートしてみた備忘録です.
Windows11 への対応について
まず,本製品,Windows 11 に正式対応しています.
第8世代CPUを載せていますしメモリも16GBですし,Secure Boot と TPM 2.0 にも対応しています.Windows11 への対応をチェックする Microsoft 公式アプリである PC Health Check でももちろん「対応」判定なんですが,実際やってみるとアップデートするのにものすごく苦労しました.
以下,原因と対処方法について記したいと思います.
アップデート阻害原因
素直にアップデートできなかった理由は,
EFI システムパーティションの容量不足
です.この場合,
システムで予約済みのパーティションを更新できませんでした.
というエラーでアップデートが中断されます.
対処方法(Microsoft 公式・失敗)
実は,このエラー,前バージョンの Windows 11 21H2 の頃からいろいろな PC で起きていたようで,Microsoft 公式より以下の対処方法が公開されています.
この対処方法,見ると,要は
EFI システムパーティションのいくつかのファイルを消して20MByte程度の空き領域を作る
という対処方法なのですが,残念なことに(少なくとも私の)DELL XPS 9380 では Microsoft の指示する対処方法ではうまくいきませんでした.
対処方法(成功)
手順は以下の通りです.なお,Microsoft 公式でも記されていますが,
以下示す手順は複雑でリスクを伴います.これらのコマンドの入力でエラーが発生した場合は,デバイスを起動できなくなり,デバイスに保存したデータが失われる可能性がある
ことに注意して下さい.
やることはまず Microsoft の対応手順に従うことです.
コマンドプロンプトを管理者モードで起動し,Microsoft の手順に従い,以下のコマンドを順番に実行します(EFI システムパーティションがGPT形式の場合です).
> mountvol y: /s > Y: > cd EFI\Microsoft\Boot\Fonts > del *.*
何か聞かれた場合は「Y」を押して「ENTER」キーを押します.
試しにこの状態で Windows 11 インストールアシスタント(Windows Update でも良い)22H2 へのアップデートを試みて下さい.アップデートがうまくいけばこれで終了です.うまくいかず「システムで予約済みのパーティションを更新できませんでした」というエラーが再度表示された場合は(再起動せずに)追加で以下を実施します.
コマンドプロンプトを管理者モードで再度立ち上げます.
> Y: > cd EFI\Dell\Bios\Recovery > del *.*
その後再び Windows 11 インストールアシスタントで 22H2 へのアップデートを試みて下さい.EFI システムパーティションの容量不足だけが原因の場合はこれでアップデートができるはずです.
なお,上の追加の対策を行なった場合は,DELL の BIOS に入り,HDD からの BIOS の書き戻しを実施するオプションを無効にした方が良いと思います.
対応策の解説と問題点
上の対応方法を見ていただくとすぐに分かる通り,Microsoft 公式の対処方法が私の所有する DELL XPS 9380 でうまくいかなかった理由は
Microsoft の指示するファイルだけでは十分な空き容量が確保できなかった
からです.従って対処としては Microsoft の指示する以外のファイルを削除するになりますが,その対象として私が選んだのが「EFI\Dell\Bios\Recovery」以下のファイルです.
さて,問題はこの「EFI\Dell\Bios\Recovery」以下のファイルが何のためのものか?です.ファイルの種類によっては今後のPCの運用に問題が生じるからです.
削除したファイルは,BIOS_CUR.RCV と BIOS_PRE.RCV です.合計36MByte程度あり,EFI システムパーティション 128MByte のほぼ1/3をこの2つのファイルだけで占めていることになります.EFIパーティションの容量が足りなくなるのも仕方がないと思います.
調べてみると XPS 9380,現行,およびひとつ前のファームウェアのイメージファイル等を EFI パーティション領域に保管しており,PC に何かあった場合,そこからファームウェアを PC に適用できるオプションが用意されています.削除したファイルはそのためのファイルのようです(だから前の節の最後でこの BIOS でこのオプションを無効にするよう記した訳です).つまり,Windows 22H2 に更新したことで,問題になるのは,
- HDD から BIOS を復旧できなくなる
- 新しいBIOSを書き込めなくなる
の2つだと思います.
このうち,最初の危険性は普通BIOS書き戻すなんてしないので,あまり問題視する必要はないと思います.しかし,2番目は今後問題になる可能性があります.
恐らくこの2つのファイル,更新されるのは BIOS を更新した時のはずです(実際ファイルのタイムスタンプはBIOS更新日になっていました).これまではこれら2つのファイルがギリギリ作れるだけの容量が EFI システムパーティションにありました.しかし 22H2 に更新するとこれができるだけの容量が確保できなくなってしまった(実際2MByte程度足りない).しかしこれメーカーのアップデートの作り方の問題であって,もう個人ではどうしようもない問題です.従って,BIOS の更新と Windows のアップデート,どちらを優先するのかという問題になる訳で,当然,Windows のアップデートを優先せざるを得ないと結論づけた訳です.
根本的な解決策は?
と言うことで,あくまで上の解決策はいわゆるところの Workaround(応急措置)だと思います.根本的な解決策は以下のいずれかでしょう.
- DELL が対応策を示してくれる
- EFI システムパーティションの容量を(何とかして)拡張する
- クリーンインストールを EFI システムパーティションの容量を十分確保して実施
なお,サードパーティのアプリを使えば,2番目の対処法,つまり,現在使用中の Windows のまま EFI システムパーティションを拡張できるのでは?と思う方もおられると思いますが,私の場合は以下の理由でこれを断念しました.
EFI システムパーティションを拡張するにはその直後に未使用の領域がないとダメですが,EFI システムパーティションの直後に MSRパーティション(16MB)が配置されていました.つまり,この MSR パーティションを移動しなければなりませんが,残念ながらサードパーティ製のアプリでこのパーティションの移動を行えるものが見つけられませんでした.
MSR を削除して作り直すという手も考えましたが,やり方がイマイチ良くわからない.と言うかこのパーティション,どういう使われ方をしているのか全く分かりません.
と言うことで,どなたかこの辺りについて詳しい方おられましたら,ご教授頂ければと思います.
以上!