SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for 4月 29th, 2010

Windows Embedded Standard 7 を USBメモリにインストール

leave a comment

[はじめに]
この投稿は、Windows Embedded Standard 7 をインストールするクライアントの記憶媒体として
USB メモリを使う方法になります。
USB メモリで起動できる持ち運び可能な Windows 環境を作る方法ではありません。
Windows Embedded は組み込み OS のため、原則としてクライアント本体に OS のライセンスがつくはずです。
USB メモリに OEM のライセンスがつくということはないと思うので、作成した USB を他の端末で起動するのは
ライセンス的に NG になると思います。

インストールした USB メモリを他の端末で起動するのは控えてください。
インストールした USB メモリを他の端末で起動する場合は、必ずライセンス違反にならないかを自己の責任でご確認下さい
Windows Embedded のライセンスは汎用パソコンとしての利用は禁止されているため、組み込みシステム以外で
一般的な利用はできないはずですので。

また、開発/評価目的以外の利用に関しては、System Builder (システム ビルダー) ライセンス に基づき、
正規のライセンス契約の範囲で実施する必要があります。
# OEM ライセンスとして、どのように (どのハード) OEM のライセンスが付与されるのかもこちらのライセンス契約に基づくそうです。

とここまで書いたので、さっそく検証です。

Windows Embedded は [UFD (USB Flash Drive)] にインストールすることが可能です。
UFD ということなので、USB メモリにもインストーすることが可能です。

ただし、デフォルトの状態ではUSBメモリをインストール可能なメディアとしては認識することができません。
image?

■UFD にインストールするための手順

UFD にインストールするためには、[Bootable Windows USB Stack] というパッケージを追加する必要があります。
今回はこのパッケージをメディアブートしてから追加してみたいと思います。
# [Image Configuration Editor] でも追加できます。

今回の検証は、VMware Workstation を使ってホスト OS のUSB メモリをゲスト OS に接続して実施しています。

  1. [Build an Image] をクリックします。
    image
  2. [I accept the license terms] を有効にして、[Next] をクリックします。
    image
  3. 使用するテンプレートを選択して、[Next] をクリックします。
    今回は、[Thin Client] を選択しています。
    image?
  4. 使用する言語を選択して、[Next] をクリックします。
    今回は、[Japanese] を選択しています。
    image?
  5. [Modify Features] を有効にして、[Next] をクリックします。
    image
  6. [Feature Packages] → [Embedded Enabling Features] → [Bootable Windows USB Stack] を有効にします。
    このままでは、[Next] をクリックすることはできません。
    依存関係で排他関係にあるものがあるため、[Resolve Dependencies] をクリックして依存関係を解消します。
    image?
  7. [Standard Windows USB Stack] を無効にし、[Next] をクリックします。
    image
  8. [Done] をクリックします。
    image?
  9. [Next] をクリックします。
    image?
  10. [Next] をクリックします。
    image
  11. U
    SB メモリが選択できるようになっているので、選択して [Next] をクリックします。
    # [Thin? Client] のテンプレートの場合は、インストール時の一時領域の関係でフットプリントが 2GB でもその倍は USB メモリの
     サイズがないとインストールできないようでした。(4GB の USB メモリではインストールできませんでした。)
    ?? そのため、今回は 8GB の USB メモリを使用しています。
    image??

    警告は以下の内容になっています。
    BIOS で USB ブート可能なように設定しましょうという内容ですね。
    image?

これで USB メモリに WES がインストールされます。
image

Windows Embedded は XP の時から、USB メモリへのインストールをサポートしていたようで、それに関しては WES 7 になっても
継続してサポートされるようですね。

Written by Masayuki.Ozawa

4月 29th, 2010 at 5:55 pm

Posted in Windows Embedded

Windows Embedded Standard 7 の展開イメージをカスタマイズ その 4 – エクスプローラーシェルの追加 –

leave a comment

Windows Embedded Standard 7 の [Minimum Configuration] では UI がコマンドプロンプトシェルとなっているため、
Server Core 相当のインタフェースとなっています。
image?
image?

このままではシンクライアントといえど少し味気ないですよね。そこで、UI をエクスプローラーシェルに変更したいと思います。

■エクスプローラーシェルの追加

エクスプローラーシェルに変更するには、以下のパッケージを追加します。
[Packages] → [FeaturePack] → [User Interface] → [Windows Shell] → [Windows Explorer Shell]image

あとは依存関係を解決して、展開用イメージを作成します。
# 作業は、[Minimum Configuration] の展開イメージ作成と同じです。

[Command Prompt Shell with Custom Shell Support] と [Windows Explorer Shell] は排他になっているため、どちらかしか選択できません。
image

作成した展開用イメージを使用してインストールした環境が以下の画像になります。
image  image

Windows らしい環境になりました。
機能としては何もインストールされていないので、これだけだとシンクライアントにもならなさそうですけどね。
image?

