재부팅하지 않고 70-persistent-net.rules를 재생성하는 방법? 명령 줄에서이 스크립트를 실행할 수 없습니다.

파일 /etc/udev/rules.d/70-persistent-net.rules은 재부팅 중에 udev (있는 경우)가있는 Linux 시스템에서 자동 생성됩니다. 그러나 서버를 재부팅하지 않고이 규칙 파일 (명령 포함)을 만드는 방법을 알고 싶습니다.

나는 인터넷 검색을 한 동안이 스크립트에 의해 규칙 파일이 생성되는 것을 발견했다.

/lib/udev/write_net_rules

그러나 일부 스크립트는 환경 변수가 올바르게 설정된 상태에서 udev로 시작하기 때문에 명령 줄에서이 스크립트를 실행할 수 없습니다. 수동으로 시작하면 “missing $ INTERFACE”오류 메시지가 인쇄됩니다. 스크립트를 시작하기 전에 env 변수 INTERFACE = eth0을 설정하더라도 “유효한 일치 누락”오류가 계속 표시됩니다. 말할 것도없이 두 개의 인터페이스 ( eth0eth1) 가 있으며 두 규칙에 대해 규칙 파일을 생성하려고합니다.

또한 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 환경 변수를 사용하는 것이 좋습니다.