• Windows PE で特定のアプリケーションを起動させる方法について

    こんにちは。

    Windows プラットフォームサポートの頂です。

     

    今回はWindows PE のカスタマイズについてご紹介いたします。

    一般的な Windows PE のシナリオとして、Windows のインストールやトラブルシューティング ツールとして利用できますが、Windows PE のカスタマイズをすることで、自分で用意したアプリケーションを起動することや、特定の作業だけを実施させることなどもできます。

    ここでは、Windows PE 利用時に、特定のシェルやアプリケーションを起動する方法として、Winpeshl.ini を利用した手順の記述方法をご紹介したいと思います。

     

    まずは Windows PE の起動についてから少しご説明いたします。

    カスタマイズされていない (標準構成) Windows PE より起動した場合、OS のカーネルなどが読み込まれ、その後、Winpeshl.exe 、 Startnet.cmd 、Wpeinit.exe の順に起動します。

    その起動プロセスが終了すると、コマンド プロンプトが表示された状態になりますが、今回ご紹介する Winpeshl.ini を利用する手順は、上記プロセスの startnet.cmd を実行する前の処理をカスタマイズする方法となります。

     

    具体的には、自分で用意したアプリケーション (シェル) を Windows PE で起動して利用することや、アプリケーションから設定された特定の処理のみ実行することができます。

     

    注意点としては、Winpeshl.ini  を利用してカスタマイズすると、Wpeinit.exe が実行されない状態でWindows PE が起動します。

    その場合、Plug and Play デバイスのインストールやネットワークの初期化などが行われないため、ご利用用途によっては Wpeinit.exe に対する処理も含める必要があります。

     

    Winpeshl.ini  については、以下 Technet サイトでご紹介いたしております。

    Winpeshl.ini のリファレンス

    http://technet.microsoft.com/ja-jp/library/hh825046.aspx

     

    Winpeshl.ini Reference

    http://technet.microsoft.com/EN-US/library/hh825046.aspx

    ※ こちらは英語でのドキュメントとなります。

     

    [設定について]

    上記Technet サイトの情報を基に Winpeshl.ini ファイルの記載例などについてご紹介いたします。

     

     - Winpeshl.ini ファイルの記載例

    ----------------------

    [LaunchApp]

    AppPath = %SYSTEMDRIVE%\Fabrikam\shell.exe

    [LaunchApps]

    %SYSTEMDRIVE%\Fabrikam\app1.exe

    %SYSTEMDRIVE%\Fabrikam\app2.exe, /s "C:\Program Files\App3"

    ----------------------

     ※ [LauchApps] セクションではアプリケーション名とオプションをカンマ (,) で区切ります。

    上記以外のTechnet 文書では、"-option1" など様々な記載例となっていますが、オプションで引数として渡す値については、実際に利用するアプリケーションに合わせて任意の設定を行います。

     たとえば、メモ帳を起動してファイルを開くような場合は、カンマの後にファイル パスを入力します。

     

    なお、[LaunchApp] と [LaunchApps] のいずれかのセクションのみでの利用も可能です。

    どちらのセクションに記載した場合でも、実行されたコマンド プロンプト ウインドウ または、カスタム シェル アプリケーションを終了すると、Windows PE が再起動します。

     

    以下では、それぞれのセクションについてご説明いたします。

     

    [LaunchApp] セクションについて

    --------

    [LaunchApp]

    AppPath = %SYSTEMDRIVE%\Fabrikam\shell.exe

    --------

    AppPath エントリに、シェル アプリケーションへのパスを設定します。

    完全修飾パスまたは環境変数 (%SYSTEMROOT%\System32\Myshell.exe など) を指定できます。

    LaunchApp はコマンド ライン オプションをサポートしません。

    LaunchApp は 1 つのアプリケーションのみ実行できます。

    250 文字を超えるコマンドは指定できません。

     

     [LaunchApps] セクションについて

    ----------------------

    [LaunchApps]

    %SYSTEMDRIVE%\Fabrikam\app1.exe

    %SYSTEMDRIVE%\Fabrikam\app2.exe, /s "C:\Program Files\App3"

    ----------------------

    アプリケーションでコマンドライン オプションを使用して、実行するには、[LaunchApps] セクションを使用します。

    アプリケーションは複数実行可能で、一覧に記載された順に実行されます。

    アプリケーション名とオプションをカンマ (,) で区切ります。

    250 文字を超えるコマンドは指定できません。

    - 参考情報

    Windows プレインストール環境 (Windows PE) の概要

    http://technet.microsoft.com/ja-jp/library/hh825110.aspx

     

    Windows PE とは

    http://technet.microsoft.com/ja-jp/library/dd799308(v=WS.10).aspx

     

    Windows PE の機能

    http://technet.microsoft.com/ja-jp/library/dd744556(v=WS.10).aspx

     

  • ストレージ 共有ディスクを複数ホストでご利用いただく際の注意事項

    こんにちは。Windows テクノロジー サポートの服部です。

    “物理サーバーに外部接続された SAN ストレージ上のディスクを、複数ホスト サーバーから共有ドライブとして使用したい。”というお問い合わせをいただく事がございます。

    このような要件でストレージをご利用いただく際の一般的な注意事項をお話させていただきます。


    注意事項1.
    --------------

    Windows OS では、一つのボリュームを複数のシステムから同時にマウントして使用することをサポートしておりません。

    例えば、共有ディスクとして SAN ストレージ上のディスクを使用する際、ディスク装置上のマッピングは複数のホストに実施しどのノードからもアクセス可能状態と設定します。

    この際、気にするべきポイントは各ファイル システムから同時にディスクへアクセスさせてはいけないという点です。

    複数のホストから同時にボリュームをマウントして使用した場合には、各サーバーによる操作の整合性が取れず、ファイル システムの不整合が発生し、ディスク上のデータ破損などが発生する可能性があります。

    参考資料 :
    文書番号: 816307
    Windows Server 2003 ベースのコンピューターでのダイナミック ディスクの使用に関する推奨事項
    http://support.microsoft.com/kb/816307/ja

    抜粋 :
    Windows では、1 つのディスク ボリュームを複数のホストで同時にマウントすることは サポートされません。
    この制限は、ベーシック ディスク上またはダイナミック ディスク上に配置されたボリュームに対して適用されます。


    注意事項 2.
    --------------

    Windows Server 2008 R2 以降、"自動マウント (Automount)" 機能が既定で有効になっており、無効にすることは推奨しておりません。

    ボリュームのディスマウントは mounvtol <ドライブ レター> /P コマンドで行うことができますが、システムを再起動すると自動マウント機能により再マウントされた状態になります。

    ドライブ レターはアサインされていない状態になりますが、ファイル システムとしてはマウントされた状態になりますので、アクセスを完全にブロックすることができません。

    自動マウント機能を切る (*) こともできますが、こうするとシステム予約領域 (ディスクの先頭の 100MB の領域です) も再起動後にマウントされなくなるため、推奨いたしません。

    参考資料 :
    自動マウント機能が無効化されている事でシステム予約領域がマウントされず、リストアに失敗した事例です。

    文書番号: 2796371
    Windows Server 2008 R2 で自動マウント機能が無効な場合にベア メタル回復のリストア時にエラー 0x80042302 が発生しリストアに失敗する
    http://support.microsoft.com/kb/2796371

    ディスクの排他制御を行うため、一つのホストでボリュームをオンラインにした場合もう一方のサーバーでは、ディスクをオフライン状態とします。こうしていただくことで、ディスクは不活性状態になります。

    排他制御の目的とは、データの一貫性と独立性を確保する事ですので、ディスクをオフラインとしなくてもボリュームのディスマウント(または HBA デバイス無効化等)を実施しておけば、排他制御としては十分ではないかとお考えになると思いますが、Windows Server 2008 R2 以降、"自動マウント (Automount)" 機能が既定で有効になっておりますため、ストレージがオンライン状態で起動しますとシステム上に新規のボリュームが検出されると自動的にマウントし、ドライブ レターを割り当てます。

    このため、起動時の状況によっては複数ホストによる同時マウントが発生し、ファイルシステムの障害の要因となることが考えられます。

    ..補足..

    Windows Server 2008 R2 では Automount の無効は推奨されないため、ディスクのオンライン/オフラインは“SAN ポリシー”で制御されます。

    Windows Server 2008 R2 の Standard Edition では、既定では検知されたディスクを自動でオンライン状態にする設定になっています。

    Windows Server 2008 R2 の Enterprise Edition 以上では、既定のポリシーは OfflineShared です。このケースではブート ディスクの他に、共有バス上にないディスクはオンラインになります。既定では、オフライン ディスクは読み取り専用になります。

    SAN ポリシーは、diskpart の SAN コマンドにて確認することができます。


    参考資料 :

    San
    http://technet.microsoft.com/en-us/library/gg252636(v=ws.10).aspx

    文書番号: 973834
    <英語原文>
    Microsoft Hyper-V Server SAN policy is set to automatically mount volumes on startup
    http://support.microsoft.com/kb/973834/en-us
    <機械翻訳>
    Microsoft Hyper-V サーバーの SAN このポリシーを起動時に自動的にボリュームをマウントする] に設定します。
    http://support.microsoft.com/kb/973834/ja


    注意事項 3
    --------------

    Server サービスの起動時に対象のドライブがマウントされていないと共有設定が再生成されない場合があります。

    ディスク上に、例えば共有フォルダを作成した場合、Server サービスによってその共有設定の情報が管理されます。

    共有アクセス権の情報は、レジストリに格納されており、Server サービスは起動時にこのレジストリを読み込む動作をします。

    手動でディスクのオンラインを実施する際、ストレージのマウントが完了する前にServer サービスが起動してしまうと共有設定が消えてしまう状況が発生する場合があります。

    この場合は Server サービスの再起動によってこれまでに設定した情報を再度読み込む事で共有アクセス権を再認識させる事が可能です。

    参考資料 :
    文書番号: 870964
    コンピューターの起動時に iSCSI デバイス上のファイル共有再作成しません。
    http://support.microsoft.com/kb/870964/ja

    当コンテンツがお客様のお役に立てば幸いです。

  • Windows Server 2012 上での NFS 利用時のユーザーマッピングについて

    こんにちは。Windows プラットフォーム サポートの松田です。

     

    今回は Windows Server 2012 から追加されたユーザーのマッピング方法についてご紹介いたします。

     

    Windows 上で NFS を利用する場合、Windows ユーザーと UNIX ユーザーのマッピングが必要な場合があります。

    Windows Server 2008 R2 までは、Active Directory (AD) もしくは、Active Directory Lightweight Directory Service (AD LDS) を利用する方法が一般的でした。さらに Windows Server 2012 からは、新たに passwd/groupファイルによる簡易なマッピングが追加されています。

     

    例として、WORKGROUP 環境の Administrator と Administrators グループを UNIX の root ユーザー(uid:0) と root グループ (gid:0) にマッピングする手順についてご紹介します。

     

    1. UNIX マシンより passwd ファイルと group ファイルをコピーします。

    2. 手順 1 で用意した passwd ファイルのユーザー名の表記を root から Administrator に変更します。同様に group ファイルのグループ名の表記を root から BUILTIN\Administrators に変更します。

       // 変更例 (passwd ファイル):

       Administrator:x:0:0:root:/root:/bin/bash

       // 変更例 (group ファイル)

       BUILTIN\Administrators:x:0:root

    ※WORKGROUP 環境の Administrators には、 BUILTIN\Administrators と記載する必要があります。
    また、passwd ファイルのエントリはユーザー名、UID、GID のみが参照され、ホーム ディレクトリやログイン シェルなどのエントリは無視されます。
    group ファイルのエントリはグループ名、GID、グループ リストが参照されます。

    3. passwd ファイルと group ファイルを以下のパスに配置します。

       %SystemRoot%\system32\drivers\etc\

     

    このように passwd ファイルと group ファイルを利用することで簡単にマッピングが実現することができます。

     

    <参考情報>

    NFS Identity Mapping in Windows Server 2012

    http://blogs.technet.com/b/filecab/archive/2012/10/09/nfs-identity-mapping-in-windows-server-2012.aspx