米国けんきゅうにっき EWFは禁断の果実か?
学位取得後、研究者として米国へ。このさきどのようなことが待ち受けているのでしょうか?
 ネットブックと呼ばれるPCにはVistaではなくXPが搭載されている。これはまずXPがVistaに比べてとっても軽いからなのだが、セキュリティなんかを鑑みるとやはりVistaは優れていると思う。でもネットブックにVistaが敬遠される理由はそれだけではない。確かにたとえばHPの2133とかはVistaがプレインストールされているのだが、VIAのC7-M ULVはその実装に対して非力だと思うし、やはりGPUも統合型のVIA896だからVistaでのベンチとかは悲惨なことになっているらしい。しかしながら、それ以上に深刻な問題がある。HDD搭載のネットブックならばあんまり問題にならないのだが、ようはSSD搭載機の場合だ。前エントリで触れたようにSSDには書き込み回数制限がある。これは使われている半導体の本質的なモノであり、避けることはできない。その一方でVistaはSuperFetchとゆー強力なキャッシュメモリ管理機能が実装されており、OS起動時にはガリガリとHDDにアクセスしまくる。これはSSDにとってはたまったものではない。たとえばSSDと同族とみなせるUSBメモリがある。これを利用してVistaではReadyBoostという機能が実装されている。しかしこのUSBメモリも頻繁に書き換えられており、その寿命も普通の用途で使われているソレと比べて明らかに短いのだ。換言すればReadyBoost用に使われるUSBメモリは使い捨てとゆーわけだ。そんなVistaではネットブックに向かないというのは当然の帰結である。ナゼならばネットブックは将来的にEeePCやInspiron Mini9のようにSSD搭載機が主流になるだろうからだ。(その証拠にマイクロソフトもVistaのSSDに対する欠点を理解した上で、XPをネットブック用に延命させている様にみえるのは論理の飛躍だろうか?)

 しかしそのXPでもSSDの書き込み頻度に対しては最適化されていないのが現状だ。なぜならば前エントリで述べたように、XPがSSDなどのローカルドライブに明示的に書き出すファイル(一時ファイルやページファイル)をメインメモリ上に構築したRAM Diskに書くように指定しても、いまだになんらかの引っかかりがある。これはどこかの時点でXPがローカルドライブに書き出しをしているということなのだろう。これを解決する方法としてはEnhanced Write Filter(EWF)という機能をXPに取り込ませるというものがある。このEWFはもともとATMやお店のレジにインストールされているXP Embeddedに実装されている機能で、不慮の事故でいついかなるときに電源がカットされてしまっても、ローカルドライブにダメージを与えない様にできるわけだ。具体的にドライブにアクセス中に停電があったとしよう。これはたとえばHDDにとっては最悪な状況での停電であり、HDDの故障の原因の一つである。そしてXPはOSが走り続けているあいだは頻繁にHDDにアクセスしており、停電時のリスクは高い。そこで、このHDDへのアクセスを最小限にしようという概念が生まれ、それを実現したのがEWFである。EWFは基本的に対象となるHDDに対してOSが書き込もうとする情報をメインメモリにプールしておく。そしてシャットダウン時などのもっとも安全と思われるときにXPがOS稼働中に書き込もうとした情報(メインメモリにはいっている)をローカルドライブに書き出すワケだ。これによってリスクを最小限にすることができる。これをSSD搭載型のネットブックに搭載したらどーだろうというのが、本エントリの主旨だ。ただし起動しなくなる可能性もあるので、あくまで自分の責任でやってくれ。

 参考にしたサイトは"モバイルPCからハードヂスクが無くなる日まであと○○♪ まとめサイト"で大まかなことは書かれている。XPやVistaの正式ユーザーならばWindows SteadyStateをダウンロードしてインストールすれば以下に書くことと同様なことができるが、無駄なものもディスクに書き込まれるので、ココでは別の方法でEWFのコンポーネントをインストールする。

1:マイクロソフトのサイトからWindows XP Embedded Service Pack 2 Feature Pack 2007 Evaluationをダウンロード

xpefp2_ss.jpg
 落ちてきたファイルはisoイメージなので仮想ドライブにマウントさせるかCD-Rに焼くなどして中身を開く。中にXPEFP2007.exeという実行ファイルがあるから、これを走らせると解凍作業が始まり、バックアップの有無を聞かれるがココで放っておく。Cドライブの一番上の階層を見ると長い英数字のフォルダができているハズなので、ココの中にあるrepフォルダからminlogon.exe、ewf.sys、ewfmgr.exe、ewfntldrの4つをどこか別の場所に保存する。 またあとで必要になるのでewfapi.dllもここからコピーしておくと良い。この時点でWFP(Windows File Protection)を切ると良いらしい。やり方はココからWindows File Protection Switcher 1.0をダウンロードして実行するだけ。この時点でフォルダオプションで不可視ファイルを見えるようにして、さらに拡張子も表示させるようにしておくといい。C:\Windows\System32を開き、winlogon.exeをwinlogon.exe.bakにリネーム。そこ(C:\Windows\System32)にminlogon.exeをコピーしてwinlogon.exeにリネーム。新規でminlogon.regを作成し、下記をコピペしてダブルクリック。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Config"=dword:00000017

再起動させるとSystemアカウントでのログインになり初期設定で少し時間が掛かるけど待つ。もう一度再起動して正常動作を確認する。

2:EWFの組み込み作業

regedit_ss.jpg regeditを走らせて右のSSの様に"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root"を右クリックしてアクセス許可でEveryoneのフルコントロールにチェックを入れたのちに再起動。 Cドライブのすぐ下に不可視ファイルのntldrがあるはずなので、これをntldr.bakとリネームしてさっきコピーしたewfntldrをntldrにリネームする。さらにC:\Windows\System32にewfmgr.exeをコピー、C:\Windows\System32\driversにewf.sysをコピーする。(そろそろヤヴァい香りがしてきたでしょ?)そして最後にココのサイトの中程にあるewf4G-X.reg 日本語版Eee PC 4G-X用(EFI対策済み)をダウンロードして、ダブルクリック。これはレジストリを書き換える操作なので、間違ったファイルをダウンロードしないよーにコチラでも注意が喚起されているので参考にするとよい。この作業をすると再起動が促される。(レジストリの書き換え前にバックアップをとることをオススメします。)コマンドプロンプトで

ewfmgr c:

ewf_ss.jpgと入力すると右の画面がでるはず。Stateの項目でENABLEとなっていれば成功だ。なおこの状態だとBoot_CommandがNo_CMDになっている。これは終了時にメインメモリに記憶されていたデータが破棄される状態なのでewfmgr c: /commitと入力するとメインメモリに記憶されていたデータをSSDに書き込む作業が発生するので変更が保存出来るようになる。(これによってEWFで保護されたドライブを起動ディスクにしているとシャットダウンの時間が若干、遅くなるが、SSDならばこの時点で液晶を閉じて移動してもダイジョーブなワケだ)デフォルトでは保護ドライブへの書き込みを行わない様になっているので、Windows起動時に書き込みをするようなバッチファイル(xxx.bat)を作り、スタートアップフォルダに放り込んでおくと良い。具体的にはNotePadなどのテキストエディタをひらき、ewfmgr c: /commitと入力、EWFcommit.batとか名前を付けて、スタートメニューのスタートアップフォルダに入れる。これでWindows終了時に自動的にメインメモリ上のデータをSSDに書き込むようになる。

3:ewfplusの導入

 まあEWFとゆーのはメインメモリ上に本来ならばローカルディスクに書き込むハズのデータを蓄える作業をしているのだが、当然そうなるとメインメモリが潤沢にあることが望ましいワケだ。そして長時間、再起動せずにWindowsを走らせているとEWFのメインメモリへの書き込み分が肥大化していき、空きメモリ領域を圧迫していく。だからまめに再起動すればいいのだが、それも面倒だ。というわけで、ココのサイトの方が便利ツールを作ってくれた。(作者さんに感謝です!)ewfplusというやつだ。基本的に設定などのコンソールがないので、設定するためにはダウンロードされた圧縮ファイルに付属しているewfplus.iniファイルを書き換える。中には"limit = 512"という一文があるはずであり、EWFの蓄えるデータ量が512MBに達するとローカルディスクに書き込むという意味である。ここに好きな数字(ただし物理メモリ量以下)を入力して、ewfplus.exeと同じフォルダ内に置いておく。(1で述べたewfapi.dllも同じフォルダ内に入れておく。)そしてewfplusフォルダは好きな場所(私はProgramフォルダにおいた)に置き、さらにewfplus.exeのショートカットをスタートアップに入れておく。ewfplusが走っているかどうかはタスクマネージャで確認できる。以上よりWindowsを再起動しなくてもEWF保護ドライブに適宜、メインメモリ上のデータを書き込むようになり、WindowsがEWFの為に不安定になることを極力避けることができるよーになる。

 さてこれまで3回にわたりDell Inspiron Mini9のレビューとそのチューンアップについて触れた。現状、ココで述べたすべてのチューンを施したMini9は出荷状態と比べて、かなり軽快に動く。今、ラボで使っているHPのpavilion ze4900(CeleronM, 1.4GHz、メモリは480MBでXPHomeSP3)よりも遙かに快適だ。またこの軽さと無音というのは絶対的なアドバンテージだし、Office2007なんかも軽々、動いているのでプレゼンとかにも最適だ。

 ネットブックということで安価であり初心者が飛びつきそうなシロモノではあるが、快適に使うにはそれなりに情報を入手していじらなければならない。これは初心者にとってはちょっと敷居が高いかなと思う。それでも個人的には満足のいく買い物であったと思う。

【2008/09/30 22:07】 | コンピュータ
トラックバック(1) |
コメント
この記事へのコメント
コメントを投稿
URL:

Pass:
秘密: 管理者にだけ表示を許可
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
  私の愛用していた、Toshiba dynabook SS2110のHDDの寿命が近づいてきたので、 そろそろHDDをどうにかしたいなと思ってました。   たまにHDD内部から「カコン!カコン!」と、木魚を叩くような音が聞こえるんです。     アクセススピードも遅いし、?...
2011/10/05(Wed) 18:49:05 |  n218.info