[Thin Client] からカスタマイズするのが楽だとは思うのですが、[Minimum Configuration] からカスタマイズするほうが
必要なコンポーネントを追加して OS を作っていくというイメージがしやすいと思います。

次の投稿では、USB メモリに Windows Embedded Standard 7 をインストールする方法についてまとめてみます。

Written by Masayuki.Ozawa

4月 29th, 2010 at 2:44 pm

Posted in Windows Embedded

Windows Embedded Standard 7 の展開イメージをカスタマイズ その 3 – ハードウェア構成のインポート –

leave a comment

前回展開したイメージですが、Hyper-V の統合サービスでインストールされるデバイスドライバ関連が導入されていないため、
リモートで接続をした際にマウスを使用することができない状態となっていました。

Windows Embedded Standard 7 は Windows 7 ベースの OS のため、メディアには統合サービス関連のドライバが
含まれているのですが、展開用に作成したイメージにはドライバが含まれていない状態のため、このような動作となっています。

以下の画像が配布共有に含まれているパッケージから [Virtual Machine] で検索した内容となっています。
image

統合サービスをインストールすると組み込まれるドライバが表示されていますね。
これらを一つ一つ応答ファイルに組み込んでもよいのですが、ちょっと面倒ですし他にインストールしなくてはいけない
パッケージもありそうですよね。
image

Windows Embedde には、[Target Analyzer] という機能があり、この機能を使用するとインストールをする端末の
ハードウェア情報を取得することができます。

[Target Analyzer] は [TAP.exe] というプログラムを実行することで使用することができます。
このプログラムは、Windows Embedded Standard 7 のインストールメディアか、[Image Configuration Editor] から作成できる、
[Windows PE] のイメージで対象の端末を起動すると使用することができます。

image

今回は、Windows Embedded Standard 7 のインストールメディアで起動して、ハードウェア情報を取得したいと思います。

■ハードウェア情報の取得

まずは、Windows Embedded Standard 7 のインストールメディアでハードウェア情報を取得する端末を起動します。

image

端末が起動したら、[Shift+F10] を押して、コマンドプロンプトを起動します。
image

後は、[TAP.exe] を実行すれば完了です。
[TAP.exe] を以下の形式で実行します。
# 拡張子は [.pmq] で取得します。

tap.exe /o <取得先>

例)
tap.exe /o c:temptap.pmq

image

インストールメディアは [netsh] コマンドを使うこともできますので、NIC が認識していれば共有ディレクトリに取得することもできます。

取得したファイルを、[Image Configuration Editor] をインストールしている端末にコピーします。

■ハードウェア情報のインポート

取得したハードウェア情報を、[Image Configuration Editor] にインポートします。

[File] → [Import] → [Import PMQ] を選択します。
image

取得した [PMQ] ファイルを選択してハードウェア情報をインポートします。
image

そうすると応答ファイルに必要なパッケージが自動的にインポートされます。
インストールメディアに含まれているハードウェア固有のパッケージをインポートするにはこの方法を使うと、とても楽ですね。
image

今回の取得したハードウェア情報は、 Hyper-V のゲスト OS のものなので、統合サービスでインストールされるドライバ関連が
一括でインポートされています。

この状態でインストール用のイメージを作ってインストールをすると、統合サービスが含まれていますのでリモートから接続しても
マウスを使用することが可能です。

次の投稿では、[Minimum Configuration] のイメージにエクスプローラーシェルを組み込み GUI の環境にする方法をまとめてみます。

Written by Masayuki.Ozawa

4月 29th, 2010 at 1:52 pm

Posted in Windows Embedded

SQL Server 2008 R2 のクラスターインストール時のネットワークバインド順序の警告について

leave a comment

SQL Server 2005 以降のクラスターのインストールではセットアップ時に以下のようなインストール前の検証が行われます。
# 以下は SQL Server 2008 R2 November CTP の内容です。

image?
[ネットワーク バインド順序] 以外のルールはすべて [合格] にできるのですが、環境によっては [ネットワーク バインド順序] だけが
[警告] になってしまうという現象がまれに発生していました。

警告は以下の内容となっています。
image?

今回の環境では、[Public] というドメインのネットワークと、[Private] というクラスタの内部通信用のネットワークの 2 種類を用意しています。
ネットワークのアクセス順序に関しては、[Public] [Private] という順番にしてあり、優先順位としては [Public] のほうが高い設定となっています。
image

ドメイン ネットワークのほうが、優先順位高いのですが、この警告が発生するんですよね。
[Public] と [Private] の順序を変更すると警告が消えることがあります。
# あくまでも警告のレベルなので、インストールは継続することができ動作的にも特に問題はないのですが。

今日の午前中に、英語版の SQL Server 2008 R2 RTM の Enterprise Evaluation をインストールしていて同様の現象が発生し、
そういえばこの間この現象について、英語の情報があったな~と思い対応方法をまとめてみました。

