Linux udev изменил или перепутал имена сетевых интерфейсов?

Я создал правила для назначения имен сетевым интерфейсам, однако, они присвоены неправильно. После перезагрузки команда `ip link show` отображает имена интерфейсов в перепутанном порядке. Как я могу исправить эту проблему?
  • 20 марта 2025 г. 11:24
Ответы на вопрос 2
Если udev неправильно присваивает имена сетевым интерфейсам, это может происходить из-за нескольких причин, включая конфликты в правилах или другие конфигурации в системе. Вот несколько шагов, которые могут помочь вам устранить эту проблему:

1. **Проверьте ваши правила udev**:
   Убедитесь, что ваши правила udev правильно настроены. Обычно правила находятся в `/etc/udev/rules.d/` или `/lib/udev/rules.d/`. Проверьте, что вы используете правильные атрибуты для идентификации интерфейсов, такие как `ATTR{address}`, `KERNEL`, `SUBSYSTEM`, `NAME`, и так далее.

   Пример правила может выглядеть так:
   ```bash
   SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:11:22:33:44:55", NAME="eth0"
   SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:22:33:44:55:66", NAME="eth1"
   ```

2. **Проверьте порядок загрузки**:
   Иногда порядок загрузки может влиять на то, как интерфейсы инициализируются. Убедитесь, что правила udev обрабатываются в нужном порядке.

3. **Удалите или измените старые правила**:
   Если вы тестировали несколько правил, возможно, у вас есть старые или конфликтующие правила. Удалите их или закомментируйте, чтобы убедиться, что они не мешают новым правилам.

4. **Используйте `udevadm` для отладки**:
   Вы можете использовать команду `udevadm` для получения информации об интерфейсах и проверки, какие правила применяются:
   ```bash
   udevadm info --query=all --name=ethX
   ```
   Замените `ethX` на имя вашего сетевого интерфейса. Это может помочь понять, какие атрибуты и правила применяются.

5. **Перезагрузите udev**:
   После изменения правил udev, вы можете перезагрузить службу udev:
   ```bash
   sudo udevadm control --reload-rules
   sudo systemctl restart udev
   ```

6. **Удалите старые настройки интерефейсов**:
   Если в системе были старые конфигурации (например, в `/etc/network/interfaces` или в NetworkManager), убедитесь, что там отсутствуют старые привязки к именам интерфейсов.

7. **Перезагрузите систему**:
   Иногда простая перезагрузка может помочь применить изменения.

8. **Используйте `netplan` или `systemd-networkd`** (если применимо):
   Если вы используете современные дистрибутивы, такие как Ubuntu, которые поддерживают Netplan или systemd-networkd, убедитесь, что настройки именования интерфейсов правильно определены в конфигурационных файлах.

После выполнения этих шагов, проверьте снова с помощью команды `ip link show`, чтобы убедиться, что интерфейсы имеют правильные имена.
файл с этим правилом udev должно быть больше, чем 50-60 
идеально - вообще, 99-rename-nic
Похожие вопросы