Я обновил виртуальную машину, на которой запущен сервер 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 или что-то еще.
Существует более простой способ, описанный 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-адресом вашего устройства.
Теперь просто перезагрузите компьютер и имя устройства должно быть изменено .
Попробуйте следующее: отредактируйте /etc/default/grub. Измените строку из
GRUB_CMDLINE_LINUX=""
на
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
и, наконец, запустите:
# update-grub
с правами root и перезагрузите вашу систему.
Я знаю, что это может быть немного поздно, и добавление 10-network.rules, похоже, помогло, но не полностью. Мне нужно было добавить имя ядра для переименования. Вот как я получил /etc/udev/rules.d/10-network.rules, чтобы работать ...
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="MAC:ADDRESS",KERNEL=="enp4s8", NAME="eth0"
и изменить KERNEL == "" на то, что ваше ядро называет устройство когда он загружается.
KC
Если у вас есть новая установка
apt-get remove biosdevname
Затем
update-initramfs -u
Проверьте, есть ли удэв чистый файл рулей. Если это так, удалите его.
rm /etc/udev/rules.d/70-persistent-net.rules
Теперь отредактируйте / etc / network / interfaces, переименуйте интерфейсы в eth0, eth1, ... и т. Д.
Перезагрузите
Я получил эту работу, создав файл:
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"