Blog型メモ帳 Ver.2019.08.20

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

Windows XP Embedded のFAQ2

ユニダックス参照
http://www.unidux.co.jp/embedded/faq/index.html

5.HORMの設定方法いろいろ

FAQ : Windows XP Embedded編 #005
Hibernation

OS起動状態で、メインメモリに展開されているOS、アプリケーション、サービスの状態(イメージ)を一つのファイルとして

Diskへ保存します。
再起動はこのファイルをメモリへ展開するだけなので、通常の起動よりも高速化が可能です。

本機能は従来のXP Embeddedでも利用可能でしたが、保護されているストレージへのHibernation用ファイルの保存できないため

にEWFとの併用ができませんでした。(SP2以上の追加機能)
主要コンポーネント
Background Disk Defragmentation Disable
Enhanced Write Filter
EWF Manager Console Application
EWF NTLDR
Power Meter Control Panael(Optional)

※予めTarget Designerのコンポーネント設定 "ACPIxx Processor"の"PowerManagement"で"Hibernate Enable"としても可。
※ またTaskSchedulerコンポーネントを追加することでも起動時間が若干高速化されます。
Enhanced Write Filte のSettings

Set the EWF Partition size to 0 KB.
Select the Start EWF Enabled check box.

RamモードかRam(Reg)モードで利用します。Diskモードはサポートしません。
ターゲットにて設定
Ewfmgr c: disableにてEWF動作を禁止します。
(再起動が必要です)
電源オプションのプロパティ
「休止状態を有効にする」にチェックします。
Hiberfil.sysを確認しresmany.datを作成します。
NTLDR は hiberfil.sys から起動します
(Extra File Folder オプションを利用すると便利です)
終了オプションから休止状態を選択し休止状態に
電源を投入しリジュームします
再起動すると設定が完了します この時点では通常の起動
Ewfmgr c: -enableにします(再起動)
出荷設定
設定をおこない、終了メニューから休止状態を選択
(シフトキーを押すとスタンバイが休止に変わる)

EWFが有効でもHiberfil.sysファイルは上書きされます。
以降起動はHiberfil.Sysより起動。

設定内容を変更する方法 その1

デスクトップやサービスなど現在起動している状態はHiberfil.sysへ保存され、実行ファイルやデータなどはEWFにてプロテクト

されています。
どちらの変更が必要が把握して作業します。
起動時にF8キーを押します

Continue with system restart
Delete restoration data and proceed to system boot memory

選択画面で下を選択すると通常の起動となります
ただしEWFはEnaになっています
設定内容を変更する方法 その2

(ファイルなど)設定変更後 ewfmgr で次を実行します。

>ewfmgr c: -commitanddisable ?live
*** Committing data and disabling overlay (live)
State Disable
Boot Command NO_CMD
>ewfmgr c: -enable

再起動後有効

出荷設定後、休止状態にて状態を保存。

簡単に設定する方法(案)

Target Designerのコンポーネント設定で
ACPI xx ProcessorのSettings → HibernationをEnb
Enhanced WriteFilterのSetting → Start EWF Enable → Disable
 FBA終了したらEwfmgr Disable 確認する
Resmany.datをコピーする(Notepadで作成し内容は空でかまいません)
ファイルなどをコピーし、設定する
EWFをEnableで再起動
出荷設定(起動状態)をおこない、終了メニューから休止状態

以降起動はHiberfil.Sysより起動します。
弊社の確認では可能でしたが、十分に検証をお願いします。
運用上の注意

電源ボタンのみで開始、終了とする。
メニューの終了オプションの休止は使わない。
休止にすることでEWFにかかわらず設定が変更されます。

メインメモリの容量とおなじHiberfil.sysが生成されます。
これを保存できるストレージの容量を確保する必要があります。
例:MainMem512Mb → CF1Gbyte
復帰時パスワードを求められる場合は?

