2

I am relatively new to Linux and Vagrant. I updated my VM guest system (VirtualBox 5.0.18 + Vagrant 1.8.1 on a Windows Host) from Xubuntu 15.10 to Xubuntu 16.04 a while ago. At that point or shortly after I noticed some oddities, e.g. a misaligned mouse cursor (a few pixels off) and missing shared directories. My guess is that it's due to the following error reported during vagrant up:

==> 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: 8080 (guest) => 8080 (host) (adapter 1)
    default: 9000 (guest) => 9000 (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
==> default: Machine booted and ready!
GuestAdditions 5.0.18 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/sbin/ifup eth1

Stdout from the command:

Failed to bring up eth1.


Stderr from the command:

mesg: ttyname failed: Inappropriate ioctl for device
run-parts: /etc/network/if-up.d/ubuntu-fan exited with return code 1

I looked for the error in combination with Vagrant and VirtualBox online, but the cases I found seemed all a bit different to mine. People write about /etc/udev/rules.d/70-persistent-net.rules - but it does not seem to exist on my machine, neither does /etc/sysconfig.

Trying to run /sbin/ifup eth1 for some more information after logging in gives me this:

vagrant@IDE-machine ~ $ sudo /sbin/ifup -v eth1
Configuring interface eth1=eth1 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/bridge
run-parts: executing /etc/network/if-pre-up.d/ethtool
run-parts: executing /etc/network/if-pre-up.d/wireless-tools
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/bin/ip addr add 192.168.56.21/255.255.255.0 broadcast 192.168.56.255     dev eth1 label eth1
RTNETLINK answers: File exists
Failed to bring up eth1.

My Vagrant file looks like this:

Vagrant.configure(2) do |config|
  # a locally stored box
  config.vm.box = "IDE-machine"

  config.ssh.private_key_path = "ssh/id_rsa"

  config.vm.network "forwarded_port", guest: 8080, host: 8080
  config.vm.network "forwarded_port", guest: 9000, host: 9000

  config.vm.network "private_network", ip: "192.168.56.21"

  config.vm.provider "virtualbox" do |vb|
      vb.gui = true

      vb.memory = "12288"
      vb.cpus = 2
      vb.name = "my_IDE-machine"

      vb.customize ["modifyvm", :id, "--monitorcount", "1"]
      vb.customize ["modifyvm", :id, "--vram", "64"]
      vb.customize ["storageattach", :id, "--storagectl", "SATA", "--port", 1, "--device", 0, "--type", "hdd", "--medium", "V:/BoxStorage/Projects.vdi"]
  end
  config.vm.provision "shell", inline: "/vagrant/provision.sh"
end

Guest additions are installed, I use the vagrant-vbguest plugin which had set up the right guest addon version earlier.

Does someone have an idea what could be the issue, or hints how I can dig further?

Update: I was pointed to this: https://github.com/mitchellh/vagrant/issues/7155 (which does not apply completely to my case) Which led me to this: https://askubuntu.com/questions/689070/network-interface-name-changes-after-update-to-15-10-udev-changes/732638#732638

I tried changing /etc/default/grub with GRUB_CMDLINE_LINUX="net.ifnames=0", then update-grub as root and reboot, to no avail.

Some more poking around showed me this:

vagrant@IDE-machine ~ $ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
#VAGRANT-BEGIN
# The contents below are automatically generated by Vagrant. Do not modify.
auto eth1
iface eth1 inet static
      address 192.168.56.21
      netmask 255.255.255.0
#VAGRANT-END

Update 2: As requested here is the output of dmesg and the contents of ubuntu-fan:

vagrant@IDE-machine ~ $ dmesg | grep eth
[    1.692133] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 08:00:27:af:31:b4
[    1.692144] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection
[    2.068113] e1000 0000:00:08.0 eth1: (PCI:33MHz:32-bit) 08:00:27:94:1e:dc
[    2.068120] e1000 0000:00:08.0 eth1: Intel(R) PRO/1000 Network Connection
[    5.732516] e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[    5.732980] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[    5.733061] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[    6.790923] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    6.793512] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    6.795646] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[    6.796069] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

vagrant@IDE-machine ~ $ cat /etc/network/if-up.d/ubuntu-fan 
#!/bin/sh

set -e

case "$IFACE" in
lo) exit 0 ;;
fan-*)  exit 0 ;;
esac

case "$ADDRFAM" in
inet) ;;
*) exit 0 ;;
esac

# NOTE: NetworkManager simply does not call out to the normal
#       down hooks as it only checks _after_ the interface has
#       been lost.  Roll with this.
case "$PHASE::$METHOD" in
post-up::static|post-up::dhcp|post-up::NetworkManager)          ;;
pre-down::static|pre-down::dhcp|post-down::NetworkManager)      ;;
*) exit 0 ;;
esac

case "$MODE" in
start|stop) ;;
*) exit 0 ;;
esac

/usr/sbin/fanctl net "$MODE" "$IFACE"

1 Answer 1

3

Did you check your /etc/network/interfaces config files ? Maybe you have several gateways as pointed here .

Anyway, tweaking that file a bit and playing with ifconfig can help you drag the problem out. Check the permissions also, I doubt it comes from there but still :/

You can try to go back to a simpler configuration in /etc/network/interfaces if it's not already the case and go back bit by bit to the original configuration file. I would do that I think.

EDIT: From your dmesg output it seems that links are ready so the network part should be ok. If you make dmesg | grep eth, is there any relevant information ?

Also, can you cat /etc/network/if-up.d/ubuntu-fan ? It exited with exit code 1, could be interesting to check what's happening there.

UPDATE:

You dmesg output seems okay, the links eth0/1 are ready in the end so the network should be working.

You should try to execute the ubuntu-fan script line by line and check for exit codes (echo $?, should be 0). I wonder if the problem doesn't come from the fanctl program at the end. It is normaly used to control fans on a machine, but here it's a VM so ... If it's coming from this line, you can try to look why it's failing, but I would remove the fanctl line, and then maybe the whole file in fact. I guess the other lines are here to handle events to trigger fanctl.

I have checked my vagrant VMs (mostly ubuntu 14.04 though) and I don't see any fanctl anywhere ... I not sure it makes sense to try to control fans inside a VM.

5
  • Hi, thanks for the hint. I just had posted the content of the /etc/network/interfaces config file. Seems pretty simple to me, and I'd assume that the vagrant generated lines should be exactly what vagrant needs.
    – Arne Mertz
    Commented May 19, 2016 at 15:23
  • Yes sorry, I answered a little bit too quiclky ... I edited the message, can you look for dmesg and ubuntu-fan ?
    – Vincent
    Commented May 19, 2016 at 15:33
  • Thanks for sticking with me, really appreciate it. I appended the two outputs you requested to the original question.
    – Arne Mertz
    Commented May 20, 2016 at 5:36
  • Updated the answer.
    – Vincent
    Commented May 26, 2016 at 8:10
  • Thanks so much, I finally got the time to have a look at it again. Removing the call to fanctl seems to have solved the issue. At least the VM now starts up without error messages, and the directories mapped to the host now contain the host's files as expected.
    – Arne Mertz
    Commented Jun 28, 2016 at 6:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .