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(이되지 않는 및 복제 된 이미지 쓸모가)와 교체 eth1eth0. 따라서 현재 유효한 영구 규칙이 있지만 여전히 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.