仮想14.04サーバーマシンを16.04にアップグレードしました。 VMを再起動した後、次のエラーが表示されます。
[FAILED] Failed to start Raise network interfaces.
See 'systemctl status networking.service' for details
ログイン後、前述のコマンドを実行して、次の出力を取得できます(接続できないためのイメージ)。
/etc/network/interfaces
の設定は問題ありません-手動で設定されたeth0を使用しています(ここではdhcpを使用していません)
不思議に思うのは、ifconfig -a
リスト
期待するところ
を介してeth0デバイスを起動しようとしています
Sudo ifup -v eth0
出力:
...
Cannot find device "eth0"
Failed to bring up eth0.
仮想有線ネットワークデバイス自体は、以前と同様にVM自体で構成されています。
ip link
も表示されますlo
およびens160
-ens160
には、単一の構成された仮想ネットワークデバイスのvmwareで構成されたMACアドレスがあります。
/etc/network/interfaces
のeth0のすべての参照をens160に変更すると、問題を解決できます。
しかし-これはいくつかの理由で間違っていると感じています:
だから誰かがこの変更を説明してもらえますか?それは同じサーバー上の他のいくつかの14.04マシンには起こらなかったのですが、これも16.04にアップグレードしました。
この問題は、systemd/udevのPredictable-Network-Interface-Namesが原因で発生しました。
this source によると、次のいずれかが可能です。
新しいファイル10-rename-network.rules
を/etc/udev/rules.d/
に作成し、次のコンテンツを追加しました。
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"
どこ
eth0
= /etc/network/interfaces
で使用される目的のネットワークインターフェイス名ff:ff:ff:ff:ff:ff
=ネットワークデバイスのハードウェアMACアドレスこれが完了したら再起動して、変更がスティッキーであることを確認することをお勧めします。
ファイル/etc/network/interfaces.d/setupを以下から変更して解決しました:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
に:
auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp
私の場合、この問題は私のブリッジbr0
を起動しようとすることに関連していました。私はこれをするのを忘れていました:
Sudo apt-get install bridge-utils
以前のように私のアダプターは開始できませんでした。
次の場所にある永続的/一貫性のあるネットワークインターフェイス名のudevキャッシュを削除/変更することをお勧めします。/etc/udev/rules.d/70-persistent-net.rules