第11回 インストールディスクサイズを節約するWIMブートWindows 8.1クロスロード

Windows 8.1 Updateでは、インストールに必要なディスクサイズを削減できるWIMBoot機能が新しくサポートされた。Windows OSのインストール時にファイルを展開・コピーすることなく、圧縮ファイルのまま運用するので必要なディスク領域を半分程度に節約できる。その概要を紹介する。

» 2014年06月26日 16時35分 公開
[打越浩幸デジタルアドバンテージ]
Windows 8.1クロスロード
Windows Server Insider

 

「Windows 8.1クロスロード」のインデックス

連載目次

「Windows 8.1クロスロード」は、2013年10月から出荷されているWindows 8.1の注目機能について解説するコーナーです。


 「WIMBoot(WIMブート)」とは、「WIM(Windows Image)」と呼ばれるディスクイメージファイルから直接Windows OSを起動する機能のこと。Windows 8.1 Updateで追加された新機能の1つで、Windows OSのインストールに必要なディスクサイズを節約することができる。例えばストレージ容量の少ないタブレットPCなどではユーザーのためのディスク領域を従来よりも増やすことができる。本記事ではこのWIMBootについて解説する。

WIMBootが求められる理由

 従来のWindows OSのインストール作業では、OSのインストールメディアの中に含まれる「WIM(Windows Image Format)ファイル」というインストールファイルから必要なファイルを取り出して、例えばC:\WindowsやC:\Program Filesの下などに展開している。WIMファイルはWindows Vista以降で導入されたインストールファイル形式であり、Windows OSを構成するファイルを1つにまとめて圧縮したアーカイブファイルである。

 インストールメディアにはWIMファイルが含まれているのでサイズは小さいが、インストールが完了するとディスク上に展開されて元のファイルサイズに戻り、より多くのディスク領域が必要になる。例えば32bit版のWindows 8.1のインストール用WIMファイルのサイズはだいたい2.5Gbytes程度だが、インストールが完了すると、全体としては7Gbytes以上のディスク領域が必要になる(回復イメージなどを作成すると、さらに多くの領域が必要になる)。

※32bit版Windows 8.1 Updateのインストール用WIMファイルの例

F:\>dir sources\install.wim
 ドライブ F のボリューム ラベルは IR3_CENA_X86FREV_JA-JP_DV9 です
 ボリューム シリアル番号は 09BD-8A9A です

 F:\sources のディレクトリ

2014/03/18  18:46   2,507,526,894 install.wim ……32bit版Windows 8.1 Updateのインストールイメージファイル
          1 個のファイル     2,507,526,894 バイト
          0 個のディレクトリ             0 バイトの空き領域

F:\>



Windows Server Insiderの関連記事 Windows 8.1クロスロード「Windows 8.1 Updateで改善されたマウス操作

 そこでWindows OSをWIMファイルのまま起動・実行する機能が、Windows 8.1 Updateで新しく追加された(注:Windows 8.1 UpdateはWindows 8.1のマイナーアップデート版。詳細は右上の関連記事を参照)。それがWIMBootである。通常はインストール時に展開するWIMファイルを、WIMファイルのディスク上に保存しておき、必要なファイルはその都度WIMファイルから取り出してメモリ上に展開して利用する。アクセスには少し時間が余計にかかるが(といっても最近の高速なCPUでは問題にならない程度)、ディスク領域は節約できるので、ストレージ容量の少ないタブレットPCなどでの利用に向いている。

Windows 8.1 UpdateのWIMBoot Windows 8.1 UpdateのWIMBoot
従来のインストール方法では、インストールソースの圧縮アーカイブファイル(install.wim)から必要なファイルを取り出してディスク上へコピー・展開していた。WIMBootではinstall.wimファイルをそのまま保存しておき、ファイルが必要になった時点でinstall.wimファイルから取り出してメモリ上へ展開して利用している。「ポインターファイル」には、install.wimファイルの中を指すインデックスが保存されている。そのため必要なディスク領域を半分程度に削減できる。ただしファイルを更新した場合は実ディスク上に書き込まれ、以後はそちらを参照するので、削減効果は期待できない。

 ただし(WIMファイルに含まれる)ファイルに対して書き込みを行うと実ストレージ上にコピーを作ってそこへ上書きすることになるので、(Windows Updateなどで)ファイルの更新が増えてくるとだんだんと実ディスク領域を圧迫するようになる。また、WIMファイルに含まれていないアプリケーションを後から追加インストールすると、それらは実ディスクに書き込まれることになるので、WIMBootによるディスクの節約効果は期待できない。WIMの初期イメージに何を入れるか(Windows OS本体と、それ以外にどのようなアプリケーションを入れるかなど)によっても異なるが、WIMBootを使うと、インストール直後のディスク使用領域を半分くらいに圧縮できると考えておけばよいだろう(PCのリフレッシュやリセット用のカスタムイメージの分はこれとは別に必要。詳細は右上の関連記事を参照)。

