問題
以下のエラーが発生しました。
c:\vagrant\centos7>vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Clearing any previously set forwarded ports... ==> 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", "fcfc5681-400e-405d-92cf-3a79f22f06ec", "--type", "headless"] Stderr: VBoxManage.exe: error: The virtual machine 'centos7_default_150759569248 9_41362' has terminated unexpectedly during startup with exit code -1073741819 ( 0xc0000005). More details may be available in 'C:\Users\xxx\VirtualBox VMs \centos7_default_1507595692489_41362\Logs\VBoxHardening.log' VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component MachineWrap, interface IMachine
環境
- Win7 64bit
- vagrant 1.9.6
- centos 7.2
- virtualbox バージョン 5.1.28 r117968 (Qt5.6.2)
結論
MacTypeという製品を入れていたのが問題でした。
下記のサイトの手順を実施したら解消しました。
問題解決までの流れ
- VBoxManage.exe のメッセージなので問題は
virtualbox
で発生したものと判断する C:\Users\xxx\VirtualBox VMs\centos7_default_1507595692489_41362\Logs\VBoxHardening.log
にログが吐き出されているので確認する- ログを確認し、関係ありそうなところを抜粋
Hardened
= 拒否 という文言がそれっぽいので抜き出す
… 246c.299c: Log file opened: 5.1.28r117968 g_hStartupLog=0000000000000004 g_uNtVerCombined=0x611db100 246c.299c: supR3HardenedVmProcessInit: uNtDllAddr=0000000077130000 g_uNtVerCombined=0x611db100 246c.299c: ntdll.dll: timestamp 0x598d5074 (rc=VINF_SUCCESS) 246c.299c: New simple heap: #1 0000000000280000 LB 0x400000 (for 1744896 allocation) 2950.2960: supR3HardNtEnableThreadCreation: 246c.299c: supR3HardenedWinInitAppBin(0x0): '\Device\HarddiskVolume3\Program Files\Oracle\VirtualBox' 246c.299c: System32: \Device\HarddiskVolume3\Windows\System32 246c.299c: WinSxS: \Device\HarddiskVolume3\Windows\winsxs 246c.299c: KnownDllPath: C:\Windows\system32 246c.299c: supR3HardenedVmProcessInit: Opening vboxdrv stub... 246c.299c: supR3HardenedVmProcessInit: Restoring LdrInitializeThunk... 246c.299c: supR3HardenedVmProcessInit: Returning to LdrInitializeThunk... 246c.299c: Registered Dll notification callback with NTDLL. 246c.299c: supHardenedWinVerifyImageByHandle: -> 22900 (\Device\HarddiskVolume3\Windows\System32\kernel32.dll) 246c.299c: supR3HardenedWinVerifyCacheInsert: \Device\HarddiskVolume3\Windows\System32\kernel32.dll 246c.299c: supR3HardenedMonitor_LdrLoadDll: pName=C:\Windows\system32\kernel32.dll (Input=kernel32.dll, rcNtResolve=0xc0150008) *pfFlags=0xffffffff pwszSearchPath=0000000000000000:<flags> [calling] 246c.299c: supR3HardenedScreenImage/NtCreateSection: cache hit (Unknown Status 22900 (0x5974)) on \Device\HarddiskVolume3\Windows\System32\kernel32.dll [lacks WinVerifyTrust] 246c.299c: supR3HardenedDllNotificationCallback: load 0000000077010000 LB 0x0011f000 C:\Windows\system32\kernel32.dll [fFlags=0x0] 246c.299c: supR3HardenedScreenImage/LdrLoadDll: cache hit (Unknown Status 22900 (0x5974)) on \Device\HarddiskVolume3\Windows\System32\kernel32.dll [lacks WinVerifyTrust] 246c.299c: supR3HardenedDllNotificationCallback: load 000007fefcfb0000 LB 0x0006a000 C:\Windows\system32\KERNELBASE.dll [fFlags=0x0] 246c.299c: supHardenedWinVerifyImageByHandle: -> 22900 (\Device\HarddiskVolume3\Windows\System32\KernelBase.dll) 246c.299c: supR3HardenedWinVerifyCacheInsert: \Device\HarddiskVolume3\Windows\System32\KernelBase.dll 246c.299c: supR3HardenedMonitor_LdrLoadDll: returns rcNt=0x0 hMod=0000000077010000 'C:\Windows\system32\kernel32.dll' 2950.2960: supR3HardNtChildWaitFor[1]: Quitting: ExitCode=0xc0000005 (rcNtWait=0x0, rcNt1=0x0, rcNt2=0x103, rcNt3=0x103, 57 ms, CloseEvents);
- ↑のログだけだと特定できないので+でログを見る
2950.2960: '\Device\HarddiskVolume3\Program Files\Oracle\VirtualBox\VBoxHeadless.exe' has no imports 2950.2960: '\Device\HarddiskVolume3\Windows\System32\apisetschema.dll' has no imports 2950.2960: '\Device\HarddiskVolume3\Windows\System32\ntdll.dll' has no imports
VBoxHeadless.exe' has no imports
という気になるメッセージを見つける- VMwareのvmware toolsみたいなやつが必要なのか? と当たりをつける
VBoxHeadless.exe' has no imports
を検索- https://www.virtualbox.org/ticket virtualboxのissue管理サイトをみつける
- Hardenedは hard+denyの過去形かと思ったけど
Hardened
で一つの単語と知った… 意味は焼入れらしい… 関係なかった…
- Hardenedは hard+denyの過去形かと思ったけど
- 調べてもあまりでてこないので
2950.2960: supR3HardNtChildWaitFor[1]: Quitting: ExitCode=0xc0000005 (rcNtWait=0x0, rcNt1=0x0, rcNt2=0x103, rcNt3=0x103, 57 ms, CloseEvents);
を調べる - ウイルス対策ソフトと一緒に使うと起動しなくなったりするという情報をゲット。
- ウイルスバスターをつかっているので
ウイルスバスター virtualbox
で検索→有力な情報はなし - virtualboxからGUIで起動してみる↓以下のメッセージ
The virtual machine 'centos7_default_1507595692489_41362' has terminated unexpectedly during startup with exit code -1073741819 (0xc0000005). More details may be available in 'C:\Users\xxx\VirtualBox VMs\centos7_default_1507595692489_41362\Logs\VBoxHardening.log'.
検索してここへたどり着く
hardeningは
windows hardening
というセキュリティということがわかった
。Windows Vista Services Hardening (図 1 参照) は、信頼できるコンピューティング イニシアチブの既定設定による安全性確保の原則を具体的に実装したものであり、現存する悪意のあるソフトウェアの多くが実行する不適切なサービス動作を防ぐ重要な新機能です。Service Hardening により、マイクロソフトは Windows サービスの既定の動作とセキュリティ プロファイルを変更する点において大きな進歩を遂げました。
- hardeningとvirtualboxが競合している?? hardeningに特化したFAQがvirtualboxにあるのをみつけた
- これっぽいので読んで見る https://forums.virtualbox.org/viewtopic.php?f=25&t=82106#p387192:title
Error 0xC0000005 is what's known as an general protection fault or memory access error: the application tried to access an invalid memory address or jump to code which doesn't exist. Hence this is most likely a consequence of RULE2: a bad DLL got unloaded, but some other DLL is still trying to use it. You can often narrow the cause if you look at which DLL faulted. Quite often you find that the bad memory access came from a graphics related DLL, which implies that the graphics provider omitted to sign one of their DLLs. You should check for updates for your graphics card drivers. 1 If you find that the VM will not start in normal mode, but will start when run in headless mode, then that makes it pretty much certain that your problem is the graphics drivers. エラー0xC0000005は、一般保護違反またはメモリアクセスエラーと呼ばれるものです。アプリケーションが無効なメモリアドレスにアクセスしようとしたか、存在しないコードにジャンプしようとしました。 したがって、これはRULE2の結果である可能性が最も高いです:悪いDLLがアンロードされましたが、他のDLLはまだそれを使用しようとしています。 フォールトが発生したDLLを調べると、原因を絞り込むことができます。 非常に頻繁に、グラフィックス関連のDLLからのメモリアクセスが不良であることがわかりました。これは、グラフィックスプロバイダがDLLの1つに署名するのを省略したことを意味します。 あなたのグラフィックスカードドライバのアップデートを確認する必要があります。 1 VMが通常モードで起動せず、ヘッドレスモードで起動すると、VMがグラフィックスドライバであることがわかります。
RULE2 はこちら。
(RULE2) VirtualBox no longer "errors out" when an unsigned DLL is found. Instead the rule is that VirtualBox now merely discards the errant DLL and continues. (RULE2)署名されていないDLLが見つかると、VirtualBoxはもはや「エラー出力」されなくなりました。代わりに、VirtualBoxは単に不当なDLLを破棄して処理を続けるというルールがあります。
- ログを遡ってみる
- apisetschema.dll
- ntdll.dll がunsignedらしいです
2aa0.2024: '\Device\HarddiskVolume3\Windows\System32\apisetschema.dll' has no imports 2aa0.2024: '\Device\HarddiskVolume3\Windows\System32\ntdll.dll' has no imports
このDLLで検索してみるとこちらのサイトがヒット
- virtualbox.org • View topic - Windows 4.3.16 specifically for errors due to security
- グラフィックドライバーをどうこう と書いてあるがGUIモードでは使用していないので関係なさそう
- 色々調べるもにっちもさっちもいかなくなる
ここでMacTypeというWindowsの画面をMacのようなきれいなフォントにするためのフリーソフトが悪さをしているという情報をゲットする
- いれてないよなあ と思いながら自分のパソコンみたら「入ってたーーー」
- VirtualBoxで起動エラーが出たらMacTypeを疑う - Qiita
- このサイトにある手順にしたがって、
virtualBox
を除外設定した
起動した!!!!!