■参考にした情報

この現象の解決には、以下のサイトの情報を参考にさせていただきました。
Network Binding Order Rule Warning in SQL Server 2008 Cluster Setup Explained

このチェックに関しては、[アダプターとバインド] で設定する順序だけでなく、レジストリの設定も関係しているようですね。

■対応方法

  1. ネットワークアダプタの順序の設定
    ネットワークアダプタの順序に関しては、[ネットワーク][プロパティ] を開いて、
    image

    [詳細設定][詳細設定] から変更することができます。
    # Windows Server 2008 以降はメニューバーが表示されないので、[Alt] を押してメニューバーを表示します。
    image

  2. ゴーストデバイスが存在していないかの確認
    NIC のゴーストデバイスが残っていないかを確認するのもポイントのようですね。
    以下の KB はWindows 2000 Server 用の技術情報になりますが、2008 / R2 でも同様の操作で表示することが可能です。
    Windows 2000 に現在存在しないデバイスがデバイス マネージャに表示されない

    いつまでたっても、

    set devmgr_show_nonpresent_devices=1
    cd%SystemRoot%System32
    start devmgmt.msc

    が覚えられないです…。

    上記コマンドを実行すると [非表示のデバイスの表示] を有効にした際に、ゴーストデバイスが表示できるようになりますので、
    image

    [ネットワーク アダプター] に薄い文字で表示されているデバイスがないかを確認します。
    今回の環境ではゴーストデバイスは存在していないために表示されていません。
    # 薄い文字で表示されているものが接続されていないがアダプターとしては残っているゴーストデバイスになります。
    image

  3. レジストリの設定変更
    多くの場合は、このレジストリ値のの設定が起因して警告が表示されているような気がします。

    [HKLMSYSTEMCurrentControlSetServicesTcpipLinkage][Bind] という [REG_MULTI_SZ] の設定があります。
    image?

    SQL Server のクラスターのインストールでは、この値の順序もアダプタのバインド順序として認識されているようです。

    このままでは、どの値がどのアダプターを指しているかわからないのでコマンドプロンプトで、[WMIC] を使ってアダプターと値の関連を調べます。

    wmic nicconfig get description, SettingID

    そうすると以下のような結果が取得できます。

    WAN Miniport (SSTP)??????????????????????????????????????? {4AE6B55C-6DD6-427D-A5BB-13535D4BE926}
    WAN Miniport (IKEv2)?????????????????????????????????????? {DBD85EFC-7CFA-4A38-90A3-4803A40BF61E}
    WAN Miniport (L2TP)??????????????????????????????????????? {66973E50-CF44-46A7-AD86-0F369D30ACA2}
    WAN Miniport (PPTP)??????????????????????????????????????? {F93EB786-8968-43C5-BC58-54D87385060E}
    WAN Miniport (PPPOE)?????????????????????????????????????? {6A16EDEB-24DF-416A-B427-CED88EFCA006}
    WAN Miniport (IPv6)??????????????????????????????????????? {F4373218-ED19-4F3D-8DB4-982009ED86B7}
    WAN Miniport (Network Monitor)???????????????????????????? {5356FE17-48EE-4A7A-BECE-645E20060A52}
    Microsoft Virtual Machine バス ネットワーク アダプター???? {80A41E42-ED0F-4584-860F-F03808F2D520}
    WAN Miniport (IP)????????????????????????????????????????? {66513FCE-F1B9-480C-B278-3DD588D5D452}
    Microsoft Virtual Machine バス ネットワーク アダプター #2? {B14AF60C-B406-4890-9D27-0D7034D634AD}
    RAS Async Adapter????????????????????????????????????????? {DD2F4800-0DEB-4A98-A302-0777CB955DC1}
    Microsoft Failover Cluster Virtual Adapter???????????????? {64D317B9-D0D5-4AAB-9D1F-8D8BA9E5A1E3}

    今回は、[Public] が [#2] のアダプタを使っているので、[{B14AF60C~}] の値が、ドメイン ネットワークになりますね。
    image

    それではレジストリの値を変更して、Public のネットワークを先頭に設定します。
    # ついでに、[Private] を 2 番に設定しています。Public が先頭にあれば、警告は表示されないようになるためこれは必須ではありません。
    image

以上で設定は終了です。

SQL Server のインストーラーの検証を再実行してみます。
# 設定変更後にサーバーの再起動はしていません。

すべての検証が [合格] になりました。
ファイアウォールはすべてを合格にするために機能自体を無効にしているので、本来は [Windows ファイアウォール] だけが警告になるのが正しいと思いますが。
image?

ネットワークのプロパティからの設定だけでなく、レジストリの変更をしないと警告が回避できないのでちょっとわかりずらいですね。

Written by Masayuki.Ozawa

4月 29th, 2010 at 4:32 am

Posted in SQL Server