Windows 10 用の Windows PE (WinPE) のUSBメモリセットアップ例

先日、知り合いのノートPCのOSがブートしなくなり、原因調査と可能なら修理対応を依頼されました。
その時、Windows PE (以下 WinPE) が起動するUSBメモリをセットアップしましたので、そのログです。

- 作業環境 : Windows 10 Pro バージョン 1607
- 32bit版の検証に使用したUSB : I-O DATA YUMシリーズ 8GB
  - http://www.iodata.jp/product/usbmemory/standard/yum/index.htm
- 64bit版の検証に使用したUSB : BUFFALO RUF3-KSシリーズ 8GB
  - http://buffalo.jp/product/usb-memory/value/ruf3-ks/

Win8.1までのWinPEセットアップ記事参考：

- 運用：管理者必携のトラブルシューティングツール「Windows PE 5.0」の起動用USBメモリを作成する (1/2) - ＠IT
  - http://www.atmarkit.co.jp/ait/articles/1402/13/news133.html
- 汎用性の高いWindows PE 5.0 (x64)メディアの作り方 - とある技術者のお遊びフライト日記
  - http://idinor.hatenablog.com/entry/20140224/1393249489

今回はノートPCがWin10でしたので、念のためWin10版のWinPEをセットアップしました。
あまりネット上にはWin10版のWinPEセットアップ記事が見当たらなかったので、何かしらお役に立てれば幸いです。

Windows 10 用の Windows PE (WinPE) の公式ドキュメントは以下になります。USBメモリやCD/DVD起動ディスクの作成シナリオ、様々なオプションのカスタマイズ例が紹介されており、勉強になります。

- Windows PE (WinPE) - Windows 10 hardware dev
  - https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn938389(v=vs.85).aspx

**Win10版は、ダウンロードするWindows ADKや実際の作業に使うディレクトリ名が異なるだけで、基本的な流れは＠ITの記事と同じです。**

＠ITの記事を見れば分かるところはざっくりと省略し、コマンドライン作業のところを中心に本記事では紹介していきます。

# USBメモリはどれくらいのサイズが必要か？

公式ドキュメントによれば、基本バージョン（必要最小限構成のことと思われる）では512MBとあります。
オプションパッケージや独自アプリを追加するとそれ以上のメモリが必要になりますが、本記事で紹介した手順では 32bit版で 384mb, 64bit版で 478MB しか取らなかったので、2GB～4GBのメモリがあればまずは十分かと思われます。

# 準備 : Windows ADKのセットアップ

準備として Windows アセスメント & デプロイメントキット (Windows ADK) を入手してセットアップします。
Win10版は以下から入手します。

- Windows ADK のダウンロード - Windows ハードウェア デベロッパー センター
  - https://developer.microsoft.com/ja-jp/windows/hardware/windows-assessment-deployment-kit

＠ITの記事と同様、インストール時の機能選択で WinPE と Devployment Tools をチェックしてインストールしてください。

# 作業ファイルのコピー(copype)

スタートメニューから "Windows Kits" -> "展開およびイメージングツール環境" -> "その他" -> "管理者として実行" を選択し、環境変数などが整った作業用のコマンドプロンプトを開きます。

