이 파일은 /etc/udev/rules.d/70-persistent-net.rules
파일이 존재하지 않는 경우 재부팅 중에 Linux 시스템에서 udev를 사용하여 자동으로 생성됩니다. 하지만 서버를 다시 시작하지 않고 명령을 사용하여 이 규칙 파일을 만드는 방법을 알고 싶습니다.
잠시 동안 Google에서 검색한 결과 규칙 파일이 다음 스크립트에 의해 생성되는 것을 발견했습니다.
/lib/udev/write_net_rules
그러나 이 스크립트는 udev에 의해 시작될 것으로 예상하고 일부 환경 변수가 올바르게 설정되어 있기 때문에 명령줄에서 이 스크립트를 실행할 수 없습니다. 수동으로 시작하면 "$INTERFACE 누락" 오류 메시지가 인쇄됩니다. 스크립트가 시작되기 전에 환경 변수 INTERFACE=eth0을 설정하더라도 "Missing valid match"라는 오류가 계속 인쇄됩니다. 두 개의 인터페이스( eth0
및 ) 가 있고 eth1
이 두 인터페이스에 대한 규칙 파일을 생성하고 싶다는 점은 말할 것도 없습니다.
또한 udev 자체에서 스크립트를 시작하기를 바라면서 이와 같은 udev 이벤트를 트리거하는 것에 대해 생각하고 있었지만 아무것도 변경되지 않았습니다.
udevadm trigger --type=devices --action=change
/etc/udev/rules.d/70-persistent-net.rules
그렇다면 재부팅하지 않고 파일에서 영구 네트워크 규칙을 다시 생성하는 방법을 아는 사람이 있습니까 ?
답변1
매뉴얼 페이지에 따르면 --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
답변2
Ubuntu Server 16.04LTS에는 70-pertant-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 파일을 조정하십시오. 그런 다음 다시 재부팅하십시오.
답변3
저도 같은 문제가 있었지만 여전히 목록에서 인터페이스를 볼 수 있다는 것을 알았습니다 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
각 인터페이스에 대해 이 작업을 반복합니다. 이것은 내 파일을 "복구"하는 데 사용됩니다. (참고: 단일 호출로 모든 인터페이스가 나열되고 일치하는 인터페이스에 대한 이름 변경이 추가되므로 단일 호출 후에 출력 파일을 살펴보는 것이 좋습니다.)
운영 체제와 현재 UDEV 구현 및 지원 스크립트 간에는 확실히 차이가 있습니다. 이 작업을 성공적으로 완료했을 때 CentOS 6.8을 사용하고 있었습니다.
신용 - 주로 이 웹사이트를 참고했습니다. 스크립트 수정에 대해 아래에 몇 가지 설명이 있지만 환경 변수를 사용하는 것이 더 깔끔하기 때문에 선호합니다.https://access.redhat.com/discussions/1240213