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

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

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

service udev restart

그리고

udevadm control --reload-rules

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

  • 예, 명령 앞에 를 추가해야 한다는 것을 알고 있지만 sudo위에 게시한 어느 쪽이든 ifconfig -a출력에 아무것도 변경되지 않습니다. 여전히 eth1가 아닌 가 표시됩니다 eth0.

  • NAME방금 udev-rule 라인의 속성을 변경했습니다 . 이것이 효과적이지 않은 이유를 모릅니다.

아무런 오류도 없습니다위에 게시한 두 명령을 모두 실행할 때 출력의 실제 인터페이스 이름은 변경되지 않습니다 ifconfig -a. 재부팅을 수행하면 인터페이스 이름이 예상대로 변경됩니다.

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

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

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

그래서 나는 (복제된 이미지에서는 더 이상 사용되지 않고 쓸모가 없습니다) sed줄을 삭제 하고 . 따라서 현재 유효한 영구 규칙이 있지만 .eth0eth1eth0eth1/dev

문제: 머신을 재부팅하고 싶지 않고(시간이 더 걸리므로 VM 구축 단계에서는 좋지 않음) 바로 /dev사용할 수 있는 VM을 갖도록 몇 가지 명령으로 다시 빌드 하고 싶습니다. 재부팅 없이.

답변1

이것이 네트워크 구성을 다시 로드하는 데 도움이 되는지 모르겠지만 /etc/udev/rules.d/70-persistent-cd.rulesDVD 장치 링크를 에서 로 수정하도록 /dev/dvd1수정 했을 때 /dev/dvd다음을 실행해야 했습니다.

sudo udevadm trigger

새로운 링크가 생성되도록 하세요.

답변2

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

  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단계를 수행했는지 확인할 수 있습니다. 수행한 경우 결과를 반영하도록 이 답변을 편집하십시오.

답변3

비슷한 문제가있었습니다. 재부팅하는 데 시간을 들이고 싶지 않았기 때문에 Chris Wesseling의 제안을 사용하여 한 줄로 실행했습니다.

/etc/init.d/networking 중지 && modprobe -r tg3 && udevadm control --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용 커널 모듈 드라이버

내가 겪었던 한 가지 문제는 간단한 경로 추가 명령으로 수정한 잘못된 경로였습니다. 도움을 주셔서 감사합니다 크리스!

답변4

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

관련 정보