USBストレージを使う@PE Builder

IMGP0769.JPG
PE Builderを僕はサーバのバックアップに使っているんだけど、ネットワークインターフェイス用ドライバをインストールするのが面倒だったり、まあてっとり早くバックアップを作成するならUSBストレージだろう。なんて思いまして。
というわけで今回はPE Builderで作成したイメージからUSBデバイスを扱えるようにしましょう。

プラグインのダウンロード

LunarCal
http://lunarcal.org/WinPE/WinPE.html

まずここから”USB1394.zip”をダウンロードします。

001.png
ファイルを解凍して、ディレクトリはとりあえず”USB1394″で良いでしょう。
解凍したディレクトリの中に”usb & 1394 User Reg Extract.bat”というBATファイルがあるのでこれを実行します。
・・・ん?実行出来ませんね。

教えてGOOのlonewolfさんの書き込みにヒントがありました。質問した方は理解していないようですが。

レジストリにキーエントリがないと無視されるのでエラーは表示しませんが、テキストファイルが作成されません。
自分のPCに装備されているデバイスにあわせてbatファイルを編集してください。
元のファイルをコピーしてバックアップを取ってから実行してください。
以下は私の環境で実際に編集して作成したBartPEプラグインです。

regedit -e "tt.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\1394"
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\SBP2"
copy /A tt.txt+t1.txt > nul
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\SCSI"
copy /A tt.txt+t1.txt > nul
はデバイスがなかったのでレジストリに存在しないので5行削除しました。
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\STORAGE"
のt1.txtをtt.txtに変更
regedit -e "tt.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\STORAGE"
copy /A tt.txt+t1.txt > nul
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB"
の間にある
copy /A tt.txt+t1.txt > nul を削除して上書き保存して実行しました。

なるほど、先人は偉大ですね。実際にこの通りBATファイルを修正してみましょう。

今更ながら知ったのですがRegeditにはオプションスイッチがあったんですね。

regedit /l:[system.dat] /r:[user.dat] /e [export_file] [registry_path]

こんな感じらしいです。

で、lonewolfさんの書き込みを元に”usb & 1394 User Reg Extract.bat”を修正するとこんな感じになります。

@echo off
@echo USB IEEE1394 Plugin ver 2.3
@echo Extracting USB and IEEE1394 user Registry ...
@echo All required entries will be placed into file "usb&ieee1394.reg"
@echo Use this file in the USB IEEE1394 plugin.
@echo ...extracting...
@echo.

if exist t1.txt del t1.txt
if exist tt.txt del tt.txt

regedit -e "tt.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\STORAGE"

regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\V1394"
copy /A tt.txt+t1.txt > nul
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\VEN_10DE&DEV_0067&SUBSYS_1C06147B&REV_A4\3&13c0b0c5&0&10"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\VEN_10DE&DEV_0067&SUBSYS_1C06147B&REV_A4\3&13c0b0c5&0&11"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\VEN_10DE&DEV_0068&SUBSYS_1C06147B&REV_A4\3&13c0b0c5&0&12"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\VEN_10DE&DEV_006E&SUBSYS_1C06147B&REV_A3\3&13c0b0c5&0&68"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\dmio"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\ftdisk"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_ARP1394"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_DMADMIN"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_DMBOOT"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_DMLOAD"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_DMSERVER"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_FASTFAT"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_FILEDISK"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_MOUNTMGR"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_NTMSSVC"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_PARTMGR"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_RPCSS"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_SSDPSRV"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_VOLSNAP"
copy /A tt.txt+t1.txt > nul 
regedit -e "t1.txt" "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\SYSTEM\0000"
copy /A tt.txt+t1.txt > nul 
copy tt.txt "usb&ieee1394user.reg" > nul
if exist t1.txt del t1.txt
if exist tt.txt del tt.txt
@echo Finished extracting registry entries...
pause

002.png
これを実行したところ、”usb & 1394 User Reg Extract.bat”のカレントディレクトリに先ほどは作成されなかった”usb&ieee1394user.reg”が無事作成されました。

ビルド作業
003.png
ビルドを行ったところ、エラーが表示されました。僕はIEEE 1394デバイスを使わないのでこのファイルが無いですよとエラーが出てしまうみたいです。

“USB & 1394 Plugin.inf”の中に

C:\WINDOWS\system32\drivers\sbp2port.sys=4,,1

という表記があるのでこれをコメントアウトしてしまう。

;;C:\WINDOWS\system32\drivers\sbp2port.sys=4,,1

Windows XP SP2のCDがあればI386\SP2.CAB\sbp2port.sysからコピーしても多分動きます。sbp2port.sysはインターネット上で検索してもダウンロード出来るみたいです。(試していませんが)

とりあえず使えるかどうか試してみたのは周りにろくなUSBデバイスが無かったので
・IPODシャッフル(古い方)
・SDカードリーダ
というサンプルになりにくいものだったんですが、普通に認識しました。
IMGP0768.JPG
まあ2種類ともWindows汎用ドライバで認識するからOKですかね。

追記@2007.03.02
別環境でこのプラグインを使ってみたら、不足しているファイルがあります。みたいな警告が結構出たんだけど、全て不足していたファイルはWindows XP SP2のインストールCDの中から見つけられました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です