XPe: USBストレージの安全な取り外し
作成したXPeイメージで「USBストレージの安全な取り外し」が出来ない。
現象
- USBストレージを挿しても、リムーバブルではなく固定ディスクとして認識される。その為、自動再生も行われないし、取り外しアイコンも表示されない。
- 2つめのUSBストレージを挿すと、リムーバブル認識し、取り外しアイコンも表示される。自動再生も行われ、安全な取り外しも出来る。
必ず先にさしたUSBストレージが固定ディスクとして認識されてしまう。
色々調べたら原因が分かったのでメモ。
原因
%WINDIR%\System32\Dirvers\usbstor.sys
バグと言ってしまうと弊害があるようですが、このファイルを古い版に置き換えると直る。
- msdn::forums Safely Remove Hardware Icon?
現象がおきるバージョン
usbstor.sys
- 5.3.1201.0
- 2008/07/14 12:29
- 36.0 KB (36,864 バイト)
大丈夫なバージョン
幾つもバージョンがあるようだけど、通常XPProJPNでは下記。
これを既存イメージに上書きすると、現象が解消し、リムーバブル認識し、安全な取り外しが出来る様になった。
usbstor.sys
- 5.1.2600.5512
- 28.0 KB (28,672 バイト)
- 2008/04/14 0:15
上記以外にもWES2009リポジトリ内には「5.1.2600.1106」「5.1.2600.2180」もある。
なんで、そうなるのか
調べたら、固定ディスクにしてしまうusbstor.sysが含まれるコンポーネントは下記でした。
USB Boot Mass Storage Device
名前から推察するに、USBブート可能にする為、ワザと固定ディスク認識する仕様になっているのではなかろうか?
usbstor.sysは下記のコンポーネントにも含まれてますが、こちらはファイルサイズから推察*1するに「5.1.2600.2180」か「5.1.2600.5512」
USB Mass Storage Device
イメージビルドすると、最終的に最も新しいファイルが生き残るのだと思う。
なので両方のコンポーネントが入っていても、[USB Boot Mass Storage Device]の方が生き残るようです。
解決方法
- 手動で古いusbstor.sysをコピーする
- [USB Boot Mass Storage Device] Files で、コピーされるファイルをDisableする
のどちらかかな。
既存イメージなら前者、今から作るなら後者([USB Boot Mass Storage Device]だけを省くのは依存関係で難易度が高かったりするので)
その他のコンポーネント
「ハードウェアの安全な取り外し」を可能にするコンポーネントに他に下記が必要(たぶん)
- Removable Storage Service
- Safely Remove Hardware Program
- Tray Icon Add/Remove Support
- User Interface Core
Settings : Show Notifications on Task bar: Check- USB Mass Storage Device
*1:ファイルのプロパティ > Advanced > SrcFileSize で確認できる