Як я можу змінити стандартний мережевий пристрій "ens33" на старий "eth0" у Fedora 19?


22

Щойно я встановив Fedora 19 на робочу станцію VMware 9. Мережевим пристроєм за замовчуванням є "ens33" замість "eth0" на RHEL.

Причиною використання "eth0" є те, що ліцензійний компонент одного з наших продуктів повинен бути пов'язаний з "eth0".

Є кілька публікацій, які обговорюють подібні проблеми, більшість з яких стосується старих ОС. Я не знайшов такого, який би точно відповідав моїй ситуації.


Fedora 19 суттєво відрізняється від RHEL 5.5, оскільки в питанні це було позначено як дублікат , а відповідь не однаковий.
mattdm

Відповіді:


31

Найпростіший спосіб відновити старий спосіб перейменувати інтерфейси Ethernet в ядро ​​/ модулі / udev - це надання цих параметрів ядра Fedora 19 :

  1. net.ifnames = 0
  2. biosdevname = 0

Для цього виконайте наступні дії:

  1. Редагувати / etc / default / grub
  2. В кінці рядка GRUB_CMDLINE_LINUX додайте " net.ifnames = 0 biosdevname = 0 "
  3. Збережіть файл
  4. Введіть " grub2-mkconfig -o /boot/grub2/grub.cfg "
  5. Введіть " перезавантажити "

Якщо ви не встановили ці параметри під час встановлення, вам, ймовірно, потрібно буде відрегулювати та / або перейменувати файли інтерфейсу за адресою / etc / sysconfig / network-script / ifcfg- * .

До Fedora 18 було достатньо лише biosdevname = 0 .

Як приклад, у певній машині, у вичерпному дослідженні, я отримав:

-Ні параметрів: NIC ідентифіковано як " enp5s2 ".
-Parameter biosdevname = 0: NIC, ідентифікований як " enp5s2 ".
-Параметр net.ifnames = 0: NIC ідентифікований як " em1 ".
-Параметр net.ifnames = 0 AND biosdevname = 0: NIC, ідентифікований як " eth0 ".


Дуже дякую за детальні кроки! Все, що мені надав MathWorks, стосувалося значно старших версій Fedora.
Доктор Ватсон

@ dr-watson: До Fedora 14, etX було типовим іменем для інтерфейсів Ethernet. У Fedora 15 було реалізовано послідовне іменування мережевих пристроїв . Від Fedora 15 до 18 просто biosdevname = 0 було достатньо, щоб продовжувати називати ethX. Будь ласка.
Гільссон

3
Це рішення також працює на Fedora 20. Дякую.
heuristicus

Також працював над Fedora 21
Ерік Грунцке

ubuntu 14.04 також.
sjas

9

Це можна зробити за допомогою правила 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

Дякую за приклад. Для інших варто відзначити, що вони /sys/class/net/ens33можуть бути різними залежно від значень, повернутих біосом та знайдених у виході lspci -vv | grep -A25 Ethernet. Крім того, якщо намір використовувати eth0як ім'я, то може бути доцільніше просто вказати прапори завантажувача ядра, щоб відключити "передбачуване" іменування пристрою.
Марк Едінгтон

7

У Fedora 20 речі, здається, дещо змінилися.

1) аргументи ядра grub
Так, і "net.ifnames = 0", і "biodevame = 0" здаються необхідними.

2) / etc / sysconfig / network-script / ifcfg-ethX
Так, це теж потрібно.

3) /etc/udev/rules.d/60-net.rules
Якщо у вас є декілька інтерфейсів і ви хочете контролювати іменування кожного пристрою, а не дозволяти ядру робити по-своєму, /etc/udev/rules.d/60 -net.rules здається необхідним, щоб перекрити /usr/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здається непотрібним.


1
Дякуємо, що розбили різні фактори. Здається, у вас помилка друку в пункті №1, має бути "biosdevname", а не "biodevame".
Марк Едінгтон

2

У Fedora 19 це відрізняється, ніж у попередніх випусках. Можна вирішити дві речі:

  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

Хоча прийнята відповідь дає рішення, яке працює, воно не пояснює, для чого ens33використовується. Посилання, наведені нижче, містять інформацію про те, чому мережевий пристрій названо чимось іншим, eth0і як його зараз називають у варіантах RHEL 7:

Варто також зазначити, що такі значення, як "33", з'являються у ens33значенні слота адаптера PCI, поверненого BIOS. Використовуйте цю команду, щоб побачити, які значення у вашій системі вказано для "Фізичний слот":

lspci -vv | grep -A20 Ethernet

Додаткову інформацію про частину імені "ens" можна знайти у вихідному коді udev .


1

Для 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


Чому мережевий пристрій повністю зникає з системи, якщо я застосував цей метод до Fedora 26? ifconfigтільки повертається loі virbr0, але спочатку enp4s0його більше немає.
ajeh

Щоб відповісти собі: потрібно бути обережним, щоб змінити всі мережеві сценарії, які будуть використовуватися при ethNназиванні, щоб використовувати цю конвенцію. Я залишив enp4s0один сценарій.
ajeh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.