前回はWindows 10のメジャーアップデートごとに変化しているWindows Update自体について解説したが、今回はWindows Updateによる「ビルド更新」、つまりアップグレードやメジャーアップデートのインストールについて解説を行なう。
Windows 8.1以降では、稼働中のWindowsの環境を維持したまま、Windowsをバージョンアップさせる「アップグレード」を、Windows Updateからできるようになった。
Windowsのバージョンが変わる更新には、いくつか呼び方があるため、本記事ではバージョンの違いなどによらず、これらをまとめて「ビルド更新」と呼ぶことにする。
ビルド更新を簡単に言えば、ユーザー環境を維持しつつ、Windows自体を、新しく作られたビルドに更新することだ。ビルドとは、個々に開発したソフトウェアや配布ファイルなどをひとまとめにして「インストールパッケージ」を作っている。ソフトウェアが一部でも改良されれば、インストールパッケージは違ったものになるが、通常は作業量が多いため一日一回など、時間を決めて、その時点でのソフトウェアを組みあわせてパッケージを作る。これをデイリービルドなどという。
Windows Insider Programで配布しているプレビュー版は、個々のビルドに番号を振った「ビルド番号」で区別される。また、正式配布されるWindows 10のメジャーアップデート(たとえば、RS1:Anniversary Updateなど)でも特定のビルド番号のインストールパッケージが使われる。
実際には、ビルドが作られたのちに、並行して行われていたセキュリティパッチなどを統合し、ビルドの改訂版が作られることもある。こうした場合、Windowsではビルド番号の小数点以下の数字でそれぞれを区別しているようだ。
特定のビルドとして作られたインストールパッケージは、基本的にWindowsに属するファイルなどをすべて含んでいるため、これをインストールする場合、一回稼働しているWindowsを停止し、カーネルなどの重要なファイルを書き換える必要がある。また、ユーザー環境を維持し、Windows 10の「回復」機能に対応するため、回復パーティションや回復イメージの作成も実行される。
RS3で導入されるビルド更新時の改良点
さらにRS3では、ビルド更新の手順が変更され、ユーザーがデバイスを利用できない時間が短くなるような工夫がされている。Windows Updateによるビルド更新を観察すると、大きく3つの段階がある。1つはビルドの「ダウンロード」段階。ここは差分ダウンロードパッケージの利用によりダウンロード時間が短縮されている。Windowsが動作しているため「オンライン状態」とも呼ばれる。
次がビルドの「インストール」だ。この際には再起動が行なわれ、画面には点が回転するアニメーションが繰り返される状態だ。ここではWindows自体が動作していないため「オフライン状態」とも呼ばれる。
そしてインストールが完了したあと、再起動し、ユーザーがログオンすると、「初期設定」が始まる。「こんにちわ」と黒地に白文字で簡単なメッセージが表示されているところだ。ここはOOBE(Out of Box Experience)と呼ばれる。これは、本来は、Windowsプレインストールマシンを最初に起動したときに行なわれる一連の初期設定を指すものだが、アップグレード後にユーザーがログオンすると、その最終段階が実行される。それが「こんにちは」で始まる画面だ。
このうち、ビルドのダウンロード中は、普通にPCを操作できる。「インストール」「ユーザー環境の再構築」段階では、PCを操作することはできないが、ユーザー環境の再構築は長くても数分程度なのに対して、インストール作業は数十分程度あり、かなり長い間、PCを利用することができない。
マイクロソフトによれば、実際には、ビルドの更新は以下の4つのフェーズに分かれている。
ビルドの更新を観察していると最初の再起動の後、点が回るアニメーションが表示され、段階を示すパーセント値が上がっていく。このとき、30%、75%前後で再起動されているのがわかる。また、これ以外の場所でも再起動が行われることがある。
RS3のプレビュー版であるBuild 16241では、このプロセスが改良され、従来Safe OSフェーズで行なわれていた処理の一部を、Down-Levelフェーズに実行する。Windowsのシステムファイルの書き換えなど、WinREでないとできない作業のみをSafe OSフェーズ中にするようにした。
具体的には設定やアプリ状態、システム構成などの「ユーザーコンテンツ」のバックアップと、インストールするOSイメージ(WIMファイル)の作成処理をWindowsが動作しているDown-levelフェーズ中に行なうようにした。
RS3のプレビュー版で動作を確認したところ、「設定」→「更新とセキュリティ」→「Windows Update」の表示は、「初期化」「インストールの準備」「ダウンロード」「インストール中」と進行していき、その後再起動になった。手元にある英語版Windows 10のInsider Preview Build 16257のインストールを観察してみたところ、以下のような時間で作業が進んだ。
また、別のマシンで同じビルドの更新を観察したところ、違う結果が出た。それぞれのロケールは、en/US(言語は英語、地域は米国)、ja/JP(同日本語、日本)と異なっており、ハードウェアスペックが若干違うが、むしろ、時間のかかったPC2のほうが高めのスペックを持っている。時間の差は、ハードウェアの差よりも更新が行なわれるパッケージに差があるように思える。つまり、PC1のほうは「差分ダウンロードパッケージ」で、PC2のほうが「標準ダウンロードパッケージ」なのではないかと推測される。
このため、Safe OSフェーズでは、Windowsのファイルを更新し(Windowsの再インストール)、ユーザーコンテンツを書き戻す作業のみになり、ユーザーからはアップグレードが短時間で終了したように見える。また、Insider Preview Build 16257では、最後の再起動のあと、ログオン後の「こんにちは」で始まるOOBEの最終プロセスがなく、デスクトップが表示されていたが、パスワードを入れてからデスクトップ画面が表示されるまでに少し時間が余計にかかっていた。OOBEの最終段階についても作業が見なおされ、さらに短縮が行われている可能性もある。
ただし、マイクロソフトによれば、Down-levelフェーズで行なわれるWIMの作成は、システムによっては、現在のPreview版では、PCが止まったように感じられる場合があるという。というのは、WIMの作成処理は比較的負荷が高い処理だからだ。いままでSafe OSフェーズで行なっていたのは、他のタスクの影響を受けることなく、高速で処理するためだった。
Windows Updateは、セキュリティに関連するアップデートなど、従来から重要な機能ではあったが、裏方的な部分があった。しかし、アップデートの頻度が高くなり、さらにWindows自体のバージョンアップにまで関わるようになった。これにともない、再起動を必要とするアップデートも増え、ユーザーの関心を強く惹くようになった。アクティブ時間の導入やバージョンアップの延期などさまざまな機能が導入されたが、その裏方部分も大きく変わりつつある。
この連載の記事
-
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る -
第446回
PC
Windows 11のフォトアプリがUWPからWin32アプリになったことで今更わかるUWPの問題点 -
第445回
PC
次期Windows 11ではAndroidのファイルをエクスプローラーからアクセス可能になる -
第444回
PC
外部ファイルをExcelに読み込む際の作業を効率化するPower Queryの活用 -
第443回
PC
Windows Terminalで採用されたCascadia Codeフォントを使うとプログラムを書くとき断然見やすい -
第442回
PC
Copilot+ PCで実現されるローカル推論で「対クラウド企業」を指向するMicrosoft -
第441回
PC
WSL以前から40年以上続く、Windows(Microsoft)とUNIXとの関わり -
第440回
PC
そもそも「Copilot+ PC」とは何なのか? -
第439回
PC
今更more.comを使うのか!? Windowsでのページングを考える -
第438回
PC
Windowsはなぜ再起動が必要になるのか? - この連載の一覧へ