New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot install Virtualbox #733
Comments
Thanks for reporting the issue. WSL does not currently provide Dynamic Kernel Module Support (DKMS) since it is emulating the Linux kernel interfaces exposed to user mode Linux binaries. We haven't investigated if WSL can also emulate the Linux kernel interfaces exposed to Linux kernel modules. Check out the important links section on the main page to see what scenarios are being targeted for the current release. |
@HeathNaylor I wouldn't run virtualbox through WSL anyway. WSL does not have any display hardware, drivers, or really anything you might expect to exist on a real machine. However, since most of the output services for Linux (X, Pulseaudio, etc) are network-transparent, you can run the Win32-ported versions of their servers (vcXsrv, Pulseaudio) in TCP mode, and the Win32 ports have Windows driver support (which means you generally won't need to have WSL supporting Linux drivers). This is also why WSL doesn't support things like reading ext-filesystems, because the NT Kernel does not have drivers for them. stehufntdev is on the NT kernel team (see his name!), and he is probably genuinely seeing what the demand is for this feature, but if you read some of the blog posts, it seems like this is beyond the scope of the WSL project for the foreseeable future. Right now, the idea is to implement the syscall interface (consisting mainly of calls from usermode to kernelmode) and parts of the kernel that are visible from userspace (/proc and /dev). WSL supporting something like linux kernel-mode drivers could be practically impossible (think of how hard it would be to make a kernel-mode interface that let you use Windows device drivers seamlessly on Linux) |
@fpqc I understand all of that, makes perfect sense. However, how do I run |
@HeathNaylor It says Vagrant supports cloud platforms. Couldn't you configure your Win32 instance of Virtualbox to appear like a cloud platform and then set Vagrant up to handle it like that? |
@fpqc -- by "cloud platforms" I think it means "Amazon AWS" (and similar). Virtualbox isn't designed to work like AWS. |
@HeathNaylor -- I haven't tried this, but one option (though a little clunky) would be to call the Windows version of Vagrant from Linux using cbwin. |
As an alternative/workaround, I have made peace with a hybrid Windows/Bash solution for running vagrant + virtualbox + ansible, relying on TCP/IP connectivity across the subsystems. Yes, it requires me having CMD and Bash open to interact with the different subsystems' tools, but it works for all usages I've tried so far. |
@MikeTheCanuck use @xilun 's cbwin project. It can call gui and console windows programs with wstart and wcmd (wcmd cmd for example) inside of the terminal emulator. I highly suggest running outbash in --outbash-session mode, since this allows you to do things like multiplex cmd with tmux, which is pretty amazing. A few days ago, I tested running powershell, cmd, bash, and zsh each in their own tmux windows it was pretty nifty. |
What about running a fake WSL VBoxManage that redirects input/output to the real VBoxManage on the windows installed Virtualbox? |
With the new build you can run Windows executables so I propose the following to run Vagrant on WSL. First, remove any previous VirtualBox from your WSL. If successful go ahead.
|
@ricardowong Thanks for your guide, it definitely works well. I would suggest people to not install vagrant from the package manager but rather from vagrant using wget and dpkg -i I'm having an issue running vagrant up with this setup. Vagrant invokes the VBoxManage import command. The problem is that the path is for inside of WSL, not windows. VBoxManage tries to prepend D:\ (at least for me) which means the command fails because that path does not exist. Does this mean that we can only use vagrant inside of WSL only after provisioning boxes? |
Same thing happens for me. This is the exact error when I run
any fixes or workarounds anyone can think of? |
Actually, putting my home folder in the D:\ drive and symlinking my home folder in ubuntu to the D mount might just work, testing... EDIT: Didn't work Results:
Looks like VBoxManage is trying to open the mount on the WSL structure |
@odannyc same error here. did you discover a solution? as we could see VBoxManager is trying to open the same folder as $PATH instead of Linux. _____ UPDATE ___ Just update via |
@MatheusRV the fix you did doesn't seem to fix mine. Did the |
@marcvroom hello, did you updated your vagrant? |
Hi @MatheusRV, my vagrant is 1.9.5 and my WSL version is 16.04(this is the ubuntu version, right?) and my VirtualBox is 5.1.22. I think all is updated. |
@odannyc Same issue here |
Probably vagrant is trying to use ubuntu's virtualbox. Maybe this will fix it.
Also your VagrantFile might need this
|
Description
I am able to
sudo apt-get install virtualbox vagrant
but when I attempt avagrant up
I am presented with an error. This ends at a Linux headers error, and since WSL is only the userspace and not the kernel am I correct in thinking that there is no current fix for this?Expected results
Vagrant box comes up fine
Actual results
So then I run
VBoxManage --version
And then I run
sudo apt-get install linux-headers-3.4.0+
Windows build number
Version 10.0.14393 Build 14393
The text was updated successfully, but these errors were encountered: