systemd файлы .link не работают

Символ ' ~' используется для указания домашнего каталога текущего пользователя в системах UNIX. Поскольку имя пользователя на вашем компьютере отличается от имени пользователя на компьютере, используемом в учебнике, на который вы ссылались, к переменной PATH были добавлены разные пути к каталогам. Используя ' ~', вам не нужно вручную вводить имя пользователя для обращения к домашнему каталогу пользователя, что позволило создателю учебника создать код, который заставляет переменную PATH просматривать оба ваших домашних каталога, даже если оба ваших систем имеют разные пути к вашим домашним каталогам. (напр. /home/joe/binи /home/jpols/bin— разные каталоги, но ~/binможно использовать для обозначения обоих, так как «~» будет расширен системой до правильного пути)

-1
18.09.2019, 18:20
2 ответа

Можно изменить имена интерфейсов с помощьюudev:Редактировать/etc/udev/rules.d/70-persistent-net.rules:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1e:06:32:c1:9d", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="50:3e:aa:4a:71:2a", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0"

Работает, и после перезагрузки имена интерфейсов изменились.

Но моя проблема не решена. Я до сих пор не знаю, почему он не работает с systemd-networkd.

1
28.01.2020, 05:11

У меня точно такая же проблема с одним интерфейсом. Если это имеет значение, это интерфейс USB с использованием драйвера asix.

Два моих интерфейса переименовываются с помощью файлов.link, а этот — нет. Другая (идентичная )установка, которая все еще использует переименование udev, успешно переименовывает все три интерфейса.

Nov 23 22:12:16 xen17 vmunix: [ 7256.680568] asix 1-2:1.0 eth0: register 'asix' at usb-0000:00:14.0-2, ASIX AX88772 USB 
2.0 Ethernet, 00:0e:c6:b2:fb:30
Nov 23 22:12:16 xen17 vmunix: [ 7256.680691] usbcore: registered new interface driver asix
Nov 23 22:12:16 xen17 vmunix: [ 7256.684159] systemd-udevd[6406]: Using default interface naming scheme 'v240'.
Nov 23 22:12:16 xen17 vmunix: [ 7256.688004] systemd-udevd[6406]: link_config: autonegotiation is unset or enabled, the 
speed and duplex are not writable.
Nov 23 22:12:16 xen17 vmunix: [ 7256.688284] asix 1-2:1.0 enx000ec6b2fb30: renamed from eth0

Но даже игнорируя файл.link, он получает неправильное имя:

root@xen17:/var/log# udevadm test-builtin net_id /sys/class/net/enx000ec6b2fb30 2>/dev/null
ID_NET_NAMING_SCHEME=v240
ID_NET_NAME_MAC=enx000ec6b2fb30
ID_OUI_FROM_DATABASE=ASIX ELECTRONICS CORP.
ID_NET_NAME_PATH=enp0s20u2

Должен называться enp0s20u2, так как PATH имеет приоритет над MAC

И тест usbadm говорит, что у него должно быть правильное имя из моего файла.link:

root@xen17:/var/log# udevadm test /sys/class/net/enx000ec6b2fb30 2>/dev/null
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/net/enx000ec6b2fb30
INTERFACE=enx000ec6b2fb30
IFINDEX=48
ACTION=add
SUBSYSTEM=net
ID_NET_NAMING_SCHEME=v240
ID_NET_NAME_MAC=enx000ec6b2fb30
ID_OUI_FROM_DATABASE=ASIX ELECTRONICS CORP.
ID_NET_NAME_PATH=enp0s20u2
ID_VENDOR=ASIX_Elec._Corp.
ID_VENDOR_ENC=ASIX\x20Elec.\x20Corp.
ID_VENDOR_ID=0b95
ID_MODEL=AX88772A
ID_MODEL_ENC=AX88772A
ID_MODEL_ID=7720
ID_REVISION=0001
ID_SERIAL=ASIX_Elec._Corp._AX88772A_000BAF
ID_SERIAL_SHORT=000BAF
ID_TYPE=generic
ID_BUS=usb
ID_USB_INTERFACES=:ffff00:
ID_USB_INTERFACE_NUM=00
ID_USB_DRIVER=asix
ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class
ID_USB_SUBCLASS_FROM_DATABASE=Vendor Specific Subclass
ID_VENDOR_FROM_DATABASE=ASIX Electronics Corp.
ID_MODEL_FROM_DATABASE=AX88772
ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
ID_NET_DRIVER=asix
ID_NET_LINK_FILE=/etc/systemd/network/10-persistent-net-usblan2.link
ID_NET_NAME=usblan2
USEC_INITIALIZED=7256957740
run: 'bridge-network-interface'
run: 'ifupdown-hotplug'

К счастью, я использую это устройство в интерфейсе моста, поэтому я могу просто сказать ему импортировать через все три имени (два, очевидно, не удастся )поэтому, если что-то изменится и это начнет работать в будущем, я выиграл не ломайте себе голову, пытаясь понять, что изменилось и почему моя сеть не работает.

Я нашел свою проблему:

Я использую Debian и есть:

/lib/udev/rules.d/73-usb-net-by-mac.rules

Что, кажется, имеет приоритет над правилами systemd. Комментируем весь этот файл, и теперь файл.link работает.

Так что я бы посоветовал ОП поискать где-нибудь похожее правило udev, которое превосходит именование systemd.

Думаю, это ошибка. Я перехожу с правил udev только потому, что в документации, которую я видел, говорится, что они уходят со следующей стабильной версией. Но похоже, что вы не можете тривиально переключаться, если используете сетевые устройства USB.

4
28.01.2020, 05:11

Теги

Похожие вопросы