네트워크 인터페이스에 정적이고 일관된 이름을 부여하기 위해 udev 규칙을 사용하려고 합니다. 그러나 이러한 규칙이 출시될 때마다 항상 적용되는 것을 방지하는 경쟁 조건이 발생하는 것으로 보입니다.
확인해 보면 journalctl
다음과 같은 오류 메시지가 나타납니다.
systemd-udevd[149]: error changing net interface name eth0 to net0: Device or resource busy
내 규칙은 매우 간단합니다. 아치 위키에서 직접 가져왔습니다.네트워크 구성
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="wifi0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="net0"
초기 시작 시 어떤 문제가 발생할 수 있으며 이 문제를 해결하려면 어떻게 해야 합니까?
답변1
이 문제를 해결하는 방법 중 하나는 systemd-networkd를 사용하는 것입니다. 구성 파일 /etc/systemd/network/net0dhcp.network
(또는 이와 유사한 파일)을 설정합니다.
[Match]
Name=net0
[Network]
DHCP=true
위의 net0 이름을 적절한 네트워크 인터페이스 이름으로 바꿉니다. 지금:
systemctl disable dhcpcd
systemctl enable systemd-networkd
그리고 다시 시작하세요. (일부 서비스 또는 다른 서비스를 다시 시작할 수 있습니다. 어떤 서비스를 찾지 못했고 충분히 빨리 다시 시작되었습니다.)
저는 이것을 유선 네트워크에서만 테스트했습니다(현재 Wi-Fi 카드가 있는 기기는 없습니다). 따라서 이 구성이 무선 인터페이스에서 어떻게 작동하는지에 대해서는 언급할 수 없습니다. 내 가정은 인터페이스에 대한 구성 파일을 추가해야 하며 모든 것이 원활하게 진행될 것이라고 가정합니다. 물론 상황이 그렇게 쉽게 해결되지 않으면 언제든지 다음을 수행할 수 있습니다.
systemctl disable systemd-networkd
systemctl enable dhcpcd
그리고 다시 시작하세요.
추가 정보:https://wiki.archlinux.org/index.php/Systemd-networkd#Basic_DHCP_network