학습자료(~2017)/리눅스

[linux] ubuntu 에서 p255p1 을 eth0로 바꾸기, udev rule eth0

단세포소년 2013. 8. 7. 20:06
반응형

우분투 13.04를 설치하고 나서 네트워크 인터페이스가 p255p1 이런식으로 보였다.

이것은 udev rule 에 의해 선정되는 이름으로 네트워크 카드의 위치가 바뀌거나 뺏다껴도 똑같은 이름을 유지하라는 식의 편의를 위해 제공되지만 난 eth0 eth1 같은 옛날 방식의 이름을 원했다.


구글링을 통해 /lib/udev/rules.d/ 의 몰 지워라. 혹은 /etc/udev/rules.d/70-persistent-net.rules 를 지워라. 혹은 grub의 biosdevname 인가 모 어쩌구를 0으로 만들어라. 등등 방법이 많았다.

네트워크 인터페이스 같은 경우 eth* 를 p*p* 로 바꾸는 룰을 /etc/udev/rules.d/70-persistent-net.rules 에 적으므로 이것을 지우면 되는 경우가 많다고 한다. 

근데 내 경우에는 안되었다. 왜일까?


1. UDEV Rules 을 통한 방법


어째든  /etc/udev/rules.d/70-persistent-net.rules 내에 룰을 만들어 p255p1 같은 이름의 인터페이스가 아닌 eth0 같은 이름이 나오도록 하기 위해 룰을 하나 작성했다. 설명은 생략하겠다.(udev 메뉴얼하고 /lib/udev/rules.d 의 룰들을 대충 참고했다. 내가 설명을 못하겠다.)


$ vi  /etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*|p*p*", NAME="eth%n"


그래도 대충 설명한다. 네트워크 인터페이스가 추가되면 특히 이름이 p255p1 같은거면 eth 로 이름을 바꾸는데 eth 뒤에 추가되는 순서대로 적어라. 예를들면 p255p1 추가되고 eth0가 추가 되었다고 하면 p255p1 은 eth0 로 eth0 은 eth1 로 이름이 명명될 것이다. (데스크탑에서는 됐는데 nic 가 4개있는 서버에서 테스트해볼 작정이다. 테스트 해봤는데 된다. ㅋㅋ)


네트워크 인터페이스 명은 아래의 명령을 실행하면 보인다.

 $ cat /proc/net/dev



2. GRUB 설정을 통한 방법


$  vi /etc/default/grub 

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="" #<---- 이 설정을 GRUB_CMDLINE_LINUX_DEFAULT="biosdevname=0" 로 변한다
GRUB_CMDLINE_LINUX="


GRUB_CMDLINE_LINUX_DEFAULT 에 "biosdevname=0" 를 추가해주면 p1p1, p1p2, ... 이 아닌 eth0, eth1, ... 전통적인 네트워크 인터페이스이름으로  명명될 것이다.





3. 추가적으로 특정 맥어드래스에게 특정 인터페이스 이름 지정하기


$ vi /etc/udev/rules.d/70-persistent-net.rules


SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:90:CB:4E:E6", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 

긴 설명은 하지 않겠다.





추가적인 정보로 아래의 링크는 /etc/udev/rules.d/70-persistent-net.rules 를 이용하여 특정 맥어드래스에게 특정 인터페이스 이름을 지정하는 방법이다.

http://mickvaites.com/2009/06/ubuntu-changing-network-device-id-udevrules-d/

반응형