Blog型メモ帳 Ver.2019.08.20

ダラダラとそこはかとなく。Webメモ帳。日記。内容無し駄文。Wired思考アーカイブ。(1999/1/7~)

Windows Embedded standard 7(旧2011)の構築について

Windows Embedded standard 7(旧2011)はWindows 7 をベースとしたembeddedシステム。
評価版の提供方式には2種類あり、ICE版(image Configuration Editor)とCTP版(Community Technology Preview)で提供されていた。ICE版は以前のものと同じく数千個用意されたコンポーネントから使用する機能を選び構築していく。CTP版は普通のOSインストールのように作業を行い、途中で使用する機能を選ぶ項目が出てくるのでそこで機能の追加と削除を行うことができる。何もせずインストールを行うと、通常のWindows 7と同等の機能が提供されていると思われる。(詳細なテストを行っていないため不明)製品版でCTP版が提供されるかは不明だが、CTP版は簡単に安定したWindows 7 embeddedを提供できるので残してほしい機能だと思う。

1.ICE版について

操作形式は以前のWindows Embedded用taeget desinerに共通するものがある。しかし、OSイメージの構築方法など細部が変更されており、全体で異なっていた。総合的には以前より操作、設定が行いやすくなっているようにうかがえる。現時点では、EWFやOS自身の設定をどこでどのように行うかが不明である。
OSイメージの構築については、以前と同じようにコンポーネントの追加と削除で行うが、コンポーネントの数が減り、まとめられていた。また、コンポーネント同士の依存関係の調査、対応もわかりやすくなっていた。評価版だからなのか、OSに必要なコンポーネントのテンプレートが用意されていたのもよかった。製品版でもこういったパーツが提供されるとわかりやすいと思う。あと、前回も行っていたtap.exeによるハードウェアの構成調査は今回も必須事項だった。調査はwindows PEを使用して行うようだが、windowsXPWindows 7上で実行したファイルも問題なく使用することができたことから、特に縛りは無いと思われる。
OSのインストールは旧Embedded OSとは違い、作成されたファイルをISOイメージ化し、ブート可能なDVDディスクから行う。(他の方法がある?)以前のような作成されたOSイメージをHDDにコピーして構築する方法とは異なる。

OSのインストールイメージ作成手順。
以下のページが詳しい
http://engineer-memo.spaces.live.com/?_c11_BlogPart_pagedir=Next&_c11_BlogPart_handle=cns!DEC1C75BCA0DCEB2!8837&_c11_BlogPart_BlogPart=blogview&_c=BlogPart
要約すると
①OSイメージの作成は「Image Configuration Editor」で行う。
②アプリを起動したら「Distribution share」のウインド内で右クリックし「select Distribution shareで」で以下のフォルダを選択する。「C:\Program Files\Windows Embedded Standard 2011\DS」すると、OSのコンポーネントの一覧が表示される。
③「File」→「Open answer file」を選ぶ。「C:\Program Files\Windows Embedded Standard 2011\DS\Templates\IBW」には数種類のOSテンプレファイルがあるので、それらの中から「Application Compatibility.xml」を選ぶ。これで基本的なOSコンポーネントがロードされる。
④「File」→「import」→「import pmq」を選択し、事前にtap.exeで採取したターゲットPCのハードウェア仕様をロードする。
⑤F5を押すとコンポーネントの依存関係の確認が行われる。すると右下にある「Validation」の項目に依存関係のあるファイルが表示されるので、必要におおじてコンポーネントの追加と削除を行う。
⑥依存関係が解決したら「tools」→「Create media」→「Create IBW Image From Answer File」を選択する。すると、作成するOSイメージファイルの保存場所をどこにするか聞かれるので、指定して保存する。
⑦作成したOSイメージデータをISO形式に変更する。isoイメージの作成手段はWindows PEから行う。開発環境とセットで「Windows PE Tools Command Prompt」というアプリケーションがインストールされているので、それを起動し以下を実行する。
>oscdimg.exe -n -m -bc:\win7\boot\etfsboot.com c:\win7 c:\win7img.iso
上記は「oscdimg.exe」を使用しWindows Embedded Standard 2011で作成したOSデータをisoイメージ化する手順になる。ディレクトwin7は、作成したOSデータを格納するために作成したフォルダであり、製作する環境により異なる。
⑧前項を実行するとwin7img.isoというファイルが作成される。これをDVDに書き込み、ターゲットの環境で実行すればOSのインストールが行われる。

