Имя сетевого интерфейса изменяется после обновления до 15.10 - изменения udev

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

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

Советы по редактированию или удалению /etc/udev/rules.d/70-persistent-net.rules не удались (все еще нет сети, нет нового файла), знаменитый [ f4] даже не существовало.

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

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

Теперь, когда я удалил виртуальную сетевую карту и создал другую, eth0 становится eno16777728, что не так, uhm, nice.

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

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

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

Изменить - дополнительный вопрос (после принятого ответа) Ну, из другого теста я обнаружил, что новый сервер Ubuntu имеет карту сетевого интерфейса в /etc/network/interfaces, а у XUbuntu этого нет. Возможно, он использует network-manager или что-то еще.

1
задан 27 October 2015 в 16:27

5 ответов

Существует более простой способ, описанный Archiiki 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    

Добавьте следующую строку [!d6 ]

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

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

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

33
ответ дан 23 May 2018 в 16:26

Попробуйте следующее: отредактируйте /etc/default/grub. Измените строку из

GRUB_CMDLINE_LINUX=""

на

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

и, наконец, запустите:

# update-grub

с правами root и перезагрузите вашу систему.

14
ответ дан 23 May 2018 в 16:26
  • 1
    Это также работает для netboot. Мне удалось добавить следующее в оператор append в файле syslinux.cfg: append (...) net.ifnames=0 (...) – carestad 16 June 2016 в 15:39
  • 2
    Это решение отлично работает и в Ubuntu 16.04! – Nullldata 7 July 2016 в 18:53
  • 3
    Мне пришлось добавить параметры GRUB выше (net.ifnames = 0) и удалить правила переименования udev, чтобы заставить vlans работать, но теперь все в порядке. Спасибо за решение. – Albert Veli 13 January 2017 в 14:19
  • 4
    СПАСИБО. Я устанавливаю Ubuntu Server 16.04 на безголовый сервер и понятия не имею, какое имя он давал сетевому интерфейсу, и, как следствие, сервер не был в сети. Я сделал это и убедился, что / etc / network / interfaces имеет " eth0 " в качестве имени интерфейса и вернуть диск на сервер. Сейчас он в сети. Инструкции по установке Ubuntu на Acer Aspire H340 устарели, поскольку это касается, поэтому я буду писать что-то в надежде, что другие, пытающиеся сделать то же самое, не будут тратить столько времени, сколько я сделал. – MetalMikester 10 June 2017 в 15:19

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

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

и изменить KERNEL == "" на то, что ваше ядро ​​называет устройство когда он загружается.

HTH

KC

3
ответ дан 23 May 2018 в 16:26

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

apt-get remove biosdevname

Затем

update-initramfs -u

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

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

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

Перезагрузите

2
ответ дан 23 May 2018 в 16:26

Я получил эту работу, создав файл:

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"
0
ответ дан 23 May 2018 в 16:26

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

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