WIMBootを利用するには?

 ディスク領域の大幅な節約になり、可能なら使ってみたいWIMBootだが、残念ながら既存のWindows 8.1 Updateのシステムでこの機能を後から導入するのは現実的ではない。先の図でも分かるように、システムのパーティション構成などが全く違うし、インストール方法も簡単ではないからだ。WIMBootはWindows 8.1 Updateを新規インストールする場合に選択できるインストールオプションの1つであり、基本的にはメーカーがWindows 8.1 UpdateのプレインストールPCを用意する場合に利用する機能である。OSの新規インストールとアクティベーションなどが要求されることがあるので、既存のシステムのライセンスなどをそのまま使ってWIMBootに切り替えることはあまり簡単ではない。

 WIMBootを使うためには以下の要件を満たしている必要がある。

  • UEFIブートするPCシステムでのみ利用可能(レガシーBIOSモードでは利用不可)
  • クライアントOSであるWindows 8.1 Updateでのみ利用可能(Server OSでは利用不可)
  • SSDかWindows HCK 準拠のeMMC(コントローラー内蔵のフラッシュメモリ)デバイスでのみ利用可能。ハードディスクでは利用不可(とのことだが、実際にはSSDでなくても利用できるようである。後述の例参照)。

WIMBootのための手順の概要

 WIMBootは一般のユーザーが使うような機能ではないため、そのインストール方法については概要を述べるにとどめる。詳細なインストール手順については以下のページを参照していただきたい。

 インストール手順は次の通りである。今回は64bit版のWindows 8.1 UpdateをWIMBootさせる手順を解説する。

手順1――作業用PCの準備とWindows ADKのインストール

 WIMBootを利用するためには作業用のPC(Windows 7以降ならどのWindows OSでも利用可能)を1台用意し、その上に「Windows ADK(Windows アセスメント & デプロイメント キット )」というツールをインストールする必要がある。Windows ADKにはdism.exeという展開用のコマンドと、Windows PEというWindows OSのプレ実行環境が含まれており、これらを使ってWIMBoot用のイメージの作成や展開を行う。

 Windows 8.1 Updateに対応した最新のWindows ADKは以下のサイトからダウンロードできる。

 Windows ADKのインストールが完了したら、[Windows Kits]−[Windows ADK]−[展開およびイメージング ツール環境]ツール(コマンドプロンプト)を起動して以下の作業を行う。

手順2――Windows 8.1 Updateのインストールイメージファイルの準備

 Windows 8.1 Updateのインストールメディアを用意し(Windows 8.1 Updateの 評価版 でもよい)、そこに含まれているインストールソースファイル(\sources\install.wim)を取り出して、WIMBoot用のイメージに変換する。Windows 8.1のインストールメディアしかない場合は、Windows 8.1をWindows 8.1 Updateに更新するためのモジュール(KB2919442、KB2919355、KB2932046の3つ)を以下からダウンロードして(KB2932046はKB2919442のリンク先からダウンロードできる)、適用する。

 先のTechNetサイトにある手順解説では、取り出したinstall.wimファイルから「Windows RE(Windows回復環境)」(障害発生時のトラブルシューティング用環境。ファイル名はwinre.wim)を分離させて最終的なイメージサイズを縮小・最適化させているが(300Mbytesほどだが節約できる)、元のインストールファイルを直接WIMBoot形式に変換して、時間や手間を削減してもよい。変換するには「dism /export-image /WIMBoot 〜〜」コマンドを利用する。

※E:ドライブにあるインストールDVD中のinstall.wimを直接変換する例
mkdir c:\Images
dism /export-image /WIMBoot /SourceImageFile:"e:\sources\install.wim" /SourceIndex:1 /DestinationImageFile:"c:\Images\install_x64_wimboot.wim"



(オプション)手順3――Windows PE 5.1のメディアの作成

 インストールされたWindows ADKを使って、Windows PE 5.1のブータブルメディアを作成しておく。ただしWindows PEを使わなくても、Windows 8.1 UpdateのインストールメディアだけでもWIMBootのインストールはできるので、この手順3はオプションである。

 Windows PEの準備については、以下の記事も参照していただきたい。

 この記事はWindows PE 5.0の導入記事であるが、ダウンロードするファイルが異なるだけでWindows PEのブートメディアを作成する手順は同じである。Windows PEのイメージを作成したら、「dism /unmount-image 〜〜 /commit」コマンドでWindows PEイメージをコミット(確定)する前に、手順2でダウンロードしたWindows 8.1 Update向けの3つの更新プログラムも適用しておくこと。詳細は次のサイトの手順を参照。

手順4――ターゲットPC上でのインストールとカスタマイズ

 手順3で作成したWindows PEのUSBメモリでターゲットPCを起動するか、Windows 8.1 Updateのインストールメディアを使ってPCを起動し、インストール画面が表示されたところで[Shift]+[F10]キーを押して作業用のコマンドプロンプト画面を表示させる。そしてdiskpartコマンドを起動して以下のコマンドを実行し、インストール用のパーティションを作成する。