1-2.EWF機能の評価について
EWF機能を使用するには、以下のコンポーネントの追加が必要となる。(100510現在、資料が無いため推定コンポーネントとなる。検証したところEWFは動作した)
Enhanced Write Filter Boot Environment
・ File Based Write Filter(FBWF)
・ FilebaseWriteFilter_x86/Protected/Volumes/Volume/WriteThroughFilesAndFolders
Enhanced Write Filter with HORM
・ EnhancedWriteFilter_x86/ProtectedVolumes/Volume/EnableLazyWrites
・ FileBasedWriteFilter_x86
・ EnhancedWriteFilter_x86
Enhanced Write Filter Boot Environment
Enhanced Write Filter with HORM
・ EnhancedWriteFilter_x86
・ Enhanced Storage Password Silo Driver
Windows Sideshow Enhanced Driver
上記は主要コンポーネントのみ。依存関係にある関連コンポーネントは別途追加の必要性がある。

Windows 7 Embedded上からEWF機能を使用する方法は以前のEmbedded OSと同様である。実行は、コマンドプロンプトより行う。なお、実行の際は管理者権限のあるコマンドプロンプトより実行する必要がある。管理者権限付きコマンドプロンプトの実行方法は、スタートメニューのプログラムの一覧からコマンドプロンプトを実行する際、右クリック→管理者権限で実行する を選ぶ事で行える。実行コマンドは前回と同じ「ewfmgr.exe」であるが、スイッチについては要追加調査。
fbwfmgr.exeについて
正直ewfmgrとfbwfmgrの利点欠点が判らなかった。資料から、fbwfmgrはフォルダ/ファイル単位でのライトプロテクト機能の提供が主な利点かと思ったが、実際使用するとボリューム単位でしかプロテクト機能が働かない。その上、プロテクトに必要な一時キャッシュファイルがデフォルトで128MB、最大1024MBまでしか設定できない。当然、それ以上のファイル書き込みはエラーが出て不可能だった。これならewfmgrの方が使い勝手がよい。プロテクト用キャッシュ要領はRAM容量が元になっているので、物理容量を増やすことにより、より限界まで使用することが可能になる。fbwfmgr.exeの機能については追加調査が必要である。
100518追記
fbwfmgr.exeの利点は、例えばライトプロテクトされたCドライブの「box」というフォルダだけを読み書き可能にできるという事でいいのか?そのような事が書いてあるが、設定するための方法、コマンドが書かれていない。

岡谷エレクトロニクスの説明が中途半端で分からん。下記じゃ普通にCドライブが保護されるだけです。
Q16. FBWFの使いかた
FBWFはEWFと違ってファイル・ディレクトリ単位で書き込み禁止、許可 を行うことができます。 Fbwfmgr.exeを使って、対象、非対称を設定します。

例)C: を書き込み禁止に
C:\>fbwfmgr /enable
C:\>fbwfmgr /addvolume C:

例)書き込み禁止を解除
C:\>fbwfmgr /disable


2.CTP版
Windows 7インストーラーにインストールコンポーネントの選択肢が増えただけの仕様。非常に手軽で簡単にOSを作成することができた。何のコンポーネントを削除すべきかなどの判断は個々の判断で行うのでそれなりの知識が必要とされそうだが、依存関連などによるエラーが発生しないため、実にシンプルにOSを作成することができる。