電源コンパネの詳細設定タブの
「スタンバイから回復するときにパスワードの入力を求める」
 をはずします。
その他の注意点

複数のボリュームを有するシステムの場合はすべてのボリュームを保護してください。
ファイル情報がHiberfile.sysで上書きされるため、プロテクトされていないドライブで矛盾が生じます。

Helpの"Design Considerations for Using EWF with Hibernation"をご覧ください。
回避方法はMSDN - XP Embedded Technical Articles の"Dismounting Volumes in a Hibernate Once/Resume Many

Configuration"をごらんください。
付録

Power Management Application コンポーネント
c:\>xpepm -?
-shutdown :Shutdown the computer.
-restart :Restart the computer.
-standby :Standby the computer.
-hibernate :Hibernate the computer.


6.EWFとメモリ使用量

FAQ : Windows XP Embedded編 #006
連続運用におけるEWF注意事項
EWFをRAMモードで利用している場合、システムメモリを消費していきます

当然、OSが必要とするメモリとEWFで消費するメモリの合計が搭載メモリのサイズを超えた場合システムは不安定になると思いま

す。
EWFで消費した分だけ、OSが利用できるメモリは少なくなります

これはEWFを利用していない場合でも、搭載メモリが少ない場合(128M以下とか)にシステムが不安定になるのと同じです。

また、実際にEWFの内部動作が公開されているわけではないので、弊社でも詳細はわかりかねますが、EWFはRAM DiskやDisk

Cacheと違い一度消費したメモリはシステムを再起動するまで解放しないようです。
これはEWFがHDDのセクタをメモリ上にマッピングして(置き換えて)いるためではないでしょうか?
例えば、ゴミ箱の機能が利用できたり、ファイルを削除してもEWFのメモリの消費量が若干ですが増えるのはこのためだと思いま


対策

HELPにも記載がありますが
1. EWFを適用するDisk(ドライブ)の領域(空き領域)をできるだけ少なくする

OSのDisk管理(利用方法)になるので、ユーザが直接設定できるわけではありませんが、動作として基本的にドライブの空き領

域は起動中は順次利用されていきます。
これは、空いている領域にデータを保存し、データが保存できたら古いデータを消す等の処理を行うためです

従って、DISKの空き領域は必要最低限にするなどの対応が必要です
 -> 一度メモリ上にマッピングされたDISK領域は再度利用してもメモリの消費量は増加しないと思われる
2. 書き込み、書き換え(変更)を必要最低限にする

書き換えや変更に関しては、レジストリ情報や、ファイルのアクセス、 テンポラリファイル(フォルダ)など以外とユーザが普

段意識しないところで利用(消費)されます。

この辺の設定について次のWEBで紹介されているので、参考にして下さい。
  http://msdn2.microsoft.com/en-us/library/ms912916.aspx

SP2ではHelpの検索で「EWF Peformance Considerations」をご参照ください。
主にレジストリ設定により、メモリの消費を抑える手法が記されています。

Pagefileの設定などSP2から正式にアナウンスされた情報も含まれてはいますが、 SP1でも参考になると思います。
3. 搭載メモリを増やす

あまりメモリ消費が激しい場合、物理的なメモリの搭載量を再検討する必要があるかと思います。

【メモリのメモ】

まず、通常のOS(NT Loader)が安定して動作するRAM容量をSYSTEMとします。
例としてプロセスモニタよりOS : 80Mbとアプリ : 120Mb。

またEWF領域は、パーティション内の空き領域として仮に100Mb、ワークに100Mb、更にOSが使用する20から30Mbとして、

SYSTEM (80Mb + 120Mb) + EWF (空き100Mb + ワーク 100Mb + 20~30Mb)

合計で448Mbから512Mb必要という計算になるとおもわれます。

このあたりは弊社での検証作業によって推測を含む見解なので、 正確を期するにはMSの有償サポートのご利用をご検討くさい。