Ubuntuサーバー15.04を実行している仮想マシンを、リリースしたばかりの新しい安定版15.10に更新しました。
明らかな問題はありませんでしたが、再起動後、マシンはネットワーク接続を失いました。 lspci
は正しいカードを示し、lsmod
はドライバーがロードされたことを証明しました。
/etc/udev/rules.d/70-persistent-net.rules
の編集または削除に関するヒントは成功しませんでした(まだネットワークも新しいファイルもありません)。有名な/lib/udev/write_net_rules
も存在しませんでした。
私はudevとsystemdに関してあまり手掛かりを持っていないので、ネットワークインターフェース名が変更されたことを/ sys/class/netで見つけるのに時間がかかりました。 ens32
になり、eth0
から名前が変更されました。 /etc/network/interfaces
を変更した後、ネットワーク通信が再び有効になりました。
しかし、なぜこれが起こるのでしょうか?そして、それが起こった場合、interfacesファイルは自動的に更新されるべきではありませんか?
仮想ネットワークカードを削除して別のカードを作成したので、eth0
はeno16777728
になりますが、そうではありません。
この動作(少なくともアップグレード手順の動作)をバグとして報告する必要がありますか?
さらに、/etc/udev/rules.d/70-persistent-net.rules
は廃止されましたか?そして(部分的にしか関連していませんが)/etc/udev/rules.d/70-persistent-cd.rules
はどうですか?)
編集-追加の質問(受け入れられた回答の後)実際のインターフェース名からの/etc/network/interfaces
の依存関係が私を悩ませました。別の仮想マシンで* ubuntuの新規インストールを試みました。驚いたことに、/etc/network/interfaces
にはループバックデバイスのみへの参照が含まれていました。ただし、私の元のVMでは、この変更によりネットワークが起動しませんでした。それで、他に何を変える必要がありますか?
編集さて、別のテストから、新しいUbuntuServerhasネットワークインターフェイスカード/etc/network/interfaces
にありますが、XUbuntuにはありません。 network-manager
または何か他のものを使用している可能性があります。
Ubuntu 15.10(Wily Werewolf)では、systemd/udevから開始して、すべてのローカルイーサネット、Wlan、およびWwanインターフェイスに予測可能な安定したネットワークインターフェイス名を自動的に割り当てます( source )。
ネットワークインターフェースの次の異なる命名スキームが、udevによってネイティブにサポートされるようになりました。
eno1
)ens1
)enp2s0
)enx78e7d1ea46da
)eth0
)-非推奨デフォルトでは、systemdはポリシーに従ってインターフェイスに名前を付けます。
これをどのように無効にしますか?
基本的に次のオプションがあります。
/etc/udev/rules.d/70-my-net-names.rules
などの名前を付けるなどして、デフォルトのポリシーファイルの前に必ず注文してください。cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules
、ファイルを編集し、必要に応じて行を変更します。net.ifnames=0
を渡します。ArchWiki Beginnersguide で指示される簡単な方法があります。
最初にデバイスのMACアドレスを取得する
$ ip link
のような出力ショー
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 20:68:9d:xx:xx:xx brd ff:ff:ff:ff:ff:ff
デバイスのMACアドレスは
20:68:9d:xx:xx:xx
ファイルを作成するだけです(テキストエディタでSudo権限で単に開く)
$ nano /etc/udev/rules.d/10-network.rules
次の行を追加
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="net1"
Nameを希望の名前に、aa:bb:cc:dd:ee:ffをデバイスのMACアドレスに置き換えます。
コンピューターを再起動するだけで、デバイス名が変更されます。
これを試してください:編集 your /etc/default/grub
。から行を変更
GRUB_CMDLINE_LINUX=""
に
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
そして、最後に実行します:
# update-grub
ルートとして、システムを再起動します。
私はこれが少し遅れる可能性があることを知っており、10-network.rulesの追加が助けになったようですが、完全にではありません。名前を変更するには、デバイスのカーネル名を追加する必要がありました。これが/etc/udev/rules.d/10-network.rulesを機能させる方法です...
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="MAC:ADDRESS",KERNEL=="enp4s8", NAME="eth0"
kERNEL == ""を、カーネルが起動時にデバイスに付けている名前に変更します。
K.C.
新規インストールの場合
apt-get remove biosdevname
それから
update-initramfs -u
Udev net ruelsファイルがあるかどうかを確認します。その場合は、削除します。
rm /etc/udev/rules.d/70-persistent-net.rules
/ etc/network/interfacesを編集し、インターフェースの名前をeth0、eth1、... etcに変更します。
リブート
私はファイルを作成してこれを機能させました:
root@odroid:~# cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth0", NAME="eth0"