Как переименовать сетевые интерфейсы в Linux (eth0 в eth1, eth1 в trr_lala т.д.)
В Ubuntu, а значит и в Debian (а на самом деле много где ещё, например в Gentoo) файла /dev/eth0 нету. Потому как сетевая карта устройство не символьное, но и не блочное. Сетевые устройства хранятся вот здесь: /sys/class/net
Имена сетевых интерфейсов в Linux компьютерах в последнее время стали привязываться к конкретным устройствам. Так, если вы вытащите сетевую карту из своего компьютера и вставите в него другую, интерфейс eth0 у вас пропадёт, а новая карточка будет называется eth1. При попытке сделать ifconfig eth0 up система будет говорить, что, такого устройства не существует.
В моём случае проблема получилась при клонирования виртуальной машины в VMWare ESXi. Дабы не случилось конфликта MAC адрес на клонированной машине отливался от MAC адреса в оригинальной VM.
Поскольку вся конфигурация у вас скорее всего прописана для интерфейса eth0, можно переписать конфигурацию. а можно переименовать интерфейс.
Все неприятности создаёт udev, который по умолчанию привязывает имена сетевых устройств к их MAC адресам. Например, в Debian Etch это находится в файле
/etc/udev/rules.d/z25_persistent-net.rules
Для Ubuntu:
/etc/udev/rules.d/70-persistent-net.rules
Для open suse:
/etc/udev/rules.d/30-network.rules
пример файла:
SUBSYSTEM==»net», ACTION==»add», DRIVERS==»?*», ATTR{address}==»XX:XX:XX:XX:XX:XX», ATTR{type}==»1″, KERNEL==»eth*», NAME=»eth0″
Достаточно отредактировать параметр NAME= для вашей новой сетевой карты. Можно кстати задать любое имя отличное от eth*
Некоторые дистрибы в добавок к persistent-net.rules содержат и другие .rules, которые переписывают файл persistent-net. При исправлении файла persistent.rules стоит обратить на это внимание, иначе могут появиться несколько правил именования, или ваши изменения будут перезаписаны.