udev를 다시 시작하는 올바른 방법은 무엇입니까?


46

eth1인터페이스 이름을로 변경 했습니다 eth0. udev구성을 다시 읽 도록 요청하는 방법은 무엇입니까?

service udev restart

과

udevadm control --reload-rules

도와주지 마 재부팅을 제외한 유효한 방법이 있습니까? (예, 재부팅하면이 문제가 해결됩니다)

  • 예, 명령 앞에을 추가해야한다는 것을 알고 sudo있지만 위에 게시 한 것은 ifconfig -a출력 에서 아무것도 변경 eth1되지 않습니다 eth0.

  • 방금 NAMEudev-rule 줄 의 속성을 변경했습니다 . 이것이 효과가없는 이유를 모릅니다.

위에 게시 한 두 명령을 실행 하는 데 오류가 없지만 실제 인터페이스 이름은 ifconfig -a출력 에서 변경되지 않습니다 . 재부팅을 수행하면 인터페이스 이름이 예상대로 변경됩니다.

개발 목적으로 가상 머신 (VirtualBox 기반)을 복제하고 어떤 방식 으로든 사전 설정하는 스크립트를 작성합니다.

따라서 VM을 복제하고 시작하고 네트워크 인터페이스 MAC이 변경되는 한 명령을 수행 udev하여 네트워크 영구 규칙에 두 번째 규칙을 추가합니다. 머신을 처음 부팅 한 직후 두 가지 규칙이 있습니다.

  • eth0원본 VM 이미지 MAC에 존재하는 한 존재하지 않습니다.
  • eth1존재하지만 모든 파일의 모든 구성은을 참조 eth0하므로 나에게 좋지 않습니다.

와 내가 그렇게하기 sed로 줄을 삭제 eth0(이되지 않는 및 복제 된 이미지 쓸모가)와 교체 eth1로 eth0. 따라서 현재 유효한 영구 규칙이 있지만 여전히 eth1있습니다 /dev.

문제 : 머신을 재부팅하고 싶지 않습니다 (VM 단계를 구축하는 데 좋지 않은 시간이 걸릴 것입니다). /dev몇 가지 명령으로 재구성하여 VM을 사용할 수 있습니다. 재부팅하지 않고.


당신은 어떻게 변경 않았다 eth1하려면 eth0? 장치 파일 이름을 방금 변경 했습니까? 그렇다면 효과적인 방법이 아닙니다 ( udev데몬을 성공적으로 다시 시작하면 변경 사항이 되돌릴 수 있음 ). 다른 방법을 사용했다면 자세히 설명하고 시도한 명령을 실행할 때 표시되는 오류 메시지 ( udev데몬 을 다시 시작 하거나 규칙을 다시로드하기 위해)에 대한 완전하고 정확한 텍스트를 제공하십시오 . 이 정보를 제공하기 위해 질문을 편집 할 수 있습니다.
— Eliah Kagan

@Eliah Kagan : 업데이트되었습니다. 추신 : 왜 되돌려 야합니까? ;-)
— zerkms

udev에 기기를 동적으로 생성합니다 /dev. 다시 시작하면 규칙에 따라 다시 생성됩니다. 직접적으로 변경 한 사항은 일반적으로 영구적이지 않습니다. 다시 시작 udev이 제대로 작동하는 것처럼 보이지만 장치 이름을 올바르게 변경하지 않은 것 같습니다.
— Eliah Kagan

@Eliah Kagan : 특정 장치에 대한 규칙을 찾을 수없는 경우에만 새 규칙을 udev 추가 (수정하지 않음) 합니다. 일치하는 규칙이있는 경우 수정하지 않고 그대로 따릅니다.
— zerkms

@Eliah Kagan : 그리고 나는 그것을 올바르게 바꿨습니다. 그냥 생각 나는 할 수 할 줄 ;-)에서 하나 개의 문자 변경 (또한 재부팅 helpes, 그리고이 모든 것이 규칙 괜찮 증명)
— zerkms

답변:


29

이 네트워크 구성을 다시로드하는 데 도움이 나도 몰라,하지만 난 수정시 /etc/udev/rules.d/70-persistent-cd.rules에서 DVD 장치 링크 수정 /dev/dvd1에를 /dev/dvd, 나는 실행했다

sudo udevadm trigger

새 링크를 만들려면


3
저는 믿습니다 sudo udevadm trigger --action=change대해 할 안전 안전하지 기능에 대한이 이메일에 따라, 안전 udev: lists.ubuntu.com/archives/ubuntu-devel/2009-January/027260.html
— Ehtesh Choudhury의

실제로, 그것은/etc/udev/rules.d/70-persistent-net.rules
— msanford

