Fedora 19에서 기본 "ens33"네트워크 장치를 이전 "eth0"으로 변경하려면 어떻게해야합니까?


22

방금 VMware 워크 스테이션 9에 Fedora 19를 설치했습니다. 기본 네트워크 장치는 RHEL의 "eth0"대신 "ens33"입니다.

"eth0"을 사용해야하는 이유는 제품 중 하나의 라이센스 구성 요소가 "eth0"과 연결되어 있어야하기 때문입니다.

비슷한 문제에 대해 논의하는 게시물이 있으며 대부분 이전 OS에 대한 내용입니다. 내 상황과 정확히 일치하는 것을 찾지 못했습니다.


Fedora 19는 RHEL 5.5와 크게 다르며 질문에서이 (가) 중복 된 것으로 표시되어 있으며 답변이 동일하지 않습니다.
mattdm

답변:


31

커널 / 모듈 / udev에서 이더넷 인터페이스의 이름을 바꾸는 가장 쉬운 방법은 이러한 커널 매개 변수를 Fedora 19에 제공하는 것입니다 .

  1. net.ifnames = 0
  2. biosdevname = 0

이렇게하려면 다음 단계를 수행하십시오.

  1. / etc / default / grub 편집
  2. GRUB_CMDLINE_LINUX 줄 끝에 " net.ifnames = 0 biosdevname = 0 "을 추가하십시오.
  3. 파일을 저장하십시오
  4. " grub2-mkconfig -o /boot/grub2/grub.cfg "를 입력하십시오.
  5. " reboot "를 입력하십시오

설치 중에 이러한 매개 변수를 제공하지 않은 경우 / etc / sysconfig / network-scripts / ifcfg- * 에서 인터페이스 파일을 조정 및 / 또는 이름을 바꿔야합니다 .

최대 페도라 18 , 단지 biosdevname = 0 충분했다.

예를 들어, 특정 기계, 철저한 연구에서 다음을 얻었습니다.

-매개 변수 없음 : NIC가 " enp5s2 " 로 식별되었습니다 .
-매개 변수 biosdevname = 0 : NIC가 " enp5s2 " 로 식별되었습니다 .
-매개 변수 net.ifnames = 0 : NIC가 " em1 " 로 식별되었습니다 .
-매개 변수 net.ifnames = 0 및 biosdevname = 0 : NIC가 " eth0 "으로 식별되었습니다 .


자세한 단계에 대해 대단히 감사합니다! MathWorks가 제공 한 모든 것은 훨씬 이전 버전의 Fedora를위한 것이 었습니다.
닥터 왓슨

@ dr-watson : Fedora 14까지 ethX 는 이더넷 인터페이스의 기본 이름이었습니다. Fedora 15에서는 Consistent Network Device Naming 이 구현되었습니다. Fedora 15에서 18까지는 ethX 이름을 유지하기에 biosdevname = 0 만으로 충분했습니다. 천만에요.
길슨

3
이 솔루션은 Fedora 20에서도 작동합니다. 감사합니다.
heuristicus

또한 Fedora 21
Eric Grunzke에서 일함

우분투 14.04도.
sjas

9

다음과 같이 udev 규칙을 사용하여이를 수행 할 수 있습니다.

cat > /etc/udev/rules.d/99-rename-to-eth0.rules << EOF
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$(cat /sys/class/net/ens33/address)", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
EOF

예를 주셔서 감사합니다. 다른 경우, /sys/class/net/ens33바이오스가 반환하고의 결과에서 찾은 값에 따라이 값이 다를 수 있습니다 lspci -vv | grep -A25 Ethernet. 또한 eth0이름 으로 사용하려는 경우 장치의 "예측 가능한"이름 지정을 비활성화하기 위해 커널 부팅 플래그를 지정하는 것이 더 적절할 수 있습니다.
Mark Edington

7

Fedora 20에서는 상황이 조금 더 변한 것 같습니다.

1) grub 커널 인자
예, "net.ifnames = 0"과 "biodevame = 0"이 모두 필요한 것 같습니다.

2) / etc / sysconfig / network-scripts / ifcfg-ethX
예, 이것도 필요합니다.

3) /etc/udev/rules.d/60-net.rules
인터페이스가 여러 개이고 커널이 독자적인 방식으로 수행하지 않고 각 장치의 이름 지정을 제어하려면 /etc/udev/rules.d/60 -net.rules는 다음과 같이 /usr/lib/udev/rules.d/60-net.rules를 재정의하는 데 필요한 것으로 보입니다.

# PCI device 0x1011:0x0019 (tulip) {SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c0:f0:4c:f5:78", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8168 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="60:a4:4c:b5:26:48", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

4) yum remove biosdevname불필요 해 보인다.


1
다양한 요소를 분석해 주셔서 감사합니다. # 1에서 오타가있는 것 같습니다. "biodevame"이 아니라 "biosdevname"이어야합니다.
Mark Edington


2

허용되는 답변은 효과가있는 솔루션을 제공하지만 ens33사용 이유를 설명하지는 않습니다 . 아래 링크는 네트워크 장치 이름이 다른 이유 eth0와 RHEL 7 변형에서 이름이 지정된 방식 에 대한 배경 지식을 제공합니다 .

"33"과 같은 ens33값은 BIOS에 의해 반환 된 PCI 어댑터 슬롯 값 에서 나온다는 점도 주목할 가치가 있습니다. 시스템이 "실제 슬롯"에 대해 나열한 값을 보려면이 명령을 사용하십시오.

lspci -vv | grep -A20 Ethernet

이름의 "ens"부분에 대한 추가 정보는 udev 소스 코드 에서 찾을 수 있습니다 .


1

Fedora-24의 경우 :

  1. 편집하다 /etc/default/grub

  2. GRUB_CMDLINE_LINUX줄 끝에 추가net.ifnames=0 biosdevname=0

  3. 파일을 저장하십시오

  4. 유형

    grub2-mkconfig -o /boot/grub2/grub.cfg"
    

    또는 유형

    grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
    
  5. 유형 reboot


이 방법을 Fedora 26에 적용하면 왜 네트워크 장치가 시스템에서 완전히 사라 집니까? 및 ifconfig만 반환 하지만 원래 는 더 이상 존재하지 않습니다. lovirbr0enp4s0
ajeh

스스로 대답하려면 : ethN명명에 사용 되는 모든 네트워크 스크립트를 변경 하여 해당 규칙을 사용 하도록주의해야합니다 . 나는 enp4s0한 대본을 남겼다 .
ajeh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.