Vagrant が Xubuntu 16.04 ゲストで eth1 を起動できない

Vagrant が Xubuntu 16.04 ゲストで eth1 を起動できない

私は Linux と Vagrant について比較的初心者です。しばらく前に、VM ゲスト システム (Windows ホスト上の VirtualBox 5.0.18 + Vagrant 1.8.1) を Xubuntu 15.10 から Xubuntu 16.04 に更新しました。その時点で、または直後に、マウス カーソルの位置がずれている (数ピクセルずれている) ことや共有ディレクトリが見つからないことなど、いくつかの異常に気付きました。これは、 中に報告された次のエラーが原因であると思われます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

Vagrant と VirtualBox の組み合わせで発生したエラーをオンラインで検索しましたが、見つかったケースはすべて私のものとは少し異なっているようでした。人々は/etc/udev/rules.d/70-persistent-net.rules- について書いていますが、私のマシンには存在しないようですし、 にも存在しません/etc/sysconfig

/sbin/ifup eth1ログイン後にさらに情報を取得しようとすると、次のメッセージが表示されます。

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.

私の Vagrant ファイルは次のようになります:

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

vagrant-vbguestゲストアドオンがインストールされており、以前に適切なゲストアドオンバージョンを設定したプラグインを使用します。

何が問題なのか、またはさらに調査する方法についてヒントを持っている人はいますか?

アップデート: 私はこれを指摘されました:参考:(私のケースに完全には当てはまりませんが) その結果、次のようになりました。https://askubuntu.com/questions/689070/network-interface-name-changes-after-update-to-15-10-udev-changes/732638#732638

/etc/default/grubに変更しGRUB_CMDLINE_LINUX="net.ifnames=0"update-grubroot として再起動してみましたが、効果はありませんでした。

さらに調べてみると、次のことがわかりました。

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

アップデート2:要求に応じて、dmesg の出力と 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

設定ファイルを確認しましたか/etc/network/interfaces?指摘されているように、複数のゲートウェイがある可能性がありますここ

とにかく、そのファイルを少し調整していじってみれば、ifconfig問題を長引かせるのに役立つかもしれません。権限も確認してください。権限が原因ではないと思いますが、それでも :/

/etc/network/interfacesまだそうでない場合は、よりシンプルな構成に戻して、少しずつ元の構成ファイルに戻ってみてください。私ならそうすると思います。

編集: 出力から、dmesgリンクは準備ができているようです。ネットワーク部分は問題ないはずです。作成する場合dmesg | grep eth、関連する情報はありますか?

また、 cat はできますか/etc/network/if-up.d/ubuntu-fan? 終了コード 1 で終了しました。そこで何が起こっているかを確認すると興味深いかもしれません。

アップデート:

出力dmesgは問題ないようです。リンク eth0/1 は最終的に準備が整ったので、ネットワークは動作するはずです。

ubuntu-fanスクリプトを 1 行ずつ実行して、終了コード ( echo $?、 のはずです0) を確認してみてください。問題はfanctl最後のプログラムから来ているのではないかと思います。これは通常、マシンのファンを制御するために使用されますが、ここでは VM なので... この行から来ている場合は、失敗する理由を調べることができますが、私ならこのfanctl行を削除し、実際にはファイル全体を削除したほうがよいでしょう。他の行は、 をトリガーするイベントを処理するためにここにあると思いますfanctl

私は Vagrant VM (主に Ubuntu 14.04) をチェックしましたが、どこにも見つかりませんfanctl... VM 内でファンを制御しようとするのは意味がないと思います。

関連情報