MRyasの打撃オンライン

はまっているゲームのネタを中心に、言いたい放題。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Think Pad X40にEWF導入

先日無事1.8"HDDをCFに載せ替え成功しましたが,フラッシュメモリは書き込みで寿命が短くなり,HDDと比べると非常に心配があります.
そこで,EWF(Enhanced Write Filter)を導入し,CFへの書き込み回数を減らそうと考えています.
参考)
http://www.atmarkit.co.jp/fembedded/winembedded/xp01/xp01.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20060717/243484/?P=1&ST=win

ネカフェとかに導入されているのPCに使われているのではないでしょうか.

で,さらに細かい手順を参考にしようと思っているサイトはここ
http://project-r.org/eeepc/optimaizeeee.html

失敗するとさようなら!になるので,気合いを入れて作業できるときにやるつもりw

注意点として,ITproの記事ではShared Computer ToolkitをMSのサイトからダウンロードしよう!って書いてありますが,このツールキットは新しいもので提供しているらしく,現時点ではMSから落とせません.
どこかから探す必要があります.とりあえずx-gadget:blogさんのブログに書いてあるところから確保だけはしたw
Shared_Computer_Toolkit_ENU.msiを実行するとインストール画面が出るが,User Profile Hive Cleanup Serviceが必要だと言われるので画面に従いブラウザを開きダウンロードする.正規版Windowsがインストールされている必要が有りますw

今回,UPHCSはバージョン1.6dの日本語版が落とせた.取りあえず,UPHClean-Setup.msiをインストールする.

再度気を取り直して,Microsoft Shared Computer Toolkitをインストール.(「Register Now...」というボタンが出るが無視)

この時点でewf.sysがC:\WINDOWS\system32\driversに入っていることを確認.これで無事EWFの準備が完了.


次に頻繁に使うコマンドのEWFMGR.EXEがC:\Program Files\Microsoft Shared Computer Toolkit\binに入っているはずなので,ここにパスを通すか,パスが通っている場所にコピーする.だらだらPATHが長くなるのもいやだったので,参考にしたサイトを真似してC:\WINDOWS\system32へコピーすることにした.

次にレジストリの修正に入る

\HKEY_LOCAL_MACHINES\SYSTEM\CurrentControlSet\Enum\Rootを選択し右クリックからアクセス許可を選択する.アクセス許可ダイアログが出るので,Everyoneにフルコントロールを許可与えてしまう.

次に,参考にしたサイトではewf.regを用意してくれているのだが,今回は意味を確認しながら変更していく.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction]
"Enable"="N"
これは起動時にかかることがあるデフラグを動かさないってことかな...

※09/03/22追記
 Windows.FAQ - ウィンドウズ処方箋の中に説明されていました→http://homepage2.nifty.com/winfaq/c/ntperf.html#1300.起動設定が変わるとデフラグがかかると言う意味なのか?(良くわかってないorz)


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout]
"EnableAutoLayout"=dword:00000000
HDD(CFだけど)の自動でフラグを無効にする

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"NtfsDisableLastAccessUpdate"=dword:00000001
アクセス日時の更新をしない(以前にtuneappで設定済み)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
"EnablePrefetcher"=dword:00000000
プリフェッチ機能の設定,0:無効,1:Applicationのプリフェッチ,2:Bootのプリフェッチ,3:1+2(Default)
(プリフェッチされたファイルはC:\WINDOWS\Prefetchに残っているはず,無効にして再起動したら消して良いのかな・・・)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager]
BootExecute=""
デフォルトでは,コンピュータのシャットダウンまたは再起動時に Chkdsk.exe または Autochk.exe を起動する物らしいですが.Autochk.exe自体はWindowsが不正修理した後にCHKDSKコマンドを起動したりするらしいのでそれを抑制するために動かさないように消す.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_EWF]
"NextInstance"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_EWF\0000]
"Service"="EWF"
"Legacy"=dword:00000001
"ConfigFlags"=dword:00000020
"Class"="LegacyDriver"
"ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}"
"DeviceDesc"="EWF"
"Capabilities"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_EWF\0000\Control]
"ActiveService"="EWF"
調べたけど意味が分からず・・・何処を見てもこの値に設定しろとしか書いてあるのが見つからなかった...EWFの設定なんだと思うけど,言われるがままに修正するorz

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Type"=dword:00000001
グーグル先生も教えてくれませんでしたw(このレジストリは,この時点で既に登録済み)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"="Ewf"
Windowsでカーネルモードのフィルタドライバを一時的に無効にする方法で見つかり,多分EWFに設定するんだと思うのだが・・・やっぱり意味不明orz 取りあえずやるのはVolSnap(ボリュームスナップショットサービス)をEwfに置き換えること?

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters\Protected\Volume0]
"Type"=dword:00000001
"ArcName"="multi(0)disk(0)rdisk(0)partition(1)"
これも理解しきっていないが,HDDの先頭パーティションきめうちで有効にしてるのかな・・・

ここも参考にした)
http://project-r.org/cgi-bin/diarypro/archives/116.html

Disk Protection Is Onってダイアログが出てOpen Windows Disk Protectionを押したら,リスタートがどうのこうのと五月蝿いのでスタートアップからCheck Windows Disk Protection(%SCTPath%CheckWDP.hta)を削除w

コマンドプロンプトでewfmgr c:とうつとCドライブが無事RAMRegモードで動作中であることが確認できた.
EWF導入完了


CrystalDiskMarkでベンチを取ってみると...実際にDisk(CF)に書き込んでいないのでとんでもないスピードで動いていることも確認できましたw
--------------------------------------------------
CrystalDiskMark 2.1 (C) 2007-2008 hiyohiyo
Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

Sequential Read : 385.191 MB/s
Sequential Write : 346.065 MB/s
Random Read 512KB : 447.318 MB/s
Random Write 512KB : 349.467 MB/s
Random Read 4KB : 190.259 MB/s
Random Write 4KB : 112.397 MB/s

Test Size : 50 MB
Date : 2008/02/15 11:57:40


問題はディスクへの書き込みが全てメモリにかかれていくことになるので,立ち上げっぱなしだとメモリ不足になって終了するんだよな・・・ 1.5GBしか無いので,どれくらい放置出来るかテストが必要だな

ewfmgrで使うオプションメモ,普段使うのはこれだけと思われる
-commit 現overlay levelのディスク変更内容をprotected volumeにcommitし,overlay levelを1にする.変更内容を次回に活かしたいとき.
-commitanddisable [-live] EWFをオフにし,-liveを付けるとcommitを即反映する.大規模なディスク書き込みが発生する処理(アプリインストールとか)でメモリが溢れそうなとき.
-enable EWFを有効にする.上の処理が終わったら戻しておこうw
-checkpoint 新しいoverlay levelに(-setlevel=と同じ).うーん,上手い使い方が思い浮かばないw
-help helpを表示するw

commitせずにWindowsをシャットダウンすると毎回エラーになってSafe Modeでの起動を確認する画面になるので対策としては
・毎回起動時もしくは終了前に「ewfmgr c: -commit」してかならずcommitするようにする
・システムのプロパティ,詳細タブ,軌道と回復の設定(T),必要なときに修復オプションを表示する時間をOffにする

テーマ:ソフトウェア - ジャンル:コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://mryas.blog64.fc2.com/tb.php/183-16ce4e91
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。