Смены имени сетевого интерфейса после обновления 15,10 - udev изменения

Я обновил виртуальную машину рабочий сервер Ubuntu 15.04 к справедливым выпущенным новым стабильным 15.10.

Не было никаких очевидных проблем, но после того, как перезагружают машину, потерял ее сетевое соединение. lspci показал корректную карту и lsmod доказанный, что драйвер был загружен.

Подсказки о редактировании или удалении /etc/udev/rules.d/70-persistent-net.rules не успешно выполнялся (все еще никакая сеть, никакой новый файл), известное /lib/udev/write_net_rules даже не существовал.

У меня нет большого количества подсказки относительно udev и systemd, таким образом, мне потребовалось некоторое время, чтобы найти в/sys/class/net что название сетевого интерфейса измененный. Это стало ens32, который был переименован от eth0. После того, как я изменился /etc/network/interfaces сетевая связь была включена снова.

Но - почему это происходит вообще? И если это происходит, разве файл интерфейсов не должен быть обновлен автоматически?

Теперь, когда я удалил карту виртуальной сети и создал другой, eth0 становится eno16777728, который не является так, uhm, хорош.

Должен это поведение (по крайней мере, то из процедуры обновления) сообщаться как ошибка?

Кроме того, /etc/udev/rules.d/70-persistent-net.rules устаревший теперь? И (хотя только частично связанный) что относительно /etc/udev/rules.d/70-persistent-cd.rules?)

Редактирование - дополнительный вопрос (после того, как принятый ответ) зависимость /etc/network/interfaces от фактического имени интерфейса беспокоил меня. Я попробовал новую установку *человечность в другой виртуальной машине. К моему удивлению, /etc/network/interfaces содержавший ссылка на устройство закольцовывания только. Однако с моим исходным VM это изменение предотвратило сеть для подъема. Таким образом, что еще я должен изменить?

Редактирование ну, от другого теста, я нашел, что новый Сервер Ubuntu имеет сетевую карту в /etc/network/interfaces, в то время как XUbuntu не имеет. Возможно, это использует network-manager или что-то еще.

55
задан 11 September 2018 в 02:17

6 ответов

В Ubuntu 15.10 (Коварный Оборотень), начиная с systemd/udev автоматически присвоит предсказуемые имена интерфейса устойчивой сети для всего локального Ethernet, Wlan и интерфейсов Wwan (источник).

Следующие различные схемы именования для сетевых интерфейсов теперь поддерживаются udev исходно:

  1. Имена, включающие Встроенное микропрограммное обеспечение/BIOS, обеспечили индексы для встроенных устройств (пример: eno1)
  2. Имена, включающие Встроенное микропрограммное обеспечение/BIOS, обеспечили индексы слота замены в горячем режиме PCI Express (пример: ens1)
  3. Имена, включающие физическое / географическое положение коннектора аппаратных средств (пример: enp2s0)
  4. Имена, включающие MAC-адрес интерфейсов (пример: enx78e7d1ea46da)
  5. Классический, непредсказуемый собственный ядром ethX, называющий (пример: eth0) - устаревший

По умолчанию systemd теперь назовет интерфейсы после политики:

  1. если та информация от встроенного микропрограммного обеспечения применима и доступна, отступая к
  2. если та информация от встроенного микропрограммного обеспечения применима и доступна, отступая к
  3. если применимо, отступание к
  4. не используется по умолчанию, но доступен, если пользователь выбирает так.
  5. во всех других случаях.

Как Вы отключаете это?

У Вас в основном есть следующие опции:

  • Создайте свою собственную ручную схему именования, например, путем именования интерфейсов internet0, или lan0. Поскольку это создает Ваш собственный файл правил udev и установило свойство имени для устройств. Удостоверьтесь, что заказали его перед файлом политики по умолчанию, например, путем именования его /etc/udev/rules.d/70-my-net-names.rules
  • Измените файл политики по умолчанию, для выбора другой схемы именования, например, для именования всех имен интерфейса после их MAC-адреса по умолчанию: cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules, затем отредактируйте файл там и измените строки по мере необходимости.
  • Передайте net.ifnames=0 на командной строке ядра.
56
ответ дан 22 November 2019 в 23:45

Существует более легкий путь, сказанный ArchWiki Beginnersguide.

Первый получают Ваш MAC-адрес устройств

$ ip link

выходное шоу подобным

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000     
          link/ether 20:68:9d:xx:xx:xx brd ff:ff:ff:ff:ff:ff

, Ваш MAC-адрес устройств

20:68:9d:xx:xx:xx

, Просто создают файл (просто открытый с sudo правами в текстовом редакторе)

$ nano /etc/udev/rules.d/10-network.rules    

, Добавляет следующая строка

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="aa:bb:cc:dd:ee:ff", NAME="net1"

имя Замены с Вашим требуемым именем и aa:bb:cc:dd:ee:ff с Вашим MAC-адресом устройств.

Теперь просто перезагружают Ваш компьютер, и имя устройства должно было измениться.

39
ответ дан 22 November 2019 в 23:45

Попробуйте это: Редактирование Ваш /etc/default/grub. Измените строку от

GRUB_CMDLINE_LINUX=""

к

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

и, наконец работайте:

# update-grub

как корень и перезагрузка Ваша система.

16
ответ дан 22 November 2019 в 23:45

Я знаю, что это может быть немного поздно, и добавление 10-network.rules, кажется, помогло, но не полностью. Я должен был добавить название ядра устройства для переименования. Вот то, как я заставил/etc/udev/rules.d/10-network.rules работать...

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="MAC:ADDRESS",KERNEL=="enp4s8", NAME="eth0"

и изменение ЯДРО =="" к тому, что Ваше ядро называет устройством, когда оно загружается.

HTH

K.C.

5
ответ дан 22 November 2019 в 23:45

Если у Вас есть новая установка

apt-get remove biosdevname

Тогда

update-initramfs -u

Проверка, чтобы видеть, есть ли у Вас udev сетевой файл правил. Если так, удалите его.

rm /etc/udev/rules.d/70-persistent-net.rules

Теперь редактирование/etc/network/interfaces, переименуйте интерфейсы к eth0, eth1... и т.д.

Перезагрузка

3
ответ дан 22 November 2019 в 23:45

Я получил эту работу путем создания файла:

root@odroid:~# cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth0", NAME="eth0"
2
ответ дан 22 November 2019 в 23:45

Другие вопросы по тегам:

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