Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Linux (Ubuntu, Debian, Red Hat, CentOS, Mint)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2016, 20:15   #1
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию udev не читает файл 70-persistent-net.rules

Есть собранная система lfs, её архив для возможности разворачивания. Она стоит и нормально работает на сервере где была одна сетёвка.

Развернул её другом серваке который должен стать шлюзом-маршрутизатором, на нём несколько сетёвок.

Всё нормально заработало, все сетевые интерфейсы по команде ifconfig -a видно. Хотел поменять названия сетёвок и ничего не получилось.

Например после загрузки имею сетёвку eth5 с mac 11:22:33:44:55:66 и сетёвку eth3 с mac 77:88:99:00:11:22,

а мне надо чтобы сетёвка eth5 называлась eth3, а та что была eth3 стала eth5

Прописал всё как надо в файле /etc/udev/rules.d/70-persistent-net.rules перезагрузился, и ничего не поменялось.

Что бы избежать ошибок сгенерировал файл 70-persistent-net.rules при помощи команды

Код:

udevadm trigger --action=add
Файл сгенерировался, открыл его и eth5 поменял на eth3, а eth3 поменял на eth5.

Перезагрузился и ничего не поменялось, сетёвки не переименовались. Получается так что udev не читает этот файл.

При загрузке сервера демон udev запускается командой:

Код:

/sbin/udevd --daemon
далее выполняются ещё две команды:

Код:

/sbin/udevadm trigger

/sbin/udevadm settle


После загрузки сервера udevd в процессах есть.



Попробовал удалить паку со скриптами /etc/sysconfig/network-scripts (предварительно скопировав её в другое место), и не запускать при старте сервера демон udev. Но после загрузки сервера по команде ifconfig -a всё равно все интерфейсы были и назывались они (eth0, eth1,eth2...) как и ранее когда при загрузке сервера стартовал и udev.

Получается так что ядро само определяет сетевые интерфейсы, даёт им имена eth0, eth1, .. ит.д. а udev после запуска то ли не читает файл /etc/udev/rules.d/70-persistent-net.rules то ли читает его но сетевые интерфейсы не переименовывает.



Подскажите пожалуйста как заставить его прочитать этот файл или переименовать сетевые интерфейсы.

За помощь заранее благодарен!
v4567 вне форума Ответить с цитированием
Старый 01.07.2016, 21:46   #2
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

У меня работает нормально, Вот содержимое сонфига

Код:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:1e.0/0000:02:08.0 (e100)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1e:37:24:57:2b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:1e.0/0000:02:02.0 (ipw2200)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:12:f0:1f:35:19", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# USB device 0x:0x (ath9k_htc)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c0:ca:6d:af:90", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

# USB device 0x:0x (carl9170)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="84:c9:b2:80:98:15", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan1"

Делаю так.

Меняю "wlan0" на "wlan1" a "wlan1" na "wlan0"

1) отключаю физически адаптер
2) sudo /etc/init.d/networking restart
3) включаю физически адаптер

Все поменялось


Думаю что важно иметь нулевые интерфейсы если есть первые, н-ные

