「指定されたデバイスまたはファイルを開けません」というエラーが出る場合の対処方法
Windowsで何らかのアプリをインストールする際、「指定されたデバイスまたはファイルを開けません」というエラーが表示される場合があります。
例えば、下記のスクリーンショットはVirtualBoxのセットアップ時に表示されたエラー。
ほとんどの場合、[Retry]を選んでも次へ進めることはできません。
対処1: ローカルディスクからセットアップする
以前投稿した「無料のRAMディスク作成ツールならImDiskがオススメ」のようにRAMディスクを活用している方の場合、ブラウザからダウンロードするファイルはひとまず全部RAMディスクに保存して、インストールが終わったら削除する、という使い方をしているケースも多いと思います。
しかし、使っているRAMディスク作成ツールにも依るのですが、RAMディスクからセットアップ用のexeファイルを起動すると正常にセットアップできないケースがあります。
(すべてのアプリではなく、一部のアプリだけエラーが出る)
なので、いったん、Cドライブのどこか(ダウンロードでもドキュメントでも)にコピーしてから再度セットアップしてみると「指定されたデバイスまたはファイルを開けません」が表示されなくなる場合があります。
このエラーメッセージは恐らくディスクアクセス権限まわりの問題なんだろうなぁと予想して、imdisk(RAMディスク作成ツール)の設定でNTFS/exFATを切り替えて試してみましたが、残念ながら改善されませんでした。
RAMディスクはいわゆる仮想ディスクですから、実物のディスクをエミュレーションしているわけで、各ツールで微妙に実装方法が異なるようです。
実際、imdiskではエラーになるけど、RAMPhantomExだとエラーにならないアプリなどもあるので、エミュレーションの仕方に違いがあるのでしょう。
対処2: 環境変数TEMPをローカルドライブにする
対処1と理由は同じですが、インストール用のexeファイルをローカルドライブに置いておいても、そのインストール作業時に環境変数TEMPで指定されたドライブへ作業用ファイルをコピーしたり、そこにコピーしたexeを実行したりするため、対処1のケースと同様、「指定されたデバイスまたはファイルを開けません」となってしまう場合があります。
なので、PCの環境変数設定を開き、TEMPやTMP変数の値をCドライブに変更してから再度インストールを試すと問題なく動作するケースがあります。
また、環境変数TEMPはユーザー環境変数とシステム環境変数があり、ほとんどのインストールアプリはユーザー環境変数を使っていますが、たまーにシステム環境変数にあるTEMPを使っているケースもあるので、そちらの変更も忘れずに。
対処3: 暗号化されたドライブから実行しない
これもまぁやっていることは対処1とほとんど同じなのですが、インストール用の実行ファイルを置いている場所がBitLockerなどで暗号化されたドライブだと「指定されたデバイスまたはファイルを開けません」というエラーが表示される場合があります。
特にUSBメモリにインストール用の実行ファイルを置いておいて使う場合、USBメモリ自体をBitLockerで暗号化しているケースもあるでしょう。そのまま動いてくれるのが一番ですが、インストールアプリの作り方によってはエラーになるようなので、いったんローカルドライブへコピーしてから試してみると良いかも知れません。
まとめ
一言で言うと「指定されたデバイスまたはファイルを開けません」は仮想ドライブ機能を使っているときに発生する可能性が高いエラーです。
それがRAMディスクだったり、暗号化ドライブだったり、はたまた仮想DVDドライブだったりと、ドライブの種類は違うかも知れませんが、物理ドライブではないときに、仮想ドライブ用のデバイスドライバーとのやりとりに失敗して「指定されたデバイスまたはファイルを開けません」となっているようです。
ですので、先述したとおり、
- インストール用の実行ファイルをCドライブのどこかに置く
- 環境変数TEMPもCドライブのどこかにする
とすればエラーが出なくなるはずですので、一度お試しを。
ちなみに、このエラーとはちょっと別件ですが、TEMPディレクトリの容量が足りないとインストール時に謎のエラーが出ることがあります。
例えば、2GBのRAMディスクを作り、そこを環境変数TEMPで指定している場合、nVidiaのグラフィックドライバーなど、大型の更新を行うとそれだけで2GBいっぱいいっぱい使ってしまい、インストールの途中でエラーが発生する、というケースです。
インストール時に何らかのエラーが発生したら、ひとまず環境変数TEMPを疑ってみるのが良いでしょう。