Windows PE

提供: ArchWiki
2015年11月22日 (日) 21:21時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

Windows PE は Windows Vista 以降の Windows のインストールや、システムメンテナンスなどに使うための Windows の軽量版です。完全にメモリ上で動作し、ネットワークから起動することができます。このページでは Arch Linux マシンのフリーソフトウェアパッケージと Microsoft の Windows Automated Installation Kit (WAIK) だけを使って Windows PE イメージをカスタマイズして作成する方法や、ネットワーク上に公開する方法を説明します。WAIK は無償でダウンロードすることができ、Windows PE の初期コピーやブートファイルが含まれた boot.wim ファイルを展開するのに必要です。

警告: 物理コンピュータ上で Windows PE を起動した場合、Microsoft のクローズドソースコードにコンピュータの制御を任せることになります。自己責任で使って下さい。さらに、Windows Automated Installation Kit をダウンロードすると、ライセンスに縛られることになり、Windows PE を多目的のオペレーティングシステムとして使うことはできません。

ユースケース

通常、Windows PE のイメージは Windows マシンの Windows Automated Installation Kit (WAIK) を使わないと作成できません。しかしながら、(Arch) Linux マシンを使って Windows PE のイメージを作成・修正して、ネットワーク上に公開して PXE ブートすることも可能です。Windows マシンは必要ありません。以下のような場合に Windows PE が有用です:

  • Arch Linux ベースのサーバーを使って、ネットワークから Windows をインストールしたり、ネットワークから Windows PE を起動してシステムの管理をする必要がある場合。Windows ベースのサーバーがなかったり、セキュリティと可搬性を取って出来るだけ Linux サーバーを使いたい、あるいは他の目的で既に Linux サーバーをセットアップしている (わざわざ Windows サーバーなんて立てたくない) などの理由が考えられます。
  • Win32 プログラムを実行する Windows 環境が必要な場合。利用可能な Windows マシンが存在せず、Wine を使いたくはない、あるいはプログラムが Wine では上手く動作しないなど。

ブータブル Windows PE ISO の作成

Microsoft のウェブサイト から Windows Automated Installation Kit (WAIK) をダウンロードしてください。

警告: KB3AIK_EN.iso のダウンロード容量は 1.7GB です。
ヒント:
  • httpfs を使うことでファイル全部をダウンロードする必要がなくなります。実際に必要なのは 118MB ほどだけです。
  • Windows 7 以降のバージョンのインストールメディアを持っている場合、WAIK の代わりにその ISO ファイルや光学ディスクを使うことができます。mkwinpeimg は WAIK のイメージと Windows のインストールメディアの両方を扱うことができます。Windows のインストールメディアのバージョンによって含まれている Windows PE のバージョンも異なるので注意してください。Windows のバージョンと Windows PE のバージョンの関連性については、Wikipedia を参照してください。
  • Windows 8 から WAIK は WADK に名前が変更されており adksetup.exe によって配布されるようになっています。Windows PE 4.0 以降のバージョンを入手するには、Windows 8 以降のバージョンのインストールメディアを使う必要があります。MSDN 会員ならインストールメディアの ISO ファイルが入手できます。他の場所から ISO をダウンロードして MSDN で公開されているハッシュ値でハッシュを比較することも可能です。

公式リポジトリから fuse, cdrkit, cabextractインストールしてください。

AUR から wimlibAUR をインストールしてください。

WAIK ISO のマウント:

# mkdir /media/waik
# mount KB3AIK_EN.iso /media/waik

wimlibAUR に含まれている mkwinpeimg スクリプトを使ってブータブル Windows PE ISO winpe.iso を作成:

$ mkwinpeimg --iso --waik-dir=/media/waik winpe.iso

詳しくは man mkwinpeimg を参照してください。

WAIK ISO のアンマウント:

# umount /media/waik

Windows PE の起動

前記のセクションで書かれているように Windows PE のブータブル ISO (winpe.iso) を作成したら、以下の方法で Windows PE を起動できます:

仮想マシン

winpe.iso を CD-ROM と設定して仮想マシンを起動してください。Windows PE はメモリ上で動作するため、十分なメモリを割り当てて下さい。少なくとも ISO の容量以上のメモリが必要になります。利用可能な仮想化ソフトウェアのリストはカテゴリ:仮想化を参照。

CD

winpe.iso を CD に書き込めば、CD から起動できます。

ネットワーク

Windows PE は PXELINUXMEMDISK モジュールを使ってネットワークから起動することができます。

syslinuxtftp-hpa をインストールしてください。

TFTP サーバーのルートディレクトリに必要な PXELINUX ファイルをコピー:

# cp /usr/lib/syslinux/{pxelinux.0,menu.c32,memdisk} /var/tftpboot

TFTP サーバーのルートディレクトリに winpe.iso を配置:

# mv winpe.iso /var/tftpboot

以下のように PXELINUX の設定ファイルを作成:

/var/tftpboot/pxelinux.cfg/default
UI         menu.c32
MENU TITLE Network Boot
TIMEOUT    50

LABEL      winpe
MENU LABEL Boot Windows PE from network
KERNEL     /memdisk
INITRD     winpe.iso
APPEND     iso raw

LABEL      localboot
MENU LABEL Boot from local disk
LOCALBOOT  0

TFTP サーバーを起動してください。

(DhcpdDnsmasq など) DHCP サーバーを設定して Linux サーバーの IP アドレスから pxelinux.0 をブートファイルとして指定します。DHCP サーバーがルーター上にある場合、カスタムファームウェアをインストールしないと指定できない可能性があるので注意してください。

上記の手順が完了したら、ネットワークから Windows PE を起動することができるはずです。

ノート: 上の PXELINUX 設定ファイルでは、Windows PE はデフォルトで5秒後に起動します。

ネットワークブートのパフォーマンス

TFTP は (118MB 以上はある) winpe.iso のような巨大なファイルを転送するようには設計されていません。pxelinux.0 ではなく gpxelinux.0 ブートローダーを使って TFTP ではなく HTTP を使って winpe.iso をロードすることでパフォーマンスを改善できます。

Windows PE のカスタマイズ

wimlibAUR に含まれている mkwinpeimg スクリプトでは --start-script--overlay オプションを使うことで Windows PE の改造ができます。詳しくは mkwinpeimg のマニュアルページを見て下さい。

Windows PE をカスタマイズすることで、Windows PE の中で実行したい Windows アプリケーションを追加したり、Windows PE が必要とするドライバーを追加することができます (ドライバーは Windows PE の中で drvload コマンドを使うことでロードできます)。

参照