検証用の Windows ベース イメージを Compact OS にして約 30 % (1.6 GB) ディスク節約する話
Compact OS とは何なのか
マイクロソフトは、パートナーを通じて戦略的に Windows タブレット PC を複数出していますが、タブレットのような小型端末では、SSD などの大容量ディスクが搭載できないため Windows のようなディスクの占有率の大きい OS をインストールするとユーザー使用領域がほとんどないという問題が発生します。そこで、Windows 10 では特定条件を満たすと自動的に Compact OS と呼ばれる OS のシステム ファイルを圧縮するモードでインストールされるようになっています。また、条件を満たしていなくても OEM がマスターイメージ作成時にオプションを有効にすることもできます。compact.exe というコマンドを使うことであとから圧縮/非圧縮を変更できますが、今回はこの話はせずに、インストール時に Compact OS 化する話をします。なお、Compact OS というのは、ファイルアクセス時に展開することになるため、パフォーマンスが悪い HDD などのディスクでは推奨されません。
なぜ Compact OS なのか
私は Vagrant + VMWare を使って検証 VM を管理していますがベース イメージ自体を小さくするということは、ディスク使用量の減少だけでなく、BOX ダウンロード時間の短縮、BOX 管理用クラウド ドライブの使用料削減、など様々なメリットがあるからです。
Compact OS のインストール方法
Windows 10 のインストール画面で Shift+F10
を押し、コマンド プロンプトを起動します。
(オプション) 英語キーボードを使用している場合
英語キーボードを使用している場合、日本語版の OS では日本語配列のキーボードであることが想定されているため、うまく入力ができません。 英語のキーボードのリストを取得する場合、次のように入力します。
wpeutil ListKeyboardLayouts 0x411
表示されたリストの中から使用中のキーボードを選択します。たとえば英語 "(インターナショナル)" キーボードの場合は次のように実行します。
wpeuitl SetKeyboardLayout 0411:00020409
変更後、次のようにして新しくコマンド プロンプトを起動すれば、英語配列でキー入力ができるようになります。
start cmd
パーティションを設定する
パーティションは diskpart
コマンドで行います。コマンドライン上で以下のコマンドを実行し、対話モードでパーティションを作成していきます。
diskpart
パーティションの作成方法は、マイクロソフトの以下のドキュメントを参考にします。
https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn898510(v=vs.85).aspx
具体的には、以下のコマンドで UEFI/GPT ベースのハード ドライブ パーティションを設定していきます。なお、私の場合、回復パーティションのほうはディスク サイズ削減を目的に作成していません *1。
select disk 0 clean convert gpt create partition efi size=100 format quick fs=fat32 label="System" assign letter="S" create partition msr size=16 create partition primary shrink minimum=500 format quick fs=ntfs label="Windows" assign letter="W" create partition primary format quick fs=ntfs label="Recovery tools" assign letter="R" set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" gpt attributes=0x8000000000000001 list volume exit
コンパクト OS イメージを適用する
必須ではありませんが、作業を高速化するために電源プランを "高パフォーマンス" に変更します。
powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
以下のコマンドで、ISO に含まれるエディションを取得します。
dism /get-ImageInfo /ImageFile:D:\sources\install.wim
表示されたリストから、インストールするエディションをのインデックス番号を特定します。 たとえば、"Windows 10 1803 (Business Edition)" の場合、以下のリストが表示されます。
# | 名前 |
---|---|
1 | Windows 10 Education |
2 | Windows 10 Enterprise |
3 | Windows 10 Pro |
4 | Windows 10 Pro Education |
5 | Windows 10 Pro for Workstations |
次にコンパクト OS イメージを W:\ に適用します。以下の例では、"Windows 10 Enterprise" (2) をインストールの対象にしています。
dism /Apply-Image /ImageFile:D:\sources\install.wim /Index:2 /ApplyDir:W:\ /compact
BCDBoot
を使ってシステム パーティションを構成します。
W:\Windows\System32\bcdboot W:\Windows /s S:
システムを再起動します。
wpeutil reboot
再起動後、Windows が "準備しています" と言いながら様々な設定をしますので、しばらく待ちます。 (結構長いです)
準備が完了するとコルタナが話しかけてきますので、あとは通常のセットアップ同様に作業を行います。
Compact OS になっているかどうかを確認する
Compact OS としてインストールできているかどうかを確認するには次のコマンドを実行します。
compact /compactos
Compact OS になっていれば、以下のように表示されます。
システムは圧縮状態です。管理者が変更しない限り、この状態のままになります。
それでは、よい Compact OS 生活を。Enjoy!
*1:検証用の VM を大切に使う方は回復パーティションを用意したほうがいいと思います。私は壊れたら作り直す精神です。