Type-Zer0のブログ

趣味について垂れ流す場所

CentOS7.5でNIC名を変える

NICをeth0~にしたい

最近のLinuxNIC名がeth0~ではなくensxxxxx~とかenoxxxx~みたいな名前がつけられている。(命名規則があるらしいけどよくわからない
これを変える方法でハマったのでメモ。
一応Cent7.5でのを書いているけどUbuntu16.04以降もこうなっていた気がする。 原因としてはOSが接続している機器のMACアドレスへ強制的にNIC名をつけていることっぽい。

通常よくある方法

grubのコンフィグを作り直す

#vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet" 
この行を
GRUB_CMDLINE_LINUX="crashkernel=auto biosdevname=0 net.ifnames=0 rhgb quiet"

'コンフィグを反映
# grub2-mkconfig -o /boot/grub2/grub.cfg

インターフェース名を変えていく

(非推奨 古い方法)

'中身のenoXXXXXXの部分を書き換える(ついでにバックアップしておく)
#sed -i".org" -e "s/enoXXXXXX/eth0/g" /etc/sysconfig/network-scripts/ifcfg-enoXXXXXX 

'リネーム
#mv /etc/sysconfig/network-scripts/ifcfg-enoXXXXXX  /etc/sysconfig/network-scripts/ifcfg-eth0

(編集:sedコマンドの変更)

今の推奨はNetworkManagerで作成することらしい   #nmtui で出てくる項目を適宜入力していく


うまくいかないとき

ここまででできればいいが、うまく行かなかった場合

/etc/udev/rules.d/ 配下にXX-hogehoge.rules というファイルが有る。
そこでNIC名とMACアドレスが強制的に紐付けられてしまうため先の手順では認識しないということが起きている。
割合新しいバージョンの仕様がこうなるとかなんとか(Cent7.5以降とか)
標準では/etc/udev/rules.d/70-persistent-net.rulesがあったりなかったり90-eno-fix.rulesとかいうのがあったり環境によって違うみたい。
番号が99に近いほうがあとから適用されるということで70~を削除しても90で再定義していると名前変更はできない模様(違ったら誰か教えて

hoge.rules内で

'ここでは90-eno-fix.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XY:XY:XY:XY:XY:XY", NAME="enoXXXXXX"

部分があったら、NAME=""に任意の名前を入れる。 (ATTRはMACアドレス)

再起動して変更できていれば成功。

参考にさせていただいたサイトさんたち 感謝感謝 (https://qiita.com/onokatio/items/8776ccd9120693080e0d)
(https://qiita.com/kawaz/items/dc33294c907755e9ee44)
(https://qiita.com/metakoma/items/ee62e1823e3dae45138d)
(https://qiita.com/gm_kou/items/e4ec250557628958a6b4)
(http://www.lesstep.jp/step_on_board/centos-7/773/)
(http://server.etutsplus.com/centos-disable-persistent-net-rules/)