Debian 10(Buster)を新しくインストールしましたが、予測可能な名前体系に問題があります。
オンボードNIC 4個と4ポートPCIe NICがあります。
命名規則はオンボードポートに適用されますが、4ポートPCIeは最初の2つのポートに適用されますが、ens2f1
最後のens2f0
2つのポートにはrename8
名前が付けられますrename9
。
私はここで記事全体を読んだ。https://wiki.debian.org/NetworkInterfaceNames
なぜそんな名前がついたのか分かります。ここに簡単な説明があります。
これらのインターフェイスの名前は/lib/udev/rules.d/80-net-setup-link.rules
ルールファイルで使用されている優先順位ID_NET_NAME
から来ているため、ID_NET_NAME_SLOT
問題は_SLOT
同じで、テストするときも同じです。以下はandの出力です。ens2f0
rename8
ens2f1
rename9
udevadm
ens2f0
rename8
# udevadm test-builtin net_id /sys/class/net/ens2f0 2>/dev/null
ID_NET_NAMING_SCHEME=v240
ID_NET_NAME_MAC=enx00151757e989
ID_OUI_FROM_DATABASE=Intel Corporate
ID_NET_NAME_PATH=enp13s0f0
ID_NET_NAME_SLOT=ens2f0
# udevadm test-builtin net_id /sys/class/net/rename8 2>/dev/null
ID_NET_NAMING_SCHEME=v240
ID_NET_NAME_MAC=enx00151757e98b
ID_OUI_FROM_DATABASE=Intel Corporate
ID_NET_NAME_PATH=enp14s0f0
ID_NET_NAME_SLOT=ens2f0
ファイルを上書きして機能
/lib/udev/rules.d/80-net-setup-link.rules
させることができますかID_NET_NAME_PATH
?
次の行を
NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
次に変更してください。
NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
ファイルに「このファイルを編集しないでください。更新時に上書きされます」と書かれているので、このファイルをどのように上書きして新しいルールファイルをどこに配置できますか?
私はこの「スクリプト」がどのように機能するかを理解していると確信しています。
この行では、まず同じであることをNAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
確認し、次に同じでないことを確認し、優先順位に従って新しい値を設定します。NAME
""
ENV{ID_NET_NAME}
""
NAME
ID_NET_NAME
私が持っているファイル全体は次のとおりです(すべての人に同じでなければならないことを知っていますが、明確にするために投稿しています)。
# do not edit this file, it will be overwritten on update
SUBSYSTEM!="net", GOTO="net_setup_link_end"
IMPORT{builtin}="path_id"
ACTION!="add", GOTO="net_setup_link_end"
IMPORT{builtin}="net_setup_link"
NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
LABEL="net_setup_link_end"
- これに変えてもいいですか?
SUBSYSTEM!="net", GOTO="net_setup_link_end"
IMPORT{builtin}="path_id"
ACTION!="add", GOTO="net_setup_link_end"
IMPORT{builtin}="net_setup_link"
NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
NAME=="", ENV{ID_NET_NAME_MAC}!="", NAME="$env{ID_NET_NAME_MAC}"
NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
LABEL="net_setup_link_end"
ベストアンサー1
はい、単純な優先順位
ID_NET_NAME_PATH
ではなく専用の目的に変更できます。ID_NET_NAME
カバレッジファイルは次の場所にあります。
/etc/udev/rules.d/80-net-setup-link.rules
はい、スクリプトは機能します(自己テスト)。
新しい質問に移動しました:udev予測可能な名前スキームルールにネットワークインターフェース名がすでに存在していることを確認しますか?