※diskpartコマンドを使って、4つのパーティションを手動で作成する
select disk 0
clean
convert gpt
create partition efi size=100 ……EFIパーティション(100Mbytes)の作成
format quick fs=fat32 label="System"
create partition msr size=128 ……MSRパーティション(128Mbytes)の作成
create partition primary ……Windowsインストール用パーティションの作成
shrink minimum=16384 ……WIMファイル用パーティションの作成。サイズはwimファイルサイズ以上にすること
format quick fs=ntfs label="Windows"
assign letter=c
create partition primary
format quick fs=ntfs label="Images"
assign letter=m
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" ……回復パーティションにするための設定
gpt attributes=0x8000000000000001
list volume
exit



 パーティションを作成したら、WIMファイル用パーティション(ここではM:ドライブ)に、手順2で作成したWIMBoot用のWIMファイルをコピーする。実PCならUSBメモリでコピーすればよいだろうし、仮想マシンならISOファイルを作成して、それをマウント/コピーすればよいだろう。

mkdir "m:\Windows Images"
copy N:\install_x64_wimboot.wim "m:\Windows Images\install.wim" ……N:\install_x64_wimboot.wimが用意したWIMファイルとする



 以上で準備ができたので、次はinstall.wimファイルをWIMBoot用に展開し、ブート用コードを書き込む。

mkdir c:\Scratch
dism /Apply-Image /ImageFile:"m:\Windows Images\install.wim" /ApplyDir:c: /Index:1 /WIMBoot /ScratchDir:c:\Scratch
c:\Windows\System32\bcdboot C:\Windows



 この後は、システムを再起動するとWindows 8.1の初期インストール画面が表示されるので、指示に従って設定を完了させる。さらに必要ならカスタマイズや、sysprepとインストールイメージの再キャプチャなどで展開用のマスターイメージを作成したりするが、詳細は省略する。必要なら先の WIMBootのページ を参照していただきたい。

WIMBootさせたシステムの例

 UEFIブートさせるために、Windows Server 2012 R2のHyper-V上で第2世代仮想マシン環境を作成してインストールしてみた。以下にその例を示す。

WIMBootでのインストール例 WIMBootでのインストール例
Windows Server 2012 R2のHyper-V上で(UEFIが利用できる)第2世代仮想マシン環境を構築し、WIMBootでインストールさせた例。C:の占有サイズは非常に少なくなっている。
  (1)これはインストール直後の状態。C:の使用領域が2.7Gbytesしかない。通常のインストールだと、C:は9Gbytes程度になる。
  (2)通常インストールの場合よりも空き領域が多い。
  (3)インストールイメージを格納するパーティションを別途確保しているので、C:の全体のサイズは小さくなっている。

 同じようにインストールした非WIMBootの仮想マシンの場合は、C:のサイズは9Gbytres弱だったので、少なくともC:の使用領域は6.5Gbytes程度少なくなっている。とはいえ実際のシステムでは、ページファイルや休止ファイル、Windows Updateの更新ファイルなども確保されるし、WIMBootの場合は別パーティションにinstall.wimファイルも保存されているため、本当に消費しているディスク領域の差はもっと小さい。Hyper-Vの仮想マシンで使用しているVHDXファイルのサイズを比較すると(これが最終的なディスク占有量に近い)、その差は2Gbytes程度であった。

D:\HYPERVVHD>dir win81*
 ドライブ D のボリューム ラベルは DATAVOL です
 ボリューム シリアル番号は 1484-63A6 です

 D:\HYPERVVHD のディレクトリ

2014/06/23 11:04   9,231,663,104 win81-enteval-normalboot.vhdx ……通常ブートの仮想ディスク
2014/06/23 11:05   7,017,070,592 win81-enteval-wimboot.vhdx ……WIMBootの仮想ディスク。2Gbytesほど小さい
            2 個のファイル    16,248,733,696 バイト
            0 個のディレクトリ  734,312,095,744 バイトの空き領域

D:\HYPERVVHD>



 WIMBootが使われているかどうかは、ディスクの管理ツールや「fsutil wim 〜〜」コマンドなどで確認できる。

WIMBootの確認 WIMBootの確認
WIMBootが使われているかどうかは、ディスクの管理ツールなどで確認できる。
  (1)WIMBootが使われていると「Wim ブート」という属性が表示される。
  (2)回復パーティション。この中にinstall.wimファイルが保存されている(回復パーティションを使わず、C:などにそのまま保存することも可能)。
  (3)WIMBootの情報を確認するコマンド。
  (4)WIMBootで利用されているWIMファイル。
  (5)WIMBootでアクセスされるファイルを列挙するコマンド。これらのファイルの実体はWIMファイルの中にある。


 今回はWindows 8.1 Updateで新たに導入されたWIMBoot機能について見てきた。ストレージ容量の少ないタブレットPCなどでは、たった数Gbytesとはいえ、初期インストールサイズを抑制するのに有効だろう。ただしWindows OSを長く使っていると、新しいアプリケーションのインストールやWindows Updateによる更新などでシステムの占有サイズ(更新されるファイル)が次第に増大してくる。そのため、最初からストレージ容量の大きいシステムを導入したり、ストレージをリプレイスしたり、といった対策が必要なのは、今後もあまり変わらないかもしれない。

「Windows 8.1クロスロード」のインデックス

Windows 8.1クロスロード

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。