Edited at

VMイメージ内でMACアドレスとインターフェース名(eth0とか)の関係が固定化されるのを防ぐ

More than 5 years have passed since last update.

今時のLinuxはudevが親切にもネットワークインターフェース名とMACアドレスの関係を固定化してくれるんだが、この機能って同じディスクイメージの複製が使いまわされることが前提の仮想マシンを前提にすると非常に邪魔になる。具体的にはコピーしたイメージ上ではeth0が出来なかったり、eth1になっちゃったりとか…。

このMACアドレスの固定化設定は/etc/udev/rules.d/70-persistent-net.rulesというファイルにシェルスクリプトして保存されている。なのでこれを削除してやれば次回起動時は期待通りにeth0が使えるようになる、のだがその際にまたこのファイルが再生成されてしまうので非常に邪魔!

というわけでVMイメージの場合は消すだけじゃなく、以下のようにファイルが出来るべき場所にディレクトリを作っておくことでファイル作成が出来ないようにして防ぐってことをしている。

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

mkdir /etc/udev/rules.d/70-persistent-net.rules
# 後で見た人がこのディレクトリの意味で悩まないよう、メモを残しておく
echo http://bit.ly/Zobiu3 >/etc/udev/rules.d/70-persistent-net.rules/README

一応これで良い感じにMACアドレスの固定化を避ける事が出来るようになる。

元に戻したければこのディレクトリを削除してやれば良い。

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

もしもっとスマートな方法があるよ、ってのがあれば教えてください(^^;