web-dev-qa-db-ja.com

Fedora 19でデフォルトの「ens33」ネットワークデバイスを古い「eth0」に変更するにはどうすればよいですか?

VMwareワークステーション9にFedora 19をインストールしました。デフォルトのネットワークデバイスは、RHELの「eth0」ではなく「ens33」です。

私が「eth0」を使用しなければならない理由は、弊社製品の1つのライセンスコンポーネントを「eth0」とリンクする必要があるためです。

同様の問題について議論している投稿がいくつかあり、そのほとんどは古いOSに関するものです。私の状況に完全に一致するものは見つかりませんでした。

22
YM Jiang

Kernel/modules/udevがイーサネットインターフェイスの名前を変更する古い方法を復元する最も簡単な方法は、これらのカーネルパラメータをFedora 19に指定することです。

  1. net.ifnames =
  2. biosdevname =

これを行うには、次の手順に従います。

  1. 編集/ etc/default/grub
  2. GRUB_CMDLINE_LINUXの最後に "net.ifnames = 0 biosdevname ="を追加します
  3. ファイルを保存します
  4. grub2-mkconfig -o /boot/grub2/grub.cfg」と入力します
  5. reboot」と入力します

インストール中にこれらのパラメーターを指定しなかった場合は、おそらく/ etc/sysconfig/network-scripts/ifcfg-*でインターフェースファイルを調整または名前変更する必要があります。

Fedora 18まではbiosdevname =で十分でした。

例として、あるマシンでの徹底的な研究で、私は次のことを行いました:

-パラメーターなし:NIC "enp5s2"として識別されます。
-パラメータbiosdevname = 0:NIC "enp5s2"として識別されます。
-パラメータnet.ifnames = 0:NIC "em1"として識別されます。
-パラメータnet.ifnames = 0 AND biosdevname = 0:NIC "eth"として識別されます。

31
Guilsson

これは、次のようにudevルールを使用して実行できます。

cat > /etc/udev/rules.d/99-rename-to-eth0.rules << EOF
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$(cat /sys/class/net/ens33/address)", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
EOF
9
Chris Down

Fedora 20では、状況が少し変わったようです。

1)grubカーネル引数
はい、「net.ifnames = 0」と「biodevame = 0」の両方が必要なようです。

2)/ etc/sysconfig/network-scripts/ifcfg-ethX
はい、これらも必要です。

3)/etc/udev/rules.d/60-net.rules
複数のインターフェイスがあり、カーネルに独自の方法でさせるのではなく、各デバイスの名前を制御したい場合、/ usr /をオーバーライドするために/etc/udev/rules.d/60-net.rulesが必要であるようです以下のようなlib/udev/rules.d/60-net.rules。

# PCI device 0x1011:0x0019 (tulip) {SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c0:f0:4c:f5:78", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8168 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="60:a4:4c:b5:26:48", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

4)yum remove biosdevnameは不要のようです。

7
hiro

受け入れられた回答は機能する解決策を提供しますが、ens33が使用されている理由を説明していません。以下のリンクは、ネットワークデバイスにeth0以外の名前が付けられた理由と、RHEL 7バリアントでの名前の付け方の背景を示しています。

また、ens33に表示される「33」などの値は、BIOSから返されるPCIアダプタースロットの値から取得されることにも注意してください。このコマンドを使用して、システムが「物理スロット」にリストした値を確認します。

lspci -vv | grep -A20 Ethernet

名前の「ens」部分に関する追加情報は、 devソースコード にあります。

2
Mark Edington

これは、以前のリリースとはFedora 19で異なります。対処すべき点が2つあります。

  1. Biosdevnameがインストールされている場合は削除します。 (yum remove biosdevname、または-biosdevnameキックスタート。
  2. Udevルールを無効にします:ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

詳細は http://fedoraproject.org/wiki/Features/SystemdPredictableNetworkInterfaceNames にあります。

2
mattdm

Fedora-24の場合:

  1. 編集/etc/default/grub

  2. の終わりに GRUB_CMDLINE_LINUX行追加net.ifnames=0 biosdevname=0

  3. ファイルを保存します

  4. タイプ

    grub2-mkconfig -o /boot/grub2/grub.cfg"
    

    またはタイプ

    grub2-mkconfig -o /boot/efi/EFI/Fedora/grub.cfg
    
  5. タイプreboot

1
Hafiz