快調に使えていたVagrant + VirtualBox の仮想マシンなんですが、突然 up コマンドがエラー終了して、起動しなくなったことがあったため、対応を記録しておきます。
かなり困りました。
正常に起動できてたときから、
・Windows10をアップデートした
・Visual Studio IDE をインストールした
と、かなり、Microsoft に関わるところをいじった後なので、ホストOSまわりか・・・と思っていましたが、意外にも、何もいじってないはずの マルウェア対策ソフトRapport が原因でした・・・・
これをインストールした直後に問題が起きたらすぐ思い当たるのに、なぜ、何も変更していないのに・・・・・
Rapport が最近自動でバージョンアップしてたのかもしれません。
マルウェア対策ソフトRapportが原因でVagrantが立ち上がらなくなった件
エラー状況
vagrant up コマンドを実行したら、「Booting VM」という仮想マシンを起動しているところでエラー発生してます。
VirtualBox をコントロールしているVBoxManage がエラーを出していて、その時のコマンドが、
startvm --type headless ということ。
まさに起動のエラーです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
user @ cf -nx2 MINGW64 /c /data /tk /vagrant /manutest
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider . . .
==> default : Importing base box 'bento/centos-7.5' . . .
==> default : Matching MAC address for NAT networking . . .
==> default : Checking if box 'bento/centos-7.5' version '201808.24.0' is up to date . . .
==> default : Setting the name of the VM : manutest_default_1548662956356_29909
==> default : Clearing any previously set network interfaces . . .
==> default : Preparing network interfaces based on configuration . . .
default : Adapter 1 : nat
default : Adapter 2 : hostonly
==> default : Forwarding ports . . .
default : 22 ( guest ) => 2222 ( host ) ( adapter 1 )
==> default : Booting VM . . .
There was an error while executing ` VBoxManage ` , a CLI used by Vagrant
for controlling VirtualBox . The command and stderr is shown below .
Command : [ "startvm" , "e210272c-9f96-464b-b22e-3a480b4ef487" , "--type" , "headless" ]
Stderr : VBoxManage . exe : error : The virtual machine 'manutest_default_1548662956356_29909' has terminated unexpectedly during startup with exit code 1 ( 0x1 ) . More details may be available in 'C:\Users\user\VirtualBox VMs\manutest_default_1548662956356_29909\Logs\VBoxHardening.log'
VBoxManage . exe : error : Details : code E_FAIL ( 0x80004005 ) , component MachineWrap , interface IMachine
user @ cf -nx2 MINGW64 /c /data /tk /vagrant /manutest
VBoxHardening.log を見ろというので、見てみますと・・・・
2cc8.1a48 : supR3HardenedMonitor_LdrLoadDll : pName =C : \ Windows \ System32 \ ntdll . dll ( Input =ntdll . dll , rcNtResolve =0xc0150008 ) *pfFlags =0x0 pwszSearchPath =0000000000000801 : < flags > [ calling ]
2cc8.1a48 : supR3HardenedMonitor_LdrLoadDll : returns rcNt =0x0 hMod =00007fff0aee0000 'C:\Windows\System32\ntdll.dll'
2cc8.1a48 : Error -104 in supR3HardenedWinReSpawn ! ( enmWhat =5 )
2cc8.1a48 : Error relaunching VirtualBox VM process : 5
Command line : '60eaff78-4bdd-042d-2e72-669728efd737-suplib-3rdchild --comment autotest_default_1547603143379_50960 --startvm 25e56752-08d3-49c8-b749-15927767ce58 --no-startvm-errormsgbox "--sup-hardening-log=C:\Users\user\VirtualBox VMs\autotest_default_1547603143379_50960\Logs\VBoxHardening.log"'
な感じで、Error -104 が supR3HardenedWinReSpawn で発生しているとのこと。
enmWhat=5 と種別も書いてあります。
原因調査
といっても、はっきり言って全く見当のつかない感じのエラーでした。
言えることは、vagrant の問題ではなく、VirtualBox の問題っぽいということぐらいです。
念のため、VirtualBox を起動して単体起動を試みます。
VirtualBox 単独での起動でも、同様に、startvm でエラーが発生しています。また、エラー内容も Error -104 が supR3HardenedWinReSpawn で発生しているとのこと。
enmWhat=5 は what: 5 と表現されています。エラーの内容が説明されていてよいですね。-104 も「file/path name が無効 = VERR_INVALID_NAME」ということが分かります。
結局 Webページを調査して判明
virtualboxのフォーラムページに同じ-104エラー what 5 の問題があり、Rapport をアンインストールして解決したという例が続出してました。
URL:
[Solved] Another: Error relaunching VirtualBox VM process: 5 - virtualbox.org
私も アンインストールしたら問題が解消しました。
Rapport のアンインストール方法
Rapport は 三菱UFJ銀行のインターネットバンキングで推奨されていて、インストールしていないと、メッセージボックスに何度も案内が来るので、入れておきたいところだったのですが、業務に支障が出るので仕方ありません。アンインストールしました。
手順は、普通に、「プログラムと機能 → プログラムのアンインストール」から行うのですが、Rapport で表示されていないから注意が必要です。
プログラム名は「Trusteerエンドポイント保護」になってます。
IBMのホームページには、「IBM Trusteer Rapport」と書いてあるので別に間違いはないのですが、さんざ、三菱UFJ銀行からは「Rapportをインストールしましょう」と書かれてインストールしたのに、ちょっとひどいです。
そのあとの手順は、画面に従って行ってください。
画像文字を読んで入力して「停止」を押さないといけなかったり、ちょっと面倒です。
悪意あるソフトに自動で停止されないようにという配慮なんでしょう。
まとめ
vagrant up がエラー終了してしまったとき、エラーが本記事と同様VERR_INVALID_NAME(-104) だった場合、Rapportとの干渉が原因の可能性があります。
仮想マシン起動しない問題が起きたら、参考にしてみてください。
コメント