파일 /etc/udev/rules.d/70-persistent-net.rules
은 재부팅 중에 udev (있는 경우)가있는 Linux 시스템에서 자동 생성됩니다. 그러나 서버를 재부팅하지 않고이 규칙 파일 (명령 포함)을 만드는 방법을 알고 싶습니다.
나는 인터넷 검색을 한 동안이 스크립트에 의해 규칙 파일이 생성되는 것을 발견했다.
/lib/udev/write_net_rules
그러나 일부 스크립트는 환경 변수가 올바르게 설정된 상태에서 udev로 시작하기 때문에 명령 줄에서이 스크립트를 실행할 수 없습니다. 수동으로 시작하면 “missing $ INTERFACE”오류 메시지가 인쇄됩니다. 스크립트를 시작하기 전에 env 변수 INTERFACE = eth0을 설정하더라도 “유효한 일치 누락”오류가 계속 표시됩니다. 말할 것도없이 두 개의 인터페이스 ( eth0
및 eth1
) 가 있으며 두 규칙에 대해 규칙 파일을 생성하려고합니다.
또한 udev 자체에서 스크립트를 시작하기를 희망하면서 이와 같은 udev 이벤트를 트리거하려고 생각했지만 아무것도 변경되지 않았습니다.
udevadm trigger --type=devices --action=change
그렇다면 아무도 /etc/udev/rules.d/70-persistent-net.rules
재부팅하지 않고 파일에서 영구 네트 규칙을 재생성하는 방법을 알고 있습니까?
답변
매뉴얼 페이지에 따르면 --action=change
의 기본값입니다 udevadm
.
-c, --action=ACTION
Type of event to be triggered. The default value is change.
따라서 --action=add
대신 시도해 보는 것이 좋습니다. 도움이 될 것입니다 :
/sbin/udevadm trigger --type=devices --action=add
답변
Ubuntu Server 16.04LTS에는 70-persistent-net.rules가 없습니다.
내가 한 모든 것은 달렸다.
ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
그런 다음 사용하여 파일을 만듭니다
sudo vi /etc/systemd/network/10-internet.link
다음을 추가하십시오
[Match]
Path=pci-0000:(your device mac address)
[Link]
Name=eth0 (or whatever you want to name it)
:wq
파일을 저장
그런 다음 / etc / network / interfaces 파일을 재부팅하고 조정하십시오. 그런 다음 다시 부팅하십시오.
답변
나는 같은 문제가 있었지만 여전히 ip addr
목록 에서 인터페이스를 볼 수 있음을 알았습니다 . 나는 다음을 루트로 사용했다.
# ip addr # to get my mac addresses
# export INTERFACE=eth0; export MATCHADDR="xx:xx:xx:xx:xx:xx"; /lib/udev/write_net_rules
# replace the 00's with the real mac addr
각 인터페이스에 대해 반복하십시오. 내 파일을 “복구”하는 데 사용되었습니다. (참고 : 한 번의 호출로 모든 인터페이스가 나열되고 일치하는 이름으로 이름 바꾸기가 추가되므로 한 번의 호출 후에 출력 파일을 들여다 보는 것이 좋습니다)
OS와 현재 UDEV 구현 및 지원 스크립트 간에는 분명히 차이점이 있습니다. 참고로,이 작업을 성공적으로 수행했을 때 CentOS 6.8을 사용하고있었습니다.
크레딧-이 사이트를 주로 참조했습니다. 스크립트 수정에 대해 이야기하는 몇 가지 스레드가 있지만 https://access.redhat.com/discussions/1240213 환경 변수를 사용하는 것이 좋습니다.