Да и что за OS у тебя стоит ?
И каке еще конфиги у тебя в
Код:
ls -lah /etc/udev/rules.d/*
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/

Последний раз редактировалось pompiduskus; 01.07.2016 в 21:50.
pompiduskus вне форума Ответить с цитированием
Старый 02.07.2016, 11:43   #3
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию

Вот файлик /etc/udev/rules.d/70-persistent-net.rules
сгенерированный командой udevadm trigger --action=add
Код:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:e9:e0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:e9:e1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="10:fe:ed:04:26:e8", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth5"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:ea:3d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:ea:3c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

# PCI device 0x8086:0x153b (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="74:d4:35:16:f4:19", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1106:0x3106 (via-rhine)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:21:91:8b:af:21", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth6"
Вот поменянные интерфейсы - не работают эти изменения.

Код:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:e9:e0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:e9:e1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="10:fe:ed:04:26:e8", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:ea:3d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:ea:3c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth5"

# PCI device 0x8086:0x153b (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="74:d4:35:16:f4:19", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1106:0x3106 (via-rhine)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:21:91:8b:af:21", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth6"
Вот поменянный интерфейс eth5 на eth8 которого изначально не было - что бы избежать конфликта одинаковых интерфейсов - то же не работает.

Код:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:e9:e0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:e9:e1", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="10:fe:ed:04:26:e8", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth8"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:ea:3d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"

# PCI device 0x8086:0x1521 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a0:36:9f:47:ea:3c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

# PCI device 0x8086:0x153b (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="74:d4:35:16:f4:19", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1106:0x3106 (via-rhine)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:21:91:8b:af:21", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth6"
Ситуация немного прояснилась.
Интерфейсы именовались в initramfs и файлы правил есть. В /etc/udev/rules.d их нет, нет даже папки rules.d, а вот в /lib/udev/rules.d эти файлы есть, их немного, конкретно файла для сетевых интерфейсов нету, я 70-persistent-net.rules с именами такими как надо мне скинул туда, вернее вначале разобрал рам-диск, потом скопировал этот файл, потом обратно собрал рам-диск. И о чудо после перезагрузки интерфейсы стали с именами такими как мне надо.
Но вопрос остался открытым.
Первое.
Для проверки взял и одну сетёвку заменил на другую ранее не стоявшую в системе, не пересобирал рам-диск и перезагрузился.
В результате вместо 7 сетёвок теперь по команде ifconfig -a было только 6, та которую подключил (новая) была, а вот одной из старых которая была включена в компе, её не стало. Получается теперь при замене сетёвки придётся каждый раз пересобирать рам-диск с новым файликом.
Второе.
Всё равно ведь udev должен был бы перименовать сетёвки не зависимо от того какие им имена были даны udev-вом запущеным в рам-диске. Почему этого не происходить я не знаю.
v4567 вне форума Ответить с цитированием
Старый 02.07.2016, 20:22   #4
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Интересный случай. У меня меняется сразу.
Но вот люди пишут что есть такая проблема.
Вот ребята рекомендуют вообще удалить кусок правила ( KERNEL="eth*" )

http://unix.stackexchange.com/questi...work-interface

Вообщем нужно смотреть по ходу дела. Так как я сам юзаю Debian. И у меня вообще нету некоторых правил и файлов.

А ты что юзаешь ?
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 03.07.2016, 18:59   #5
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
А ты что юзаешь ?
lfs - linux from scratch
http://www.linuxfromscratch.org/
Все говорят что если удалось собрать lfs то должен рабираться очень хорошо во всех вопросах, но на самом деле это не так.
Если собирать строго по книжке, то ничего сложного нет, банальный копипаст.
v4567 вне форума Ответить с цитированием
Старый 03.07.2016, 19:00   #6
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию

Загрузочные скрипты только полностью свои написал.
Старался как можно проще писать.
v4567 вне форума Ответить с цитированием
Старый 03.07.2016, 20:25   #7
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Круто =)
А такого еще ни разу не делал.

Нууу, копипаст, ни копиаст, а иди как горотся да попробуй сделай!
Это однозначно, классно, позволяет систему лучше понять.

А почему выбор пал именно на этот дист. ?
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 04.07.2016, 16:34   #8
v4567
Пользователь
 
Регистрация: 06.07.2008
Сообщений: 91
По умолчанию

> А почему выбор пал именно на этот дист. ?
Просто хотелось самому всё собрать из исходников.
Кстати ядро я собираю сам - make menuconfig
только что бы оно загрузилось и всё железо увиделось приходиться по незнанию пересобирать его раз по 40.
Немного знаю Си без плюсов, хотел как то найти курсы по ядру и программированием модулей для ядра и разных демонов - сеть, файловая система и т.д. Что бы можно было бы хоть немного в чужих исходниках разбираться и если что то надо то подправить под себя. Но таких курсов в своём городе, да и более менее приемлемые удалённые так и не нашёл. Сейчас уже как то охладел к этому всему. Приходится по работе заниматься.

Да кстати проблему решил.
Не помогло удаление из файла правил /etc/udev/rules.d/70-persistent-net.rules записей ACTION=="add" и KERNEL=="eth*" хоть вместе хоть по отдельности.
А помогло вот что.
После старта демона udev я выполняю две команды
Код:
udevadm trigger
udevadm settle
так вот команду udevadm trigger надо было выполнять ещё с параметром --action=add

Код:
udevadm trigger --action=add
После этого всё заработало и не надо было в initrd ничего делать.
Интерфейсы переименовались согласно записям в файле правил
/etc/udev/rules.d/70-persistent-net.rules

Всем спасибо кто помогал!
v4567 вне форума Ответить с цитированием
Старый 05.07.2016, 04:18   #9
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Да, это все очень интересно! Ядра, модули. =)
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При занесении данных с консоли в файл не читает кириллицу Вероника99 Помощь студентам 0 01.12.2015 21:32
persistent хранилища что это и с чем его кушать? Тёма_) Общие вопросы .NET 1 09.08.2013 18:12
Программа не читает файл при запуске в среде vc++2012express. arm9n Visual C++ 2 30.07.2013 18:23
[вопрос] fread не читает весь файл Tahoma Visual C++ 3 02.10.2012 22:54
Программа не читает файл (С++ Builder 6) Alladyne Помощь студентам 1 21.01.2012 13:02