ページ

2015年4月8日水曜日

Windows7SP1 zero-touch Deployment その2


Windows7SP1 zero-touch Deployment  その2

 

Volumeライセンスでの大量展開は他にかなりのドキュメントがありますのでそちらをご参照ください。
またここではWindows7を扱います。WindowsXP、Windows8~は扱っていません。


ここの続きです。




1. テクニシャンコンピュータの構築


1.4. WindowsPE3.1の作成(オリジナルコマンド追加)



WindowsPEの起動時、Startnet.cmdというバッチファイルが実行されます。ここにはwpeinit.exeを呼び出すコマンドのみが記述されてますが、自前で用意したバッチファイルを追記しておけばWindowsPE起動時に実行されるという寸法です。
Windows PE で特定のアプリケーションを起動させる方法について

WindowsPEから自動的に呼び出す必要があるのは以下の2つ。

  • ディスクユーティリティ
  • Windowsセットアップ


Windowsをインストールするときにはパーティションを自前で切るのが通例ですが、端末の目的によってはパーティションサイズを指定する必要があります。
Windowsインストール時にパーティション操作をするのはDISKPART.exeです。

このDISKPARTはスクリプトファイル(ただのテキストファイルです)をオプションで引数にできますので、自前バッチファイルに

diskpart /s CreatePartitions.txt

てな感じで追記しておきます。
サンプル: 展開スクリプトを使用して Windows パーティション、システム パーティション、回復パーティションを適用する



Windowsセットアップについては当然ですが、セットアップユーティリティ=setup.exeはネットワーク上の共有フォルダに展開されています。

よって追記するバッチファイルに共有(TECHPCのことです)へのアクセスを設定します。

net use Z: \\TECHPC\share /user:username password
Z:\setup.exe /unattend:unattend.xml

こんな感じ。

Z: とか\\TECHPC とかは随時変更してください。IPアドレス直指定がいいかも。



これらのバッチファイル群は選択しやすいようにシーケンシャルな記述ではなく、ユーザーが選択できるようにインタラクティブにしておき、端末ごとに一括適用できるようにしておくと便利です。

あと上の CreatePartitions.txt、unattend.xml、自前バッチファイルはWindowsPEのシステムフォルダに格納しておきます。
システムフォルダはmountフォルダにマウントしているとすると、
\mount\Windows\System32
です。

これ以上は長くなるので今度の機会に。



このあとPXEサーバを設定しますが、以下の2ファイルが必要になりますのでWindowsPEをマウント中の今のうちに抜き出しておきます。

  • mount\Windows\Boot\PXE\bootmgr.exe
  • mount\Windows\Boot\PXE\pxeboot.n12

この2ファイルをC:\PXEにコピーしときます。



WindowsPEのカスタマイズはこの辺で切り上げますのでアンマウントします。

コミットオプションをつけるとカスタマイズを反映します。


Dism /unmount-wim /mountdir:C:\winpe\mount /commit


カスタマイズをキャンセルしてアンマウントは /discard。


Dism /unmount-wim /mountdir:C:\winpe\mount /discard


マウントしたまま寝てしまって、気付いたら再起動がかかってり、マウントしたファイルを開いているのにアンマウントしちゃってにっちもさっちもいかなくなったら、これで。


Dism /Cleanup-Wim



展開イメージのサービスと管理のコマンド ライン オプション



1.5. 追加設定 - PXEサーバ機能



ほとんどのドキュメントはUSBブートを推奨していますが、いまどきPXEブートできないPCもほとんどないでしょう。一部のモバイルオンリーPCにNICはそもそもありませんが。


というわけでPXEサーバ機能を持たせます。
ここがわかりやすいですね。参考になります、ありがとうございます。


悩み多き文教市場のインフラ屋さん
Windows PE 3.0 をネットワークブートさせる (TFTPD32)


上記のとおりですが、説明しておきます。


TFTP32
http://tftpd32.jounin.net/

ここから tftpd32 standard edition (zip) をダウンロードして解凍します。
解凍したファイルは先ほどのC:\PXEに展開しておきます。

そしてC:\winpe\ISO\フォルダの中身をC:\PXEにコピーします。

1.4.でコミットしたboot.wimをC:\PXE\sources\boot.wimに置き換えます。

1.4.で抜き出しておいたbootmgr.exe、pxeboot.n12をC:\PXE\bootに入れます。

ツリーでいうとこんな感じです。

C:\PXE\
       |     bootmgr
       |     EUPL-EN.pdf
       |     pxeboot.com
       |     tftpd32.chm
       |     tftpd32.exe
       |     tftpd32.ini
       |
       +---boot\
       |        +---fonts\
       |        |      bcd
       |        |      boot.sdi
       |        |      bootmgr.exe
       |        |      etfsboot.com
       |        |      pxeboot.n12
       |        |
       |
       +---sources\
       |        |      boot.wim  (変更したやつね)
       |
       +---EFI\
                +---microsoft\


んでもって設定します。




設定は上の通りですが、注意点としては

  • "Current Directory"は"C:\PXE"
  • "Settings"の"DHCP"タブ、"Boot File"の指定は、"バックスラッシュbootバックスラッシュpxeboot12.n12"です
  • もちろんC:\PXEフォルダに共有、アクセス許可がかかっている(読み取りで)
  • VirtualBoxなんかでDHCPを持たせていないこと。VirtualBoxに「NATネットワーク」機能がありますが、このDHCP機能のせいでTFTPD32の吐き出すIPアドレスを受け取れなくなります。
  • サーバ、クライアントがVirtualBoxのゲストOSのとき、それぞれのネットワーク設定を「内部ネットワーク」で試してみる
  • ゲストOSの起動順序、ネットワークをONにしている

これで起動できるはず。


ここでIPアドレスを受け取れれば、


みたいな画面になります。
下のIP: 192.168.200.10. はサーバ=TFTPD32のIPアドレス。


TFTPD32側はこんな感じ。


起動完了!
wpeutil shutdown
でWindowsPEをシャットダウンしておきます。

PXEブートについてはこのへんで終わります。
続きはまた次回

0 件のコメント:

コメントを投稿