Я обновил виртуальную машину рабочий сервер 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
или что-то еще.
В Ubuntu 15.10 (Коварный Оборотень), начиная с systemd/udev автоматически присвоит предсказуемые имена интерфейса устойчивой сети для всего локального Ethernet, Wlan и интерфейсов Wwan (источник).
Следующие различные схемы именования для сетевых интерфейсов теперь поддерживаются udev исходно:
eno1
)ens1
)enp2s0
)enx78e7d1ea46da
)eth0
) - устаревшийПо умолчанию systemd теперь назовет интерфейсы после политики:
Как Вы отключаете это?
У Вас в основном есть следующие опции:
/etc/udev/rules.d/70-my-net-names.rules
cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules
, затем отредактируйте файл там и измените строки по мере необходимости.net.ifnames=0
на командной строке ядра.Существует более легкий путь, сказанный 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-адресом устройств.
Теперь просто перезагружают Ваш компьютер, и имя устройства должно было измениться.
Попробуйте это: Редактирование Ваш /etc/default/grub
. Измените строку от
GRUB_CMDLINE_LINUX=""
к
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
и, наконец работайте:
# update-grub
как корень и перезагрузка Ваша система.
Я знаю, что это может быть немного поздно, и добавление 10-network.rules, кажется, помогло, но не полностью. Я должен был добавить название ядра устройства для переименования. Вот то, как я заставил/etc/udev/rules.d/10-network.rules работать...
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="MAC:ADDRESS",KERNEL=="enp4s8", NAME="eth0"
и изменение ЯДРО =="" к тому, что Ваше ядро называет устройством, когда оно загружается.
K.C.
Если у Вас есть новая установка
apt-get remove biosdevname
Тогда
update-initramfs -u
Проверка, чтобы видеть, есть ли у Вас udev сетевой файл правил. Если так, удалите его.
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"