いいえ、これは 16.04でWi-Fiアダプターがwlan0として表示されないのはなぜですか? の重複ではありません。これはeth0
命名を復元する方法を説明しますが、特定のインターフェイスに個別に名前を付けます。
MAC一致に基づいて割り当てたくありません。 必要なのは、USBパスに基づいて名前を割り当てることです。
USBネットワークアダプターを差し込むと、Ubuntu 17.04では、encx000000000000
など、MACに基づいてネットワークインターフェイス名が割り当てられます。次に、ID_PATH = pci-000:02:03.0-usb-0:1:1.0
に基づいて、わかりやすい名前に名前を変更したいと思います。特に、IはMACアドレスに基づいて一致したくない。理由は、インターフェースの交換後はすべて故障するが、誰かが単にネットワークインターフェースハードウェアを交換して新しいハードウェアが古いハードウェアと同じ場所にある場合、システムはITおよび再構成のサポートを必要とせずに押し込めるということです。
そこで、ファイル/etc/systemd/network/50-my-island.link
を作成しました。
[Match]
Path=pci-000:02:03.0-usb-0:1:1.0
[Link]
Name=island0
残念ながら、名前は割り当てられません。 udevadm info
を使用すると、ID_NET_NAME=island0
セットがあることがわかりますが、適用されません。 NamePolicy=
セクションの下でNamePolicy=name
または[Link]
を試しても、助けにはなりません。
道に迷いました! .linkファイルの名前をUSBネットワークアダプターに割り当てるにはどうすればよいですか?これは、いくつかのudevルールに頼らずに可能ですか?私の場合、.linkファイルが機能しないように見えるのに、なぜ.linkファイルがまったくないのですか?どこでエラーを犯しましたか?
だから私は最終的に実際に何が起こっているのかを自分自身で考え出した。
残念ながら、USB-basedネットワークインターフェイスの名前を変更できないという問題は、Ubuntu/Debian(およびRaspbian)のudevルール/lib/udev/rules.d/73-usb-net-by-mac.rules
が原因です。その原因は次のとおりです。
ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \
ATTR{address}=="?[014589cd]:*", \
TEST!="/etc/udev/rules.d/80-net-setup-link.rules", \
TEST!="/etc/systemd/network/99-default.link", \
IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"
この特定のルールが/etc
/udev/rules.d/80-net-setup-link.rules
が存在することを確認する方法に注意してください。そうでない場合、NAME
はMAC48ベースの名前に設定され、後のデフォルトのインストール規則/lib
/udev/rules.d/80-net-setup-link.rules
はNAME
を割り当てる機会を得られません。今それは悲しいです。再び。
ユーザー定義名をUSBネットワークインターフェイスに割り当てる機能を有効にするには、/etc
/udev/rules.d/80-net-setup-link.rules
が必要です。これは、73-usb-net-by-mac.rules
が以前にチェックするルールセットであるためです。 NAME
を割り当てます。
これは、ユーザーが割り当てたネットワークインターフェイス名がもはや無視されないようにするために、/etc/udev/rules.d/80-net-setup-link.rules
から/lib/udev/rules.d/80-net-setup-link.rules
への単純なリンクが必要であることを意味します。
Sudo ln -s /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules
リブート。できた.
73-usb-net-by-mac.rules
の設定方法の副作用により、eth0
ファイルで明示的に名前が指定されていない限り、すべてのUSBベースのネットワークインターフェースが.link
などの「古い」命名を想定することに注意してください。
明示的に名前が付けられていないすべてのUSBネットワークアダプターにMACベースの名前を付けることは問題ないため、ルールがそのまま記述されている理由はわかりません。考え直して...no、すべてのUSBネットワークドングルにラベルを付けて絶えずラベルを付けない限り、MAC48ベースの名前を使用しても意味がありませんそれらを入れ替えます。しかし、おそらくMACベースの名前は、実際には意味があるドッキングステーションで使用されます...?
このスレッド および特にこの段落によると:
カスタムネットインターフェイスの命名...ルールファイルの名前には、/ lib/udev/rules.d/80-net-setup-link.rulesの前に実行されるように、「80」より小さいプレフィックスが必要です。 「75」より大きいプレフィックス。75-net-description.rulesの後に実行されるため、ID_VENDORおよび類似のプロパティで一致を使用できます。 ...
このファイルを作成しました:/etc/udev/rules.d/76-netnames.rules
このコンテンツで
# USB device by path
# get ID_PATH if not present yet
ENV{ID_PATH}=="", IMPORT{builtin}="path_id"
SUBSYSTEM=="net", ACTION=="add", ENV{ID_PATH}=="*-usb-0:1.*", NAME="eth%n"
回避策を提供しなくても、正常に機能しています。
Debianのpreseed.cfgでこのファイルを作成し、Debianの完全自動インストールでターゲットネットワーク構成を設定しました。
Intel NUCでこれを行うと、私の内部NICはDebian 9.5(ストレッチ)によってeno1
という名前になりました。