LoginSignup
8
7

More than 5 years have passed since last update.

CentOS 6 の NIC の名前を固定する方法いろいろ

Posted at

CentOS 6 で Vagrant の Box とか AWS の AMI とか VirtualBox の ovf/ova とかのイメージを作るときに /etc/udev/rules.d/70-persistent-net.rules をそのまま残しておくと、イメージから起動したときに NIC のデバイス名が変わってしまい、IP アドレスが割り当てられないなどの問題が発生したりするの、あるあるだと思います。

このファイルを削除しておけば大丈夫ですが、

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

起動するたびに復元されてしまうので、イメージを作成する都度、手作業で削除する必要があり、めんどくさいし忘れてしまうこともあります。

ので、最初に ISO から構築した後に1回だけ作業するだけにしたいのですが、下記のような幾つかの方法があるようです。

毎回削除する

起動時に rc.local で自動的に削除します。実はやったことないのでこれで大丈夫かどうかわかりません。

echo "rm -f /etc/udev/rules.d/70-persistent-net.rules" >> /etc/rc.d/rc.local

ディレクトリを作る

同名のディレクトリを作っておくことでファイルの作成を失敗させます。

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

/dev/null にリンクする

/dev/null にリンクしておくことで書き込みを無視します。

rm -f /etc/udev/rules.d/70-persistent-net.rules
ln -sf /dev/null /etc/udev/rules.d/70-persistent-net.rules

/lib/udev/rules.d/75-net-description.rules を空にする

70-persistent-net.rules を作るための設定ファイルがあるのでそれを空にします。

> /lib/udev/rules.d/75-net-description.rules

どの方法もちょっと微妙です。特に最後の方法は yum update で戻ってしまいそうです。

AWS の CentOS 6 の AMI を見たところ、次のような空ファイルが作成されていました。

> /etc/udev/rules.d/75-persistent-net-generator.rules

多分この方法が一番いいと思います。


man udev 曰く(Rules files のちょっと下あたり)

Rule files are required to have a unique name, duplicate file names are ignored.
Files in /etc/udev/rules.d/ have precedence over files with the same name in /lib/udev/rules.d/. This can be used to ignore a default rules file if needed.

ルールファイルは一意の名前を持っている必要があり、重複したファイル名は無視されます。
/etc/udev/rules.d/ にあるファイルは /lib/udev/rules.d/ で同じ名前のファイルより優先されます。
これは、必要に応じて、デフォルトのルールファイルを無視するために使用することができます。
(Powered by Google 翻訳)

8
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7