Як увімкнути "Передбачувані імена мережевого інтерфейсу"?


12

Я вирішив перевірити, з яким іменем закінчиться мій ethernet-пристрій, але, всупереч іншим дистрибутивам , Debian, схоже, не активував цю зміну (або стримує її?),

  • Збережіть стару стійку схему іменування мережевого інтерфейсу і введіть нову підключення через net.ifnames = 1 у командному рядку ядра.

Проблема полягає в тому, що мені потрібно редагувати рядки ядра grub, і це здається зайвим для чогось, що можна відключити, змінивши файл . Чи є інший спосіб?


Можливо, ви хочете перевірити це посилання: science.uva.nl/research/air/wiki/LogicalInterfaceNames Ви можете знайти такі роботи, як nameif та оновлення файлу запуску ... @Braiam
user1527227

@ user1527227 саме цього я не хочу робити.
Брайам

Для jesse вам потрібно буде змінити лише один рядок у / etc / default / grub. На хрипі, насправді немає можливості включити цей AFAIK. Мені дуже подобається нова схема іменування, тому я встановлюю власні правила udev на своїх хрипких серверах.
GnP

Відповіді:


11

Версія 220-7 на Debian випустила патч, який зробив цю опцію:

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.

Це відбулося з пропозиції в списку debian-devel . Системи, які використовували старі імена, не будуть перейменовані, поки користувач не переміститься. Прочитайте README.Debian для посібника з міграції.

Нове ім'я можна передбачити, використовуючи:

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_

де eth0поточна назва пристрою.


5

Я припускаю, що ви говорите про Сіда чи Джессі. Для хрипів, можливо, ви захочете спробувати backport v204 .

Тут можуть бути деякі помилки: як видно з правил udev тут (для v208, який зараз знаходиться в sid), розробники udev явно вибрали cmdline ядра як стандартний спосіб включення цієї функціональності.
Я не бачу нічого , по суті свого «надмірності» з використанням обраного інтерфейсу для нього і просто покласти GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"в /etc/default/grub. Чи є якийсь конкретний побічний ефект, який ви хвилюєте?

Той факт, що відповідь, яку ви згадали, пропонує видалити файл, щоб його відключити, це хак (принаймні, у випадку з Debian), який би не працював у довгостроковій перспективі, оскільки в debian ці правила зберігаються /lib/udev/rules.d, тобто: вони будуть перезаписані в оновлення (крім того, вимкнення функціональності шляхом ефективного видалення файлу, який описує це має певний сенс, але включення принципово іншого, тому я думаю, що це несправедливе порівняння).

OTOH, якщо у вас є конкретна причина не використовувати cmdline ядра, ви можете повідомити про помилку в пакеті debian і дозволити користувачеві переміщувати ці правила /etc/udev/. Тоді ви могли б теоретично переключитися між поточними "стійкими" та новими "передбачуваними" правилами.

Але лише FYI: дивлячись на джерела для версії 209, схоже, це net.if_namesвзагалі позбулося чека, тож ваше запитання може потребувати переосмислення найближчим часом.


1
"явно вибрав cmdline ядра як стандартний спосіб включення цієї функціональності." насправді це патч Debian, який робить це , а не udev devs. Вони включали лише метод, який дозволяє відмовитись під час завантаження, Debian змінив його на включення, і ввімкнути це слід просто, оскільки це включено за замовчуванням.
Брайам

@Braiam: Приємний улов! Але я думаю, що головним аргументом залишається те, що це був вибір udev використання cmdline ядра як інтерфейсу, чи для його включення, так і відключення.
Лев Антунес

Я відредагував командний рядок ядра, щоб включити net.ifname=1параметр, але ця функція не була включена в Linux Mint. Як відомо, у яких дистрибутивах Linux є підтримка цієї функції?
sherrellbc

0

У Debian / Ubuntu, починаючи з udev 220, ви можете ввімкнути нові імена, перейменувавши цей файл:

sudo mv -T /etc/udev/rules.d/70-persistent-net.rules{,.old}

За пропозицією /usr/share/doc/udev/README.Debian.gz, далі

sudo update-initramfs -u

Потім перезавантажте (або rmmod + insmod модуля, що веде вашу мережеву карту).


-1

Ubuntu 15.10 використовує, biosdevnameщо не забезпечує передбачувані імена мережевого інтерфейсу. Навіть якщо ви видалите його (apt-get remove biosdevname) та відредагуєте grub ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1") та стійкі правила, ви все одно не отримаєте передбачуваних взаємодій з мережею.

Основна причина, здається, зворотна сумісність. Я протестував це лише зараз із двома мобільними широкосмуговими USB-пристроями, а ім'я мережевого інтерфейсу неузгоджено названо на кожному завантажувальному пристрої (наприклад, перший інтерфейс usb0, другий usb1 та навпаки). Основна причина, здається, - зворотна сумісність.

На панелі запуску є деякі помилки (наприклад, це ), але коротка відповідь полягає в тому, що якщо ви шукаєте передбачувані імена мережевого інтерфейсу, вам слід шукати інший дистрибутив.


Зрозумів! Я фактично оновлю відповідь так, як думаю, що отримав.
Ентоні Хант

@roalma Я оновив відповідь! Вибачте за раніше "коментар" повідомлення.
Ентоні Хант

Debian підтримує цю функцію за замовчуванням, починаючи з версії 220-7, коли вони скинули патч, який визначає поведінку. Тепер нові встановлені системи за замовчуванням використовуватимуть передбачувані імена.
Брайам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.