Ubuntu 15.04에서 udevadm triggerX11 세션을 잠그고 로그인 화면으로 돌아갔습니다.
— Ian D. Allen

20

여기에 제공된 모든 조언을 올바른 순서로 결합해야합니다.

  1. 네트워크 중단 service networking stop
  2. 커널에서 드라이버 모듈을 언로드
    1. 모듈 이름을 lspci -v찾고 "사용중인 커널 드라이버"를 찾으십시오.
    2. modprobe -r <driver module>
  3. udev 규칙을 다시로드하십시오. udevadm control --reload-rules
  4. 새로운 규칙을 트리거 udevadm trigger
  5. 로드 드라이버 modprobe <driver module>
  6. 네트워크를 다시 시작 service networking start
  7. (선택 사항) 인터페이스 이름이 시작되기 전에 인터페이스 이름 iptables을 참조한 스크립트를 다시 실행하십시오 eth.

4 단계 또는 5 단계가 실제로 필요하지 않다고 생각하지만이 단계가 저에게 효과적이었습니다. 4 단계에서 2.1 단계를 수행하여 트리거 명령이 5 단계를 이미 수행했는지 확인한 후,이 응답을 편집하여 찾은 결과를 반영하십시오.


1
모든 장치가 나열된 우분투 15.04 /etc/network/interfaces(네트워크 관리자는 혼자 남겨 둡니다) : 편집 /etc/udev/rules.d/70-persistent-net.rules한 다음 # 2, # 3, # 5를 수행하면됩니다. 모든 네트워킹을 중지 할 필요가 없습니다. 다른 것은 필요 없습니다.
— Ian D. Allen

5

나는 비슷한 문제가 있었다. 재부팅하는 데 시간이 걸리지 않기 때문에 Chris Wesseling의 제안을 사용하여 하나의 라이너를 실행했습니다.

/etc/init.d/networking 중지 && modprobe -r tg3 && udevadm 제어 --reload-rules && udevadm 트리거 && modprobe tg3 && /etc/init.d/networking start

이것은 Ubuntu 12.04.02 서버를 사용하여 저에게 효과적이었습니다. 내 nics는 tg3 커널 모듈 드라이버를 사용하고 있으므로 인터페이스가 사용하는 모듈로 tg3을 변경하십시오. 나는 내에서 사용 된 것을 발견했다 /etc/udev/rules.d/70-persistent-net.rules.

PCI 장치 0x14e4 : / sys / devices / pci0000 : 00/0000 : 00 : 1c.4 / 0000 : 02 : 00.1 (tg3) <nic 용 커널 모듈 드라이버

내가 가진 한 가지 문제는 간단한 route add 명령으로 수정 한 잘못된 경로였습니다. 도와 줘서 고마워 크리스!



3

sudo /etc/init.d/udev restart트릭을해야합니다. 로 실행 한 경우 시도한 일부 명령 sudo도 효과적 일 수 있습니다.


아니, ifconfig -a아직도 나에게 옛 보여줍니다 eth1인터페이스
— zerkms

3

이것은 안전하게해야합니다 :

sudo reload udev

문제 없이이 명령을 사용했기 때문에.


아니, ifconfig -a아직도 나에게 옛 보여줍니다 eth1인터페이스
— zerkms

1

나는 거의 같은 목적으로 이것을 오랫동안 연구 해 왔으며 라이브 시스템에서 네트워크 인터페이스 이름을 변경하는 방법을 찾을 수 없었습니다.

해결 방법은 템플릿에서 /etc/udev/rules.d/70-persistent-net.rules 파일을 삭제하는 것입니다. 즉, 다음 부팅시 네트워크 카드가 eth0으로 표시됩니다.


1

규칙 변경을 트리거하려면 udev 를 다시로드해야 하지만 드라이버 모듈을 언로드 / 다시로드하지 않으면 장치 이름이 변경되지 않습니다.

따라서 modprobe -r e1000 && modprobe e1000udev reload 후 트릭을 수행해야합니다. 물론 네트워크가 필요하고 e1000 인터페이스 만있는 경우에는 그렇게하지 마십시오.



0

따라서 Ubuntu 12.04가 설치된 VirtualBox에서 이더넷과 무선으로 자주 전환합니다.

따라서 연결이 변경되면 장치> 네트워크 설정에서 브리지 어댑터를 선택해야합니다. 'Intel 82579LM 기가비트 네트워크 연결'또는 'Intel Centrino Ultimate-N 6300 AGN'입니다.

이 작업을 수행 한 후 실행할 수 있습니다

sudo modprobe -r e1000
sudo service udev restart
sudo modprobe e1000
ping google.com # To test I ran this between each command.

이것은 위의 모든 답변을 읽은 후 내 결과에 대한 설명 일뿐입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.