Как включить “Предсказуемые Названия Сетевого интерфейса”?

Учитывая "монолитный" nautre ядра Linux, ошибка в коде, который работает на самом высоком уровне полномочий ЦП, обычно наделяемого правом "привилегированный режим", может разрушить целую систему.

Существует три причины этого:

  • Такой код может непосредственно получить доступ к пространству памяти любого другого кода. Таким образом, для такого кода возможно повредить само ядро, рабочие драйверы, и т.д.
  • Такой код может непосредственно получить доступ к устройствам ввода-вывода. Довольно возможно неправильно сконфигурировать или установить неправильные биты в неправильные времена на устройствах ввода-вывода способом, который вызывает всю систему к тупику. Неошибочные драйверы устройств не позволят пользователю кодировать, делают что-либо к аппаратным средствам, которые могли вызвать нестабильную систему, но багги, бету, или плохо записанный (или неправильно), драйверы просто могли бы.
  • Код, который встречается с проблемой или исключением, которое он не может обработать, не имеет более высокого уровня для "бросания" в. Таким образом, исключение ядра разрушит систему.

Таким образом, я не знаю, до какой степени OpenGL работает в ядре или с графическим драйвером, но я надеюсь, что это помогает.

12
10.07.2017, 03:03
4 ответа

Версия 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 - текущее имя устройства.

11
27.01.2020, 19:55

, я полагаю, вы говорите о sid или jessie. Для хрипящих вы можете попробовать обратный порт 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/. Тогда вы теоретически можете переключиться между текущими "постоянными" и новыми "предсказуемыми" правилами.

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

5
27.01.2020, 19:55

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

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

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

-1
27.01.2020, 19:55

В 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 из модуль, управляющий вашей сетевой картой).

0
27.01.2020, 19:55

Теги

Похожие вопросы