本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

Windows7 の WindowsUpdate 適用済みディスクを作る (2018/01版)

当ブログで人気のある記事の1つに「Windows7SP1 ディスクに ロールアップKB3125574 を統合する」 がありますが、これは 2016 年夏のものでした。
今でもこの方法で、うまく結合できることは確認しましたが、ロールアップや累積的な更新プログラムが何度か出ているので、手順も更新したほうが良いと感じたのでまとめ直しました。
以降の内容では、 x64 版で作業していますが、 x86 版でもファイル名などの読み替え程度で適用できるようにしています。

関連記事

作業環境

Windows10 Professional 1703 x64 の環境で本記事の作業を行いました。それ以外の環境で当作業を行う場合には、 dism のバージョンが違うことによるオプションの違いが発生するかと思われます。
また、最後の起動ディスクイメージ作成に oscdimg を使用するために、 Windows ADK をインストールしてあります。この中に含まれる Deployment tools をインストールすると oscdimg が使用可能となりました。
USB メモリに起動ディスクを作成する場合には、 oscdimg は不要です。

準備

ここで Windows7 のディスクは、 MSDN で提供される Windows7 with SP1 のものを使用しています。 もし SP1 が未適用のディスクの場合には、 ServicePack1 までを別サイト等参考にして準備を整えてください。
また、現在の事情を考えると、 Internet Explorer11 も結合しておくのがよさそうです。
作業の方針として、最初のロールアップ(KB3125574)適用を行った後で、 Internet Explorer11 を適用し、さらに最新の品質ロールアップを適用するという流れを考えています。

これらのことから、以下の KB が必要になります。

  • KB3020369
  • KB3125574
  • KB2533623
  • KB2670838
  • KB2729094-v2
  • KB2731771
  • KB2786081
  • KB2834140
  • KB4056894 (マンスリー品質ロールアップ)

これらの KB を Microsoft Update カタログのほうから検索して、ダウンロードしておきます。もし見つからないものがあれば、別に検索を行い、マイクロソフトの別ページより取得してきます。
Internet Explorer 11 本体については、 IE11-Windows6.1-x64-ja-jp.exe (or IE11-Windows6.1-x86-ja-jp.exe) というファイルが必要になります。
これは、”Internet Explorer 11 (オフライン インストーラー) をダウンロードする” というページから入手することが出来ました。

参考

Internet Explorer11 についての結合については、「Internet Explorer 11 の包括的な展開パッケージを作成する方法」というページにて説明があります。
また、必要なファイルは、「Internet Explorer 11 用必須更新プログラム」 のほうから入手するのも作業がやりやすくてよかったです。

Microsoft Update カタログ

Microsoft Update カタログにアクセスすると、以下のような画面になっています。
ここで KB 番号を入力して、ロールアップを取得します。

以前はバスケットに追加してからのダウンロードでしたが、現在は以下のように各項目についてダウンロードのボタンが設置されています。

マウント処理

Windows7 のディスクの中身を以下のコマンドでハードディスクにコピーします。リードオンリー属性は外してコピーするようにします。
ここで、 ”K:” は Windows7 のディスクが入っているドライブ名です。”d:\work\windows” というフォルダにコピーします。

robocopy /E /V /DCOPY:T /A-:R k: d:\work\windows\src

管理者権限付きでコマンドプロンプトを開きます。 Windows10 なら、スタートボタンの右クリックから選択することもできます(最近だとコマンドプロンプトではなく PowerShell になっていたりしますが、 PowerShell でも操作可能です)。
マウントする場所は、 “d:\work\mount” フォルダとします。
また今回、Windows 7 Professional を対象に各種アップデートの適用を行いたいので、名前で指定しています。
(名前で指定することにより x64 版と x86 版で、おなじコマンドになります。実は x86/x64 でインデックス番号が異なるためです)。

dism /mount-image ^
  /imageFile:d:\work\windows\src\sources\install.wim ^
  /mountDir:d:\work\mount ^
  /name:"Windows 7 Professional"

IE11 適用

コマンドプロンプトで以下のコマンドを実行します。

IE11-Windows6.1-x64-ja-jp.exe /x:d:\work\windows\expand_ie11

先にダウンロードしておいた以下のファイルを d:\work\windows\ie11pre フォルダに集めておきます。

  • KB2533623
  • KB2670838
  • KB2729094-v2
  • KB2731771
  • KB2786081
  • KB2834140

これらのファイル内容を適用します。

dism /image:d:\work\mount ^
  /add-package ^
  /packagePath:d:\work\windows\ie11pre

うまくいくと以下のような結果になります。

展開イメージのサービスと管理ツール
バージョン: 10.0.15063.0

イメージのバージョン: 6.1.7600.16385

