/etc/udev/rules.d/70-persistent-net.rules と向き合う

初期衝動

CentOS6でVMの複製を行うとその後,IPアドレスNICがうまくつかない場合がある. これはCentOS 6ではMACアドレスNIC名称を固定する設定が/etc/udev/rules.d/70-persistent-net.rulesに投入されるのが原因である. これにハマった.ちなみに「vm 複製 IPが付かない」などと検索すると無限に同じようなブログが出てくるのが分かった. これを解決する方法がいくつか存在する.それとせっかく問題にぶつかったのでこれと向き合ってみる.

対策方法

  1. /etc/udev/rules.d/70-persistent-net.rules から複製前に該当行を削除する
  2. /etc/udev/rules.d/70-persistent-net.rules にディレクトリを作成する
  3. /lib/udev/write_net_rules にネットワーク永続化ルールを無効にする設定を行う
1. /etc/udev/rules.d/70-persistent-net.rulesから複製前に該当行を削除する
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*************", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

このSUBSYSTEMの行を一行削除してください.

2. /etc/udev/rules.d/70-persistent-net.rules にディレクトリを作成をしてファイル生成をさせない

/etc/udev/rules.d/70-persistent-net.rules にディレクトリを作成をしてファイル生成をさせない

rm -f /etc/udev/rules.d/70-persistent-net.rules
mkdir /etc/udev/rules.d/70-persistent-net.rules

/etc/motd に一筆加えておくのをお勧めする. 元に戻したければこのディレクトリを削除してリブートすればいい

rm -rf /etc/udev/rules.d/70-persistent-net.rules
reboot
3. /lib/udev/write_net_rules にネットワーク永続化ルールを無効にする設定を行う

/lib/udev/write_net_rules

#RULES_FILE='/etc/udev/rules.d/70-persistent-net.rules'
RULES_FILE='/dev/null'

/dev/null の彼方にでもおくっておきましょう.

参照

Manually trigger creation of /etc/udev/rules.d/70-persistent-net.rules file - Red Hat Customer Portal

udevを使ってPCIバスIDとNIC名称を固定する方法 - Qiita