追加リソース

追加リソース

予測可能なネットワーク インターフェイス名は、ハードウェアが追加または削除されても変更されないはずです。それが命名スキームの目的ではないでしょうか???

私のワイヤレス インターフェイスの名前は wlp3s0 でした。

空いている PCI スロットに ASUS Xonar DX 7.1 チャネル PCI Express x1 インターフェイス サウンド カードをインストールしたところ、ワイヤレス インターフェイス名が wlp5s0 に変更されました。

ワイヤレス カードは、サウンド カードがインストールされる前と同じ PCI スロットにあるのに、なぜインターフェイス名が変わるのでしょうか?

マザーボードは GIGABYTE GA-970A-UD3、ワイヤレス カードは ASUS PCE-N15 です。システムは標準カーネルの Arch Linux を実行しています。

このシナリオでインターフェース名が変更される理由について、合理的な説明を求めています。インターフェース名が変更される正当な理由がない場合、バグレポートはどこに提出すればよいですか、または誰に苦情を申し立てればよいでしょうか?

大した問題ではありません。変更する必要があったのは、netctl のネットワーク プロファイルの設定だけです。予測可能なネットワーク インターフェイス名が予測不可能な場合、その作業は完全に失敗であり、この命名スキームは役に立たないゴミだと思います。/rant

答え1

予測可能なネットワーク インターフェイス名は、ハードウェアが追加または削除されても変更されないはずです。それが命名スキームの目的ではないでしょうか???

簡単に言えば、これは新しいものではなく、予想/意図されたものです。したがって、PC メーカーに Linux のサポートを改善するよう依頼したり (BIOS)、ハードウェア メーカーに依頼したり (ドライバー) しない限り、バグを報告する必要はありません。ホットプラグ デバイスの状況を改善したり、古い命名スキームに戻したりしたい場合は、次のオプションがあります。

  • net.ifnames=0カーネルコマンドラインでネットワークデバイスの新しい命名スキームを無効にする
  • biosdevname=1BIOS が提供するインデックス番号を名前に組み込むためのカーネル コマンドラインを追加します。
  • udevカスタム名または変更された命名スキームのルールを作成または編集する
  • 固定名の割り当てを無効にして、予測できないカーネル名が再び使用されるようにします。これを行うには、udev の .link ファイルをデフォルト ポリシー用にマスクするだけです。ln -s /dev/null /etc/systemd/network/99-default.link

systemdおよび/またはを使用している場合udev、「予測可能な命名スキーム」の引数は以前とは異なる可能性があります。ただし、WiFiインターフェースの命名スキームに基づいて、を備えたシステムを使用しますsystemd

ネットワーク デバイスの「古い」命名規則を使用するには、カーネル コマンドラインに次のブート パラメータを追加してみてください。ただし、ネットワーク デバイスの命名規則を保持する以外に、これによってどのような追加効果があるかは、完全にはわかりません。

net.ifnames=0

これを に追加すると、/etc/default/grubこのパラメータの永続性と再利用が容易になります。ここでも、 を使用していると仮定しますgrub2

GRUB_CMDLINE_LINUX="net.ifnames=0"

デバイス名を決定する際にデバイス ファームウェア、場所、その他のオプションを使用する場合udev、関連するデバイスが相互にやり取りする方法に応じて、場所または他の何かが内部的に変更されている可能性があります。デバイスは WiFi アダプターとサウンドカードであるため、これはここではあまり関係ないようです。ただし、基礎となるバス構造に関連している可能性があります。デバイスは両方とも PCI スロットに接続されているため、これは関係しているようです。


追加情報フェドラドキュメント

8.1. 命名スキームの階層

デフォルトでは、systemd はサポートされている命名スキームを適用するために、次のポリシーを使用してインターフェースに名前を付けます。

  • スキーム 1: ファームウェアまたは BIOS が提供するオンボード デバイスのインデックス番号 (例: eno1) を組み込んだ名前は、ファームウェアまたは BIOS からの情報が適用可能で利用可能な場合に適用され、そうでない場合はスキーム 2 にフォールバックします。

  • スキーム 2: ファームウェアまたは BIOS からの情報が適用可能で利用可能な場合は、ファームウェアまたは BIOS が提供する PCI Express ホットプラグ スロット インデックス番号 (例: ens1) を組み込んだ名前が適用され、そうでない場合はスキーム 3 に戻ります。

  • スキーム 3: ハードウェアのコネクタの物理的な場所を組み込んだ名前 (例: enp2s0) が該当する場合に適用されます。それ以外の場合は、スキーム 5 に直接戻ります。

  • スキーム 4: インターフェイスの MAC アドレスを組み込んだ名前 (例: enx78e7d1ea46da) はデフォルトでは使用されませんが、ユーザーが選択した場合は使用できます。

  • スキーム 5: 他のすべての方法が失敗した場合に、従来の予測不可能なカーネル命名スキームが使用されます (例: eth0)。

このポリシー、つまり上記で概説した手順はデフォルトです。システムで biosdevname が有効になっている場合は、それが使用されます。biosdevname を有効にするにbiosdevname=1は、Dell システムの場合を除き、コマンドライン パラメータとして渡す必要があることに注意してください。Dell システムの場合には、biosdevname がインストールされている限り、デフォルトで使用されます。ユーザーがudevカーネル デバイスの名前を変更するルールを追加した場合、それらのルールが優先されます。


追加リソース

関連情報