1 / 6 を処理しています - パッケージ d:\work\windows\ie11pre\Windows6.1-KB2533623-x64.msu を追加しています
[==========================100.0%==========================]
2 / 6 を処理しています - パッケージ d:\work\windows\ie11pre\Windows6.1-KB2670838-x64.msu を追加しています
[==========================100.0%==========================]
3 / 6 を処理しています - パッケージ d:\work\windows\ie11pre\Windows6.1-KB2729094-v2-x64.msu を追加しています
[==========================100.0%==========================]
4 / 6 を処理しています - パッケージ d:\work\windows\ie11pre\Windows6.1-KB2731771-x64.msu を追加しています
[==========================100.0%==========================]
5 / 6 を処理しています - パッケージ d:\work\windows\ie11pre\Windows6.1-KB2786081-x64.msu を追加しています
[==========================100.0%==========================]
6 / 6 を処理しています - パッケージ d:\work\windows\ie11pre\Windows6.1-KB2834140-v2-x64.msu を追加しています
[==========================100.0%==========================]
操作は正常に完了しました。

IE11 本体の適用

続いて Internet Explorer11 の結合を行います。以下のコマンドを実行してください。

dism /image:d:\work\mount ^
  /add-package ^
  /packagePath:d:\work\windows\expand_ie11\IE-Win7.CAB
  
dism /image:d:\work\mount ^
  /add-package ^
  /packagePath:d:\work\windows\expand_ie11\ielangpack-ja-JP.CAB

最初のロールアップ適用 (KB3125574)

まず必須パッケージになっている KB3020369 を適用します。packagePath にはダウンロードした KB3020369 のファイルパスを指定してください。

dism /image:d:\work\mount ^
  /add-package ^
  /packagePath:d:\work\kbfiles\windows6.1-kb3020369-x64_5393066469758e619f21731fc31ff2d109595445.msu

続いて、最初のロールアップ KB3125574 を適用します。先ほどと同様に packagePath にはダウンロードした KB3125574 のファイルパスを指定してください。
大きな修正パッチになるのでそれなりの時間がかかります。作業する PC の状態にも依存しますが、手元では約 20 分ほどかかりました。

dism /image:d:\work\mount ^
  /add-package ^
  /packagePath:d:\work\kbfiles\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu

最新のロールアップの適用 (KB4056894)

この記事を準備している段階では マンスリー品質ロールアップ KB4056894 が提供されていました。
これも適用します。

dism /image:d:\work\mount ^
  /add-package ^
  /packagePath:d:\work\kbfiles\windows6.1-kb4056894-x64_4ddb21dbf40b3a7c41e17b4bf04242d8b48a5ac3.msu

アンマウント処理

エクスプローラーを開いている場合には、全てのエクスプローラーを閉じます。
作業 PC の環境によっては不要の可能性がありますが、アンマウント処理をエラー無しで終了させるためには閉じておくのが無難です。

アンマウント処理は以下のコマンドを実行します。

dism /Unmount-Image /mountDir:d:\work\mount /commit

uEFI対応

Windows7 のディスクでは uEFI x64 の対応が不十分です。この理由は、そもそも元ディスクにファイルが足りていないからです。

ディスクからコピーしたフォルダの中にある、「efi/boot フォルダに bootx64.efi」ファイルを配置だけで対応完了なのですが、問題はこのファイルをどこから入手するか、となります。

Windows7 x64 が稼働している PC があれば C:\Windows\Boot\EFI\bootmgfw.efi ファイルをコピー&リネーム(bootx64.efi)して配置するだけで済みます。
そのため、Windows7 が稼働している PC が手元にない場合、仮想マシンに1度 Windows7 x64をインストールして、ファイルを取得する、というような方法でファイルを得るのが良いかと思います。

iso ファイルの作成

install.wim に各種パッチの結合が出来たのでこれを固めて iso ファイルを作成します。
install.wim は結合されたイメージファイルのため、今後もサイズの増加が見込まれます。ここではそれに対応しつつブート可能な iso ファイルを作ることにします。

準備

ここでは oscdimg を使用するので、 Windows ADK をインストールしている必要があります。

また、4.5GB を超えるサイズで iso 起動可能であるためには、起動に必要なファイル群がイメージの先頭付近に配置されていることが必要になります。
そのため、以下のようなテキストファイル (bootorder.txt) を作成しておく必要があります。
(bootフォルダ以下のファイル名の列挙+ boot.wim のリストでよさそうです)

sources\boot.wim
boot\bcd
boot\boot.sdi
boot\bootfix.bin
boot\etfsboot.com
boot\memtest.efi
boot\memtest.exe
boot\fonts\chs_boot.ttf
boot\fonts\cht_boot.ttf
boot\fonts\jpn_boot.ttf
boot\fonts\kor_boot.ttf
boot\fonts\wgl4_boot.ttf

作成

スタートメニューから Windows Kits /「展開およびイメージング ツール環境」を選択します。各種ツールへのパスが通った状態でコマンドプロンプトが開きます。
このコマンドプロンプトで以下のコマンドを入力します。

