Windows7でEWFを使ってみる

WinXP時からEWF(Enhanced Write Filter)っていうものに恩恵を受けていた。
ここ最近、SSDも導入したこともあり、プチフリ対策やSSDの延命でもしてみようかと思った。ただし、失敗すると動かなくなるので注意です。

ewf.sysとewfmgr.exeというファイルが必要でマイクロソフトからこれらが入っているファイルをダウンロードする。

64bit版
Standard 7 SP1 64bit IBW.part1〜7.exe

32bit版
Standard 7 SP1 32bit IBW.part1〜5.exe

(Standard 7 Toolkit.part01〜8.exeでもよいかも)

このファイルを結合するとイメージファイルができる。
このイメージファイルをCDに焼くかマウントして
下記の場所にWinEmb-Enhanced-Write-Filter.cabが入っているのでさがす。

\DS\Packages\FeaturePack\amd64~winemb-enhanced-write-filter~~~~6.1.7600.16385~1.0\WinEmb-Enhanced-Write-Filter.cab

WinEmb-Enhanced-Write-Filter.cabを解凍し
ewf.sysとewfmgr.exeというファイルを取り出し
ewfmgr.exeは%windir%\system32(だいたい、c:\windows\system32)へ
ewf.sysは%windir%\system32\drivers(だいたい、c:\windows\system32\drivers)へ



続いて、レジストリを登録。
レジストリは以下のエントリを作成。(注意!!事前にバックアップを取ること!!!)
______________________________________

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"="Ewf"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf]
"ErrorControl"=dword:00000001
"Start"=dword:00000000
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Ewf\Parameters\Protected\Volume0]
"Type"=dword:00000001
"Enabled"=dword:00000001
"CompareBeforeAlloc"=dword:00000000
"DiskSignature"=dword:00000000
"PartitionOffset"=hex(b):00,00,00,00,00,00,00, 00
______________________________________

いちいち面倒なので
EWF on Windows 7 32-bit or 64-bit (Enhanced Write Filter)の下の方にあるWin7ewf.txtをダウンロード。
これの拡張子のtxtをregに変える。

Win7ewf.regをダブルクリックするとレジストリが登録される。


最後にDiskSignatureとPartitionOffsetの値を変更する。

DiskSignatureの値はDiskPart.exeでコマンド入力するとで調べることができる。

まず、コマンドプロンプトを開き、下記を入力。
(nnにはディスク番号が入ります。たぶんプライマリディスク=0)

diskpart
select disk nn (プライマリディスクなら、select disk 0という感じ)
detail disk


Maxtor ABC12345
ディスク ID: DEF67890
種類 : IDE
(↑こんな感じ)


DiskSignature値は「ディスク Disk ID」の文字(16進数)をメモる。




PartitionOffset値はdiskparで調べられますがこのプログラムは探さないといけません。
一応ここで見つけた。



今度も先ほどとおんじようにコマンドプロンプトを開いて、下記を入力。
(先ほどと同じようにnnにはディスク番号が入ります。たぶんプライマリディスク=0)

diskpar -i nn  (プライマリディスクなら、diskpar -i 0という感じ)

        • Drive Partition 0 Infomation ----

StatringOffset = 32256
PartitionLength = 57832133

PartitionOffset値は「StatringOffset」の数字(10進数)をメモる。




コマンドプロンプトを開き、下記を入力。
regedit


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Ewf\Parameters\Protected\Volume0を探して
DiskSignatureとPartitionOffsetを先ほど調べたのに変更。 PartitionOffsetを変更する際は、10進数にチェックを変更すること!




あとは、ewfmgr c: /commitとbatファイルを作成すれば動くはず。
また、ewfyというソフトを使っても良いかも