Linux Vagrant Box compatible with VirtualBox version 6 - vagrant

I have been trying to install various Vagrant Boxes from Hashicorp's Vagrant Box Catalog but none seem to be compatible with:
Vagrant version: 2.2.9
VirtualBox versions: 6.0.x or 6.1.x
Host: Mac Catalina
I have tried multiple workarounds shared online and either the Guest Additions don't match or there are none available.
Both the plugin and the manual addition of guest additions also doesn't work.
Everything seems to work fine except for the shared folders syncing. Looking to get a workaround to fix the shared folder sync or a standard Linux Vagrant Box that is compatible with the VirtualBox guest additions.

The issue was fixed by manually mounting the Guest Additions VBoxGuestAdditions.iso file as CD-ROM in the VirtualBox.
Despite this, the Vagrant boxes may fail to sync shared folders via VirtualBox provider and instead use rsync for the same.
This can be fixed by updating the Vagrantfile by explicitly setting the provider type to VirtualBox in the config.
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
After this vagrant reload and the shared folder sync should work as expected.
$ vagrant reload
==> default: Attempting graceful shutdown of VM...
==> default: Clearing any previously set forwarded ports...
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:
https://www.virtualbox.org/manual/ch04.html#sharedfolders
This option can be disabled globally with an environment variable:
VAGRANT_DISABLE_VBOXSYMLINKCREATE=1
or on a per folder basis within the Vagrantfile:
config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => /Users/hemanik/vm/
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
Not sure if it was able to find the guest additions default: Checking for guest additions in VM... or if the previous tweaking with the guest additions took effect but the shared folder sync works as expected.
Just for an update, reinstalled Vagrant and the current working versions are as follows:
Vagrant version: 2.2.10
VirtualBox Version: 6.0.24 r139119

Related

Vagrant error when running vagrant up on Git Bash on Window 10

I am having trouble with vagrant up on Git Bash.
I'm currently using Vagrant 2.2.19 and VirtualBox 6.1 version.
Whenever I put vagrant up on Bash to be able to open VirtualBox server on Git bash using vagrant ssh, it shows the following error.
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/bionic64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/bionic64' version '20200304.0.0' is up to date...
==> default: Setting the name of the VM: profiles-rest-api_default_1644116739589_78823
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 8000 (guest) => 8000 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
The guest machine entered an invalid state while waiting for it
to boot. Valid states are 'starting, running'. The machine is in the
'unknown' state. Please verify everything is configured
properly and try again.
If the provider you're using has a GUI that comes with it,
it is often helpful to open that and watch the machine, since the
GUI often has more helpful error messages than Vagrant can retrieve.
For example, if you're using VirtualBox, run `vagrant up` while the
VirtualBox GUI is open.
The primary issue for this error is that the provider you're using
is not properly configured. This is very rarely a Vagrant issue.
What I have done so far
Visualization is enabled from BIOS
Install VirtualBox extension pack
Uninstall and reinstall VirtualBox and Vagrant several times
Also, when I put vagrant ssh after that error, it shows nothing, but the VirtualBox is running as this image. Can you guys help me figure out how to open the VirtualBox server on Bash, please? Thank you!
enter image description here
Welcome to stackoverflow! Please visit this useful link.
-Try to downgrade the vagrant version that you are using and try again.
-Also, try to use the command debug vagrant up in order to have debug logs available for a more precise description of the error message.
Finally, take a look at stackoverflow question too.
You need to downgrade the virtualbox version and the vagrant version (they need to be both on convenient versions)

Issues when running vagrant in Ubuntu 14.04

When running vagrant with latest package of Ubuntu 14.04, I got the following error message. Is there any configuration for Virtualbox? The provider is Virtualbox, and not special configuration after apt-get install virtualbox. BTW, can not connect to this host by GUI :(.
# vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> 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: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
The guest machine entered an invalid state while waiting for it
to boot. Valid states are 'starting, running'. The machine is in the
'poweroff' state. Please verify everything is configured
properly and try again.
If the provider you're using has a GUI that comes with it,
it is often helpful to open that and watch the machine, since the
GUI often has more helpful error messages than Vagrant can retrieve.
For example, if you're using VirtualBox, run `vagrant up` while the
VirtualBox GUI is open.
The primary issue for this error is that the provider you're using
is not properly configured. This is very rarely a Vagrant issue.
Enable VT-x Virtualization Technology in BIOS and still your problem remains see issue vagrant issues 2157 and this issue.

Issues using vagrant up with multiple providers

I'm having an issue here trying to bring up a vagrant provider(s) specific box and am not certain what to do to proceed,
if this is in the documentation then I am not seeing it?
I am using the below to add the boxes
## Add the list of used Vagrant boxes
declare -A boxes
inc=1
boxes=(
['spherical64']='http://puppet-vagrant-boxes.puppetlabs.com/fedora-18-x64-vbox4210-nocm.box' ## Fedora 18 x64 nocm
['centos6464']='http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box' ## CentOS 6.4 x64 nocm
['centos5964']='http://puppet-vagrant-boxes.puppetlabs.com/centos-59-x64-vbox4210-nocm.box' ## CentOS 5.9 x64 nocm
['squeeze64']='http://puppet-vagrant-boxes.puppetlabs.com/debian-607-x64-vbox4210-nocm.box' ## Debian 6.0.7 x64 nocm
['wheezy64']='http://puppet-vagrant-boxes.puppetlabs.com/debian-70rc1-x64-vbox4210-nocm.box' ## Debian 7.0rc1 x64 nocm
['sles11164']='http://puppet-vagrant-boxes.puppetlabs.com/sles-11sp1-x64-vbox4210-nocm.box' ## SUSE Enterprise 11sp1 x64 nocm
['lucid64']='http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-10044-x64-vbox4210-nocm.box' ## Ubuntu Server 10.04.4 x64 nocm
['precise64']='http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box' ## Ubuntu Server 12.04.2 x64 nocm
)
set -e
for box in "${!boxes[#]}"; do
echo "-- Installing: ${inc}/${#boxes[#]} ${box}"
vagrant box add "${box}" "${boxes[$box]}"
((inc+=1))
done
set +e
Then trying to vagrant up from there (after init)
bash-4.3$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'base' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Adding box 'base' (v0) for provider: virtualbox
default: Downloading: base
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
Couldn't open file /private/tmp/base
bash-4.3$ vagrant box list
centos5964 (virtualbox, 0)
centos6464 (virtualbox, 0)
lucid64 (virtualbox, 0)
precise64 (virtualbox, 0)
sles11164 (virtualbox, 0)
spherical64 (virtualbox, 0)
squeeze64 (virtualbox, 0)
wheezy64 (virtualbox, 0)
bash-4.3$ vagrant up --provider=centos6464
The provider 'centos6464' could not be found, but was requested to
back the machine 'default'. Please use a provider that exists.
bash-4.3$ vagrant up --provider=virtualbox
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'base' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Adding box 'base' (v0) for provider: virtualbox
default: Downloading: base
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
Couldn't open file /private/tmp/base
It was trying to use a base box (which did not exist) on vagrant up. So the answer is really to add the box name on vagrant init.
bash-4.3$ vagrant init precise64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
bash-4.3$ cat Vagrantfile |grep 'config.vm.box'
config.vm.box = "precise64"
bash-4.3$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'precise64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: tmp_default_1416506255173_95689
==> 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: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.2.10
default: VirtualBox Version: 4.3
==> default: Mounting shared folders...
default: /vagrant => /private/tmp

Vagrant error: Failed to mount folders in Linux guest

I have a vagrant error. The log as follows:
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: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => /Users/diguage/box/centos
Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:
mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant
I Google it. StackOverflow had the same question:
Vagrant error : Failed to mount folders in Linux guest
I did it as the top answer: here. The different is that I downloaded the VBoxGuestAdditions_4.3.18.iso. But it did not work.
I try the second answer: here. It also did not work.
So, I have to ask the question.
My environment is :
Mac OSX 10.10
vagrant 1.6.3
CentOS release 6.5 (Final)
Kernel 2.6.32-431.29.2.el6.x86_64
VirtualBox 4.3.18
PS:
I used the box chef / centos-6.5. I first start the box, it was OK. But I sudo yum update,then sudo yum clean, restart the box, export the error.
Use Following is work fine for me.
vagrant plugin install vagrant-vbguest
I was having the same problem with the same setup, I noticed the problem is only with centos 6.5, so I am using chef/centos-6.6 and it has been working fine. There is very little difference between 6.5 and 6.6, so you shouldn't have any problems migrating your code over. Here's the link to the chef boxes.
EDIT
Ok, I ended up needing a 6.5 box, so I worked through it. The core issue is that the CentOS base repo doesn't include kernel headers(Ubuntu does). You first need to add the appropriate repos to your /etc/yum.repos.d/CentOS-Vault.repo, and you need to enable them. What you append should look something like this:
[C6.5-centosplus]
name=CentOS-6.5 - CentOSPlus
baseurl=http://vault.centos.org/6.5/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enabled=1
You also need to check the /etc/yum.conf file and make sure there aren't any exclusions such as:
exclude=kernel*
if so comment this out for the time being, but make sure to uncomment it at the end.
Now, you can install the necessary headers for the kernel. The headers depend on kernel-devel, so lets grab that up first.
yum install kernel-devel-$(uname -r)
Then, grab up the headers
yum install kernel-headers-$(uname -r)
Finally, you'll need the dkms package
yum install dkms
Go back and uncomment the exclusions in yum.conf and you should be good to reboot. With only that installed you could then use:
vagrant package --base MyBase
This will give you a reusable CentOS 6.5 box that you can grab on demand. Hope this wasn't too late for you.
I have experienced this using Vagrant 1.8.1, VirtualBox 5.0.18, Chef 12.10.10 host MacOSX El Capitan and guest CentOS7.
I tried installing kernel-devel inside the guest, installing the latest GuestAdittions and running yum update, but none of these worked for me, so I changed the mount type for "nfs" in both my custom synced folders and chef temporary folder, and it worked!
In Vagrantfile, my synced folders:
config.vm.synced_folder ".", "/vagrant", type: "nfs"
and my chef_solo config:
chef.cookbooks_path = ["chef/cookbooks/"]
chef.synced_folder_type = "nfs"

Vagrant not booting unless im on the home path

Vagrant is not booting unless im on the home path.
[ruby-1.9.3-p286] ~ cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
config.vm.box = "precise32"
end
[ruby-1.9.3-p286] ~ vagrant up
[default] Importing base box 'precise32'...
[default] The guest additions on this VM do not match the install version of
VirtualBox! This may cause things such as forwarded ports, shared
folders, and more to not work properly. If any of those things fail on
this machine, please update the guest additions and repackage the
box.
Guest Additions Version: 4.2.0
VirtualBox Version: 4.1.12
[default] Matching MAC address for NAT networking...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Mounting shared folders...
[default] -- v-root: /vagrant
[ruby-1.9.3-p286] ~ vagrant destroy
Are you sure you want to destroy the 'default' VM? [Y/N] Y
[default] Forcing shutdown of VM...
[default] Destroying VM and associated drives...
[ruby-1.9.3-p286] ~
It boots successfully when I run vagrant up from my home path. But when I run vagrant up from another sub directory, its doesn't boot. Its kinda weird because the Vagrantfile which I use is exactly the same.
[ruby-1.9.3-p286] ~
[ruby-1.9.3-p286] ~ cd dev_vm
[ruby-1.9.3-p286] ~/dev_vm cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
config.vm.box = "precise32"
end
[ruby-1.9.3-p286] ~/dev_vm vagrant up
[default] VM already created. Booting if it's not already running...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
The VM failed to remain in the "running" state while attempting to boot.
This is normally caused by a misconfiguration or host system incompatibilities.
Please open the VirtualBox GUI and attempt to boot the virtual machine
manually to get a more informative error message.
[ruby-1.9.3-p286] ~/dev_vm
[ruby-1.9.3-p286] ~/dev_vm
I even tried booting it manually from the Virtualbox UI, but I just see a blank screen. I probably think i'm missing something.
export VAGRANT_LOG=debug, this showed me a message to try out vagrant destroy and vagrant up. And then my VM booted properly. Still weird to understand what could be the problem.
I also want to add that you will get this error
Waiting for VM to boot. This can take a few minutes.
The VM failed to remain in the "running" state while attempting to boot.
This is normally caused by a misconfiguration or host system incompatibilities.
Please open the VirtualBox GUI and attempt to boot the virtual machine
manually to get a more informative error message.
when running vagrant, if you've installed the i386 version of virualbox when you are on a 64bit processor. So, make sure you have the correct virtualization software installed for your host machine.

Resources