oscdimg -u1 ^
  -bd:work\windows\src\boot\etfsboot.com  ^
  -yobootorder.txt ^
  d:work\windows\src ^
  d:\Windows7Merged.iso

補足

以前では、以下のようなオプションを紹介していました。

oscdimg -n -m ^
  -bd:\discWin7Sp1\boot\etfsboot.com ^
  d:\discWin7Sp1 d:\Win7Merged.iso

これではファイルサイズによる問題が発生してしまうので、今回より修正としました。
install.wim が 4GB を超えたときに、その分が捨てられてしまい、正しいファイルが記録されないという状態に陥るようです。
(以前のコメント欄で TOMO さんが陥っていた問題はこれなのかもと思います。手元で再現に至りようやく解決となりました)

[amazonjs asin=”B005O64JQQ” locale=”JP” title=”TDK データ用DVD-R 4.7GB 1-16倍速対応 ホワイトワイドプリンタブル 50枚スピンドル DR47PWC50PUE”]

起動可能なUSBメモリ

iso ファイルも便利ですが、 USB メモリを作成しておくのも良さそうに思います。多くの環境で uEFI で起動させ、インストールを行えるようにするには、USB メモリを FAT32 でフォーマットする必要があります。
しかしながら、 install.wim が 4GB を超える状態では FAT32 のファイルシステムに格納することができません。NTFS フォーマットでも起動が許される環境であれば、 NTFS フォーマットした USB メモリにするのが手っ取り早いです。

どうしても FAT32 にこだわる場合には、 install.wim を分割して記録する方法があります。

公式のドキュメントとしては以下の場所にあります。 Windows10 のセットアップでは対応していないとあるので、 Windows 8 シリーズまではこの方法が使えそうです。
Windows イメージ ファイル (.wim) を複数の DVD にまたがるように分割する

分割の手順は以下のようになります。

dism /Split-Image ^
  /imageFile:d:\work\windows\src\sources\install.wim ^
  /swmFile:d:\work\windows\src\sources\install.swm ^
  /fileSize:4000

これにより install.swm, install2.swm, … とファイルが作成されます。(install.wim はそのまま残ります)install.wim の代わりに、この swm ファイル群を配置します。

Windows7 ディスクからコピーしたフォルダ (d:\work\windows\src) を丸ごと USB メモリにコピーします。そして、管理者権限コマンドプロンプトで以下のコマンドを実行します。(G: は USB メモリが刺さっているドライブ名です)。

bootsect /nt60 G:

このコマンドで、USBメモリにブートセクタ書込が行われるので注意してください。

[amazonjs asin=”B00QGCAL6O” locale=”JP” title=”Transcend USBメモリ 16GB USB3.1 & USB 3.0 キャップレス ゴールド 耐衝撃 防滴 防塵 (無期限保証) TS16GJF710G”]

確認

この手順で結合したディスクを用いて、仮想マシンにインストールを行いました。そのインストール直後で Windows Update の確認をすると以下のようになりました。

まだ若干の未適用となった KB が存在しているようですが、ロールアップ未適用の場合では 120 以上の KB のリストが出てくるため随分と減っていることが確認できました。これら漏れた KB についても Microsoft Update カタログで取得して、アンマウント処理の手前辺りで事前適用することが出来ます。より数を減らしたい場合には検討すると良いでしょう。

まとめ

2018年1月現在での Windows7 にマンスリー品質ロールアップを結合する方法についてまとめ直してみました。
本ブログのいくつかの内容を結合し、かつ、以前では問題になる箇所を修正した程度のものではありますが、以前より成功する確率は上がったかなと思っています。自分の手元ではこれでうまくいったという記録のため、全ての人が同じ手順でうまくいく保証はありません。利用する場合には、各自の責任において使用するようにお願いします。

ネットに繋ぐ前にほぼ最新のパッチが当たった状態でインストール完了できるので、初期状態からインストールを始めることに比べるとセキュリティリスクは減らせるのでは無いかと思っています。最近は、ロールアップ適用方式に変わったこともあり、長時間 Windows Update をしていることはない印象です。他にどのような場面で活躍できるかを考えた場合、この結合ディスクに USB 3.0 のドライバを入れることにより、近年の Skylake 以降でのインストールメディアとして使えるのでは?と考えています。これについては、手元に環境が出来たらトライしてみようかと思います。

PC環境設定日記
すらりんをフォローする
すらりん日記

コメント

  1. N より:

    win7ももうそろそろサポートが切れるか…という時期ですが愛機は思い出深くwin7にてSSDに換装したいと思っていたこの頃でしたが、クリーンインストールを予定していたので膨大な量のアップデートに嫌気が差しできていない現状でした。
    なので、今回のこの記事は私にとってとても助かりました
    深く感謝申し上げます。

タイトルとURLをコピーしました