![201703_win10_winadk_winpe_start.png](https://qiita-image-store.s3.amazonaws.com/0/18618/57611b3a-08dd-29d1-4d7d-7210fc180b0f.png)

その後、`copype` コマンドでアーキテクチャを指定して作業ファイルをコピーして、作業用のフォルダを作ります。

```
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools>cd c:\

c:\>copype
Creates working directories for WinPE image customization and media creation.

copype { amd64 | x86 | arm | arm64 } <workingDirectory>

 amd64             Copies amd64 boot files and WIM to <workingDirectory>\media.
 x86               Copies x86 boot files and WIM to <workingDirectory>\media.
 arm               Copies arm boot files and WIM to <workingDirectory>\media.
 arm64             Copies arm64 boot files and WIM to <workingDirectory>\media.
                   Note: ARM/ARM64 content may not be present in this ADK.
 workingDirectory  Creates the working directory at the specified location.

Example: copype amd64 C:\WinPE_amd64
```

32bit版の例（フォルダ名はお好みでOK.）

```
c:\>copype x86 C:\WinPE_x86
```

64bit版の例（フォルダ名はお好みでOK.）

```
c:\>copype amd64 C:\WinPE_amd64
```

# パッケージの追加

イメージをマウントした後、オプションのパッケージを追加していきます。言語パックやフォント、キーボード、タイムゾーン設定も忘れずに。

Win10版WinPEのパッケージ一覧・地域と言語設定などは以下を参照してください：

- WinPE: パッケージの追加 (オプション コンポーネント リファレンス) - Windows 10 hardware dev
  - https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn938382(v=vs.85).aspx
- DISM の地域と言語サービスのコマンド ライン オプション - Windows 10 hardware dev
  - https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn898550(v=vs.85).aspx
- DISM イメージ管理のコマンド ライン オプション - Windows 10 hardware dev
  - https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn898549(v=vs.85).aspx

32bit版のマウントと初期パッケージ（例）

```
c:\>Dism /Mount-Image /ImageFile:"C:\WinPE_x86\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_x86\mount"

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

イメージをマウントしています
[==========================100.0%==========================]
操作は正常に完了しました。

c:\>Dism /Get-Packages /Image:"C:\WinPE_x86\mount"

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

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

Packages listing:

Package Identity : Microsoft-Windows-WinPE-LanguagePack-Package~31bf3856ad364e35~x86~en-US~10.0.14393.0
State : Installed
Release Type : Language Pack
Install Time : 2016/07/16 9:00

Package Identity : Microsoft-Windows-WinPE-Package~31bf3856ad364e35~x86~~10.0.14393.0
State : Installed
Release Type : Foundation
Install Time : 2016/07/16 8:58

操作は正常に完了しました。
```

64bit版のマウントと初期パッケージ（例）

```
c:\>Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount"
(省略)

c:\>Dism /Get-Packages /Image:"C:\WinPE_amd64\mount"
(省略)
```

## 今回追加したパッケージ

単にchkdskしたいだけだったんですが、せっかくUSBメモリで容量あるので、「もしかしたらこれも要るかも・・・」とか興味本位で追加した例になります。
UbuntuでNTFSマウントして中は覗けたので、bitlocker暗号化はされていないものと判断し、bitlocker関連は入れてません。

**パッケージの追加順序に依存関係があります。前掲の公式ドキュメントに、「このパッケージを追加する前にはこのパッケージをこの順序で追加してね」情報が載っていますので、それに沿って追加してください。**
日本語パッケージがある場合は、それも追加しています。

以下、32bit版の例です。

ネットワーク WinPE-Dot3Svc:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-Dot3Svc.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-Dot3Svc_ja-jp.cab"
```

ネットワーク WinPE-PPPoE:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-PPPoE.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-PPPoE_ja-jp.cab"
```

ネットワーク WinPE-RNDIS:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-RNDIS.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-RNDIS_ja-jp.cab"
```

スクリプト WinPE-WMI:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-WMI.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-WMI_ja-jp.cab"
```

Microsoft .NET WinPE-NetFX:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-NetFx.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-NetFx_ja-jp.cab"
```

スクリプト WinPE-Scripting:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-Scripting.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-Scripting_ja-jp.cab"
```

Windows PowerShell WinPE-PowerShell:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-PowerShell.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-PowerShell_ja-jp.cab"
```

Windows PowerShell WinPE-DismCmdlets:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-DismCmdlets.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-DismCmdlets_ja-jp.cab"
```

Windows PowerShell WinPE-SecureBootCmdlets:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-SecureBootCmdlets.cab"
```

Windows PowerShell WinPE-StorageWMI:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-StorageWMI.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-StorageWMI_ja-jp.cab"
```

スタートアップ WinPE-SecureStartup:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-SecureStartup.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-SecureStartup_ja-jp.cab"
```

記憶域 WinPE-EnhancedStorage:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-EnhancedStorage.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-EnhancedStorage_ja-jp.cab"
```

HTML WinPE-HTA:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-HTA.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-HTA_ja-jp.cab"
```

回復 WinPE-WinReCfg:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-WinReCfg.cab"
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\WinPE-WinReCfg_ja-jp.cab"
```

ファイル管理 WinPE-FMAPI:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-FMAPI.cab"
```

言語パック:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\ja-jp\lp.cab"
```

フォントパッケージ:

```
Dism /Add-Package /Image:"C:\WinPE_x86\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-FontSupport-JA-JP.cab"
```

以下は64bit版の例です。フォルダ名のアーキテクチャ名部分が異なるだけで、基本一緒です。

```
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Dot3Svc.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-Dot3Svc_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PPPoE.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-PPPoE_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-RNDIS.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-RNDIS_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-WMI_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-NetFx.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-NetFx_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-Scripting.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-Scripting_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-PowerShell.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-PowerShell_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-DismCmdlets.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-DismCmdlets_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-SecureBootCmdlets.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-StorageWMI.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-StorageWMI_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-SecureStartup.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-SecureStartup_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-EnhancedStorage.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-EnhancedStorage_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-HTA.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-HTA_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WinReCfg.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\WinPE-WinReCfg_ja-jp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FMAPI.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\ja-jp\lp.cab"
Dism /Add-Package /Image:"C:\WinPE_amd64\mount" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FontSupport-JA-JP.cab"
```

## 日本語関連設定

32bit版の例：

```
ロケールを日本語に設定
Dism /image:"C:\WinPE_x86\mount" /Set-AllIntl:ja-jp

入力ロケールを日本語に設定
Dism /image:"C:\WinPE_x86\mount" /Set-InputLocale:0411:00000411

キーボードを日本語に設定
Dism /image:"C:\WinPE_x86\mount" /Set-LayeredDriver:6

タイムゾーンを日本標準時に設定
Dism /image:"C:\WinPE_x86\mount" /Set-TimeZone:"Tokyo Standard Time"
```

64bit版の例：

```
Dism /image:"C:\WinPE_amd64\mount" /Set-AllIntl:ja-jp
Dism /image:"C:\WinPE_amd64\mount" /Set-InputLocale:0411:00000411
Dism /image:"C:\WinPE_amd64\mount" /Set-LayeredDriver:6
Dism /image:"C:\WinPE_amd64\mount" /Set-TimeZone:"Tokyo Standard Time"
```

# ディスクイメージのコミットとUSBメディアへの書き込み

32bit版の例：

```
コミットしてディスクイメージをアンマウント
c:\>Dism /Unmount-Image /mountdir:"C:\WinPE_x86\mount" /commit

USBメディアへの書き込み
c:\>makewinpemedia /ufd "C:\WinPE_x86" D:
```

64bit版の例：

```
c:\>Dism /Unmount-Image /mountdir:"C:\WinPE_amd64\mount" /commit
c:\>makewinpemedia /ufd "C:\WinPE_amd64" D:
```

## 途中で失敗した例

マウントしてパッケージ追加してる最中、エクスプローラなどでマウント先のフォルダを覗こうと開きっぱなしにしてたんです。
その状態で `Dism /Unmount-Image /mountdir:"C:\WinPE_x86\mount" /commit` したら以下のようにエラーになってしまいました。

```
c:\>Dism /Unmount-Image /mountdir:"C:\WinPE_x86\mount" /commit

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

イメージを保存しています
[==========================100.0%==========================]
イメージのマウントを解除しています
[==========================100.0%==========================]

エラー: 0xc1420117

ディレクトリを完全にはマウント解除できませんでした。これは通常、アプリケーションがマウント ディレクトリ内のファイルを開いていることが原因です。マウント解 除のプロセスを完了するには、これらのファイルを閉じてから、再度マウントを解除してください。

DISM ログ ファイルは C:\WINDOWS\Logs\DISM\dism.log にあります
```

多分エクスプローラ開きっぱなし（もしかしたら他にもコマンドプロンプトからcdしてたかも）が原因かなと思い、エクスプローラ閉じて、コマンドプロンプト上も別ディレクトリに移動してもう一度 `/commit` でアンマウントしようとしたのですが・・・

```
c:\>Dism /Unmount-Image /mountdir:"C:\WinPE_x86\mount" /commit

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


エラー: 0xc142011d

指定されたマウント済みイメージを WIM にコミットして戻すことができません。これはイメージの一部のみがマウント解除されていたり、イメージがマウント中であるこ とが原因です。以前にこのイメージをコミットしてマウント解除したことがある場合は、コミットは正常に終了した可能性があります。コミットが正常に終了しているかどうかを確認してから、コミットなしでマウント解除してください。

DISM ログ ファイルは C:\WINDOWS\Logs\DISM\dism.log にあります
```

しょうがないので、一旦 `/discard` しました。

```
c:\>Dism /Unmount-Image /mountdir:"C:\WinPE_x86\mount" /discard

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

イメージのマウントを解除しています
[==========================100.0%==========================]
操作は正常に完了しました。
```

`/discard` なので大丈夫かな？と思ったんですが、一応、その後のUSB書き込みは成功した模様。
その後実際にUSBから起動してみて、一応日本語キーボードとかフォント関連は正常だったので、致命的な問題は出てません。
ただ、万全を期すなら念のため作り直したほうが良かったのかも・・・。
結局、上記のように失敗したx86版ではなく、総て異常なく成功した64bit版で作業したので、このx86版で本当に全てのパッケージが正常にインストールできていたのかは未検証のままです。

あとは実際にUSB起動で動作確認して、終わりです。

# 後書き

今回WinPEを初めて使うに至った経緯：

- 知り合いのノートPC(Lenovo G570, Win10アップデート済み)が起動しなくなり、ヘルプを求められた。
- 見てみるとBIOSまでは起動するが、OSが立ち上がってこない。
- CD/DVDドライブは内蔵していたので、試しにUbuntu 16.04 LTSのDVD-ROMを入れて電源ONしてみたところ、そちらは正常に起動する。
- memtest86も実行してみたが、特にメモリに以上は無かった。
- 起動したUbuntu上から、ノートPCの内蔵HDDをマウントしてみたが、パーティションは見えるしNTFSマウントもひとまずできて、数個程度だがファイルの中身も問題なく見れた。
- よって、CPU・メモリ・HDDのハードウェアとしてのクリティカルな問題は無さそう。
- これでOSが起動しないとなると、HDDの中身に問題がある可能性が高い。
- どうにかしてWindows環境を起動して、chkdskだけでも実行したい。
- そういえば、USB起動するWinPEというのを名前だけ聞いたことがある。Win10版は出ていないか？

その後本記事に書いたとおりWinPEのUSBメモリをセットアップし、amd64版(64bit)を用いてWinPEを起動しました。
chkdskでは特に異常も無く、途中、手詰まりになりましたが、ふと「まさか、MBRが壊れてる？」と半ばヤケクソでMBR復旧を試みた所、これが当たりでした。

```
bootsect /nt60 F: /mbr
```

Lenovo G570 ではパーティション構成が若干特殊で、4つくらいパーティションが切られてました。
どのパーティションが「当たり」か手探り（この辺もヤケクソ感あります）で試していったのですが、2番目くらいにあった200MBの空のパーティションが正解でした。

これで無事本来のWin10が起動しました。壊れていたのはMBR周りだけだったらしく、OS起動でも特にエラーなく、ファイルの中身も問題ないようでした。
なぜMBRが壊れたのかは不明ですが、2011年発売のモデルでもう6年近く前の製品ということもあり、調子が悪くなっていたのかもしれません。