USB機器を取り外す
---BartPE実用編---

BartPE上でUSB機器を取り外すには、そのためのプラグインを組み込む必要があります。

http://members.at.infoseek.co.jp/winpx/plugin.htm

にあるDevEjectプラグインを使うのがいいかと思います。
視覚障害者MLの田中哲夫氏の提案です。)
上にあるのはHTMLなどを日本語化したバージョンですが、本家は、

http://www.wolfgang-brinkmann.de/BartPE/BartPE_plugins_de.htm

などにあります。

■組み込み
特別な作業は不要です。
プラグインの配布をPE BuilderのPluginディレクトリへ、ディレクトリ付で解凍してください。


■HDDやメモリースティックを取り外す。
まず取り外したいUSBドライブのドライブ文字を、マイコンピュータなどで確認しておいてください。
そしてNU2メニューを開きます。(「NU2メニューを使う」 を参照)。

(a)NU2メニューから、[System]→[Storage]→[DevEject]を実行すると、コマンドプロンプトが開きます。
このときコマンドプロンプトには、

1. Unmount Device
2. CommandLine Input
3. List removable devices
4. List all( also unremovable) devices

 という4つのどれを選ぶか、数字を入力しろというメッセージが出ています。

(b)そこで、1を入力してENTERです。

(c)すると、ドライブ文字を入力しろというメッセージが出るので、調べておいたドライブ文字、GとかHとかを入力し、ENTERです。

(d)USBドライブを安全に取り外せるよう処理が行われます。画面にはその成功、もしくは失敗が出ています。そして、終了するかという問いかけが出ているので、Yを押してENTERでDevEjectを終了します。

(e)マイコンピュータやデバイスマネージャーを開き、目的のドライブが消えているか確認してください。消えていれば、取り外しは成功しているので、安全に取り外すことができます。消えていなければなんらかの理由でアンマウントが失敗したと考えられます。そのときは、USB機器をはずしてはいけません。



■スキャナーやキーボードを取り外す。
上のドライブの取り外しでは、ドライブ文字を指定してアンマウントできました。
でもスキャナーやキーボードにはドライブ文字がありません。
どうしましょう。
少し手間ですが下記の手順で行います。
(この方法はUSBドライブに対しても行えます。)

(a)通常のハードディスクがCドライブだと仮定し、そこにC:\Tempというディレクトリが存在するものとします。「ファイル名を指定して実行」から、次のコマンドを実行します。

cmd.exe /c x:\programs\deveject\deveject.exe > c:\temp\Removal.txt

 deveject.exeはBartPEのCDROMのドライブの、programs\devejectフォルダに存在します。それを使って、取り外しが可能なUSB機器の一覧をRemoval.txtに生成しています。


(b) Removal.txtを開くと、下記のような文字列が並んでいるでしょう

'Flash Disk ' 'USB\VID_0EA0&PID_6828\1B5816D9405540EE' [REMOVEABLE]
'USB Scanner' 'USB\VID_05B8&PID_3200\5&3AFBBE2D&0&2' [REMOVEABLE]

行頭のシングルクォーテーションで囲まれたものが、そのUSB機器のデバイス名です。
取り外しには、このデバイス名を使います。


(c)DevEject.exeがX:\Programs\DevEjectに存在するとして、「ファイル名を指定して実行」から、次のコマンドを実行します。

X:\Programs\DevEject.exe -EjectName:"デバイス名"

すなわち、上の例で仮にスキャナーを外したいのなら、

X:\Programs\DevEject.exe -EjectName:"USB Scanner"

です。


(d)デバイスマネージャーを開き、目的の機器が消えていることを確認してください。消えていれば、取り外しは成功しているので、安全に取り外すことができます。


■より効率的に
拙作テキストエディッタSARI(「SARIのページ」)のコマンドプロンプトモードなど、もしもBartPE上で動作するコマンドプロンプトビューワをお持ちなら、作業の音声化が可能です。
その場合は、NU2メニューからDevEjectを起動するのではなく、コマンドプロンプトビューワー上で、DevEject.cmdを実行します。
cmd.exeから子供のcmd.exeを実行することになるので、出力結果の自動読みあげなどは、うまくいかない部分があるかもしれませんが、カレットを移動しながら出力を読めば、出力をすべて把握できると思います。


以上です。