Я изменил имя моего eth1
интерфейс к eth0
. Как спросить udev
теперь перечитывать конфигурацию?
service udev restart
и
udevadm control --reload-rules
не помогать. Так есть ли какой-либо допустимый путь кроме перезагрузки? (да, перезагрузка помогает с этой проблемой),
да, я знаю, что должен предварительно ожидать команды с sudo
, но любой я ничего не отправил выше изменений в ifconfig -a
вывод: Я все еще вижу eth1
, нет eth0
.
Я просто изменился NAME
свойство строки udev-правила. Не знайте причину этого, чтобы быть неэффективными.
Нет никакой ошибки в выполнении обеих команд, которые я отправил выше, но они просто не меняют фактическое имя интерфейса в ifconfig -a
вывод. Если я выполняю перезагрузку - затем, имя интерфейса изменяется как ожидалось.
В целях разработки я пишу некоторый сценарий, который клонирует (VirtualBox-управляемые) виртуальные машины и задает их в некотором роде.
Таким образом, я выполняю команду для клонирования VM, запустите его и пока сетевой интерфейс, MAC изменяется - udev
добавляет второе правило объединить персистентные правила в сеть. Прямо после того, как машина загружается впервые существует 2 правила:
eth0
, который не существует, пока это существовало в исходном образе виртуальной машины MACeth1
, который существует, но вся конфигурация во всех файлах относится к eth0
, таким образом, это не настолько хорошо для меняТак я с sed
удалите строку с eth0
(это является устаревшим и бесполезным в клонированном изображении), и замена eth1
с eth0
. Таким образом, в настоящее время у меня есть действительное персистентное правило, но там тихо eth1
в /dev
.
Проблема: Я не хочу перезагружать машину (она займет время, который не является хорошей вещью на building-VM-stage), и просто хотят иметь мой /dev
восстановленный с некоторой командой, таким образом, у меня есть готовый к использованию VM без любых перезагрузок.
Я не знаю, помогает ли это в перезагрузке конфигурации сети, но когда я изменил /etc/udev/rules.d/70-persistent-cd.rules
исправлять ссылку устройства DVD от /dev/dvd1
кому: /dev/dvd
, Я должен был работать
sudo udevadm trigger
для получения создали новые ссылки.
sudo /etc/init.d/udev restart
должен добиться цели. Некоторые команды Вы попробовали, если выполнено с sudo
, могло бы быть эффективным также.
Это должно сделать это безопасно:
sudo reload udev
Поскольку я использовал эту команду без проблем.
Я исследовал это некоторое время с в значительной степени той же целью, и я не смог найти способ изменить имя сетевого интерфейса в живой системе.
Обходное решение, для которого я пошел, должно удалить/etc/udev/rules.d/70-persistent-net.rules файл в шаблоне, что означает, что на следующей начальной загрузке это будет рассматривать любую сетевую плату как eth0.
Необходимо перезагрузить udev для инициирования изменения правил, но устройство не будет переименовано, если Вы не разгрузитесь/перезагрузите модуль драйвера.
Так modprobe -r e1000 && modprobe e1000
после udev перезагрузка должен добиться цели. Конечно, не делайте этого, если Вы нуждаетесь в сети и имеете только e1000 интерфейсы.
У меня была подобная проблема. Так как я не хотел не торопиться к перезагрузке, я выполнил один лайнер с помощью предложения Chris Wesseling.
/etc/init.d/networking остановите управление && modprobe-r tg3 && udevadm - правила перезагрузки && udevadm триггерный && modprobe tg3 &&/etc/init.d/networking запускаются
Это работало на меня использующий сервер Ubuntu 12.04.02. Мои зарубки использовали tg3 драйвер модуля ядра, так измените tg3 на модуль, который используют Ваши интерфейсы. Я нашел тех, шахта использовала в /etc/udev/rules.d/70-persistent-net.rules
:
Устройство PCI 0x14e4:/sys/devices/pci0000:00/0000:00:1c.4/0000:02:00.1 (tg3) <-драйвер модуля ядра для nic
Одной проблемой, которую я имел, был плохой маршрут, который я зафиксировал с простым маршрутом, добавляет команда. Спасибо за справку Chris!
udevadm trigger
это будет работать, вводят описание ссылки здесь
Необходимо объединить весь совет, данный здесь в правильном порядке:
service networking stop
lspci -v
и ищите "Используемый драйвер ядра":modprobe -r <driver module>
udevadm control --reload-rules
udevadm trigger
modprobe <driver module>
service networking start
iptables
сценарии, которые сослались eth
имя интерфейса, прежде чем это произошло.Я подозреваю или шаг 4 или шаг 5, не действительно необходим, но эти шаги работали на меня. Вы могли проверить после шага 4 с шагом 2.1, чтобы видеть, сделала ли триггерная команда уже шаг 5, редактирует этот ответ для отражения результатов, если Вы делаете.
Таким образом для меня на VirtualBox с Ubuntu 12.04, я часто переключаюсь между Ethernet и беспроводной связью.
Таким образом, когда мое соединение изменяется, я должен выбрать Bridged Adapter from Devices> Network Settings. Или 'Intel 82579LM Gigabit Network Connection' или 'Intel Centrino Ultimate-N 6300 AGN'.
После выполнения этого я могу работать
sudo modprobe -r e1000
sudo service udev restart
sudo modprobe e1000
ping google.com # To test I ran this between each command.
Это - просто объяснение моих результатов после чтения всех ответов выше.
Это работало на меня (не перезагружая)
udevadm control --reload-rules ; udevadm trigger
Благодарность автору этой страницы: http://memoryfail.wordpress.com/2013/04/02/renaming-network-device-names/