Ubuntu 16.04を別のHDDにインストールしたところ、2つの奇妙な点に気付きました。
14.04(メインHDD)ではUSB Wi-Fiドングルはwlan0
として表示されますが、16.04ではwlx112233445566
として表示されます。 (リアルMACの編集)
また、hw ether
パラメーターを使用してMACアドレスを変更しても、16.04では機能しません。
lsusb
からの関連する出力は次のとおりです。
Bus 008 Device 002: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
誰もがここで何が起こっているかについていくつかの光を当てることができますか?
最近、Ubuntu(まあ、systemd
)は 予測可能なネットワークインターフェイス名 と呼ばれるものを使用するようになりました。本質的に、これは非永続的なネットワークインターフェース(つまりUSBインターフェース)の名前がenx<MAC_ADDR>
またはwlx<MAC_ACCR>
(または同様)の形式になっているため、それに依存するスクリプトとシステムspecificデバイスは、適切なデバイスをターゲットにしているという100%の信頼を持っています。
他の命名規則では、デバイスを物理的な場所または他の形式の永続的な識別値で参照できます。具体的には、これらの値のいずれかを使用して、インターフェイス名を生成できます(最適なものが選択されます)。
- ファームウェア/ BIOSを組み込んだ名前は、オンボードデバイスのインデックス番号を提供しました(例:
eno1
)- ファームウェア/ BIOSを組み込んだ名前は、PCI Expressホットプラグスロットのインデックス番号を提供します(例:
ens1
)- ハードウェアのコネクタの物理的/地理的位置を組み込んだ名前(例:
enp2s0
)- インターフェイスのMACアドレスを組み込んだ名前(例:
enx78e7d1ea46da
)- クラシックで予測不可能なカーネルネイティブethXネーミング(例:
eth0
)
過去には、インターフェイス名は「健全な」方法で割り当てられていませんでした-一部のシステムは疑似永続的な名前(このMACを持つデバイスのwlan1
)を使用し、他のシステムは先着順で割り当てました基礎。それでもこの方法を好む場合(またはsystemd
がそうしているために永続的な名前が嫌いな場合)、ブート引数にnet.ifnames=0
を追加することで逆にすることができます。
接続エディターを使用してデバイスのMACアドレスを偽造することはできますが、MACアドレスはデバイスの識別子/名前の一部であるため、hw ether
は機能しなくなります。
net.ifnames = 0をブート引数に追加することにより、逆にすることができます。
USBインターフェースの名前を変更するには十分ではありません... 80-net-setup-link.rules
をいじる必要もあります。
1)現在のルールを/etc/udev/rules.d/
ディレクトリにコピーします
Sudo cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/
2)シンボリックリンクを作成して/dev/null
に送信し、無効にします:
Sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
詳細については、このスレッドを確認してください: USB wifiインターフェース名を元に戻す方法(wlxXXXXXXXXXXXXからwlanXへ)?
設計変更と同じくらい簡単だと思いますが、数値は今では異なります。それは障害ではありません。たとえば、私のLANは14.04ではeth0でした(まだ他のいくつかのディストリビューションにあります)が、16.04ではenp0s25です。
この命名規則はパフォーマンスに影響を与えず、私はそれについて心配しません。
編集:カズウルフは、より徹底的な説明を提供します。