Portable-VirtualBox のバージョンダウンに失敗した話

2014年09月01日(月)22時47分

VBoxNetFltNobj.dll

前回「Portable-VirtualBox を 4.3.12 に改変してみる」において、Portable-VirtualBox を「4.3.12」にバージョンアップしたものの、結局元の「4.2.4」に戻した、ということを書いたわけですが、今回はその際に遭遇したエラーについてです。
具体的には、元のバージョンを起動するたびに、「VBoxNetFltNobj.dll」が見つからないというダイアログが出て、毎回その場所を指定しなくてはならなくなりました。

条件

ただしこれは、Portable-VirtualBox をバージョンダウンすれば発生するようなものではなく、おそらくは以下のような条件が重なった場合に起きます。

  • Portable-VirtualBox の「ネットワークサポート有効で VirtualBox を起動」のオプションを有効化している。
  • Portable-VirtualBox をバージョンごとに別フォルダにしている。
  • 新版を起動した後、新版のフォルダを削除して、旧版を起動した。

Windows はドライバをキャッシュする

まず前提として、「Windows はドライバをキャッシュする」ということがあります。
以前「Portable-VirtualBox 4.1.22 を使う」の「ネットワークサポートについて」で書いた通り、Portable-VirtualBox でこの機能を有効にした場合、起動時にドライバのインストールが行われます。
そしてWindows は、このようなユーザーがインストールを許可したドライバを、システムにキャッシュします。
それを踏まえて何が起きたのかを考察すると以下の通り。

  1. 新版起動時に新版のドライバ情報がキャッシュされる。
  2. 旧版起動時に Windows が要求されたドライバの情報をキャッシュから検索する。
  3. Windowsがキャッシュに新版のドライバ情報を発見し、そこからドライバの読み込みを試みる。
  4. 新版ドライバの存在場所である新版フォルダは既に削除されているためエラーとなる。

解決策

この現象の解決策は簡単で、要は Windows のドライバ・キャッシュから新版用のドライバ情報を削除すればいい、ということになります。
そして、そのドライバ情報がどこにキャッシュされているかと言いますと、自分の環境である Win7x64 では「C:\Windows\System32\DriverStore\FileRepository」フォルダでした。
今回問題となった「VBoxNetFltNobj.dll」は、ドライバ情報ファイル「VBoxNetFlt.inf」によって組み込まれるようです。
そこで「VBoxNetFlt.inf」をファイル検索すると、確かに「C:\Windows\System32\DriverStore\FileRepository」フォルダに存在します。
しかし、このフォルダには「SYSTEM」という特殊なアクセス権限が設定されており、通常は削除できません。

Pnputil ツール

そこで、これを安全に削除するために用意されているツール「Pnputil」を使うことになります。
管理者権限で「コマンド プロンプト」を起動して、直接コマンドを打ち込んでもかまわないのですが、自分の場合は以下の内容を書き込んだ「PnPUtil.bat」ファイルを作り、「管理者として実行」しました(TEXT ファイル保存先フォルダは任意)。

PnPUtil.exe -e > "C:\Users\ユーザー名\PnPUtil.txt"

すると指定した「PnPUtil.txt」に、以下のような情報が記載されたテキストがずらずらと並びます。

公開名:            oem15.inf
ドライバー パッケージ プロバイダー:   Oracle Corporation
クラス:                     ネットワーク アダプター
ドライバーの日付とバージョン:   10/26/2012 4.2.4
署名者名:               

この中から、「Oracle Corporation」製で、バージョンが「4.3.12(インストールした新版 Portable-VirtualBox の番号)」となっているドライバの公開名「oemXX.inf」を、コマンド プロンプト(管理者権限)で、片っ端から以下のようにしていき、すべて削除します。

PnPUtil.exe -d oemXX.inf

これで旧版起動時のエラーは出なくなりました。

Portable-VirtualBox のポータブル性

これもまた、以前に「Portable-VirtualBox 4.1.22 を使う」において書いたことの焼き直しではあるのですが、今回の件でも明らかなように、「USB サポート」や「ネットワークサポート」を有効にした場合、OS 側に「跡形(あとかた)」が残ります。
すなわち Portable-VirtualBox は、「どこでも同じ設定で使いたい」という要求において「ポータブル」ではありますが、「出先の環境を汚したくない」「使用後には痕跡を跡形もなく消すべき」という用途・要求に対しては完全ではないといえます。

関連記事

【同じタグを付けた記事の一覧】
ポータブル VirtualBox

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
月別アーカイブ
プロフィール

電脳太助

Author:電脳太助
Website:電脳スピーチ web

RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

サイト内検索
Ads by Google
FC2アクセスランキング
Ads by Google
FC2拍手ランキング
ユーザータグ

音楽管理(66)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(35)
サイト運営(32)
FC2(31)
ブログ(30)
iTunes(27)
Windows(25)
LISMO(24)
音声合成(23)
音声認識(22)
x-アプリ(22)
電子ブック(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(18)
WindowsLiveWriter(15)
画像管理(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
fi-6130(9)
FLAC(9)
JavaScript(9)
ウォークマン(9)
英語音読学習計画(8)
Gracenote(8)
Prolog(8)
ベクター(8)
雑記(8)
CodeBlocks(7)
SyntaxHighlighter(7)
TraConv(7)
spcbght(7)
wxWidgets(7)
VirtualBox(6)
W63CA(6)
DCP-J552N(6)
WinRT(6)
WindowsLiveMesh(6)
iGoinLM(6)
英語発音矯正実験(6)
ExactAudioCopy(6)
MP3Gain(6)
LAME(5)
音楽技術(5)
Mery(5)
楽器演奏(5)
GalateaTalk(4)
nLite(4)
WindowsLiveSkyDrive(4)
ホームページ(4)
GalateaProject(4)
MIDI(4)
LLVM(4)
PC-98(3)
カウンター(3)
AACGain(3)
iTCDini(3)
OverCutChecker(3)
拍手(3)
PK-513L(3)
UniversalExtractor(3)
アクセスランキング(3)
ImageCompositeEditor(2)
アクセス解析(2)
OCR(2)
qtaacenc(2)
資格試験(1)
AquesTalk(1)
AquesCmdDl(1)

FC2アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
90位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
6位
アクセスランキングを見る>>
FC2カウンター