Ubuntu Server 8.04のイメージをコピーするとネットワークがつながらなくなる
これは、udevというサービスによるものです。
udevはLinuxカーネル2.6以降で実装されたもので、デバイスファイルを動的に生成することであらかじめデバイスファイルをすべて用意しておかなくても、リムーバブルメディアなどの周辺機器を簡単に使えるようになります。
で、当然NICについての設定ファイルもudevは持っています。それが/etc/udev/rules.d/70-persistent-net.rulesです。
$ cat /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. # PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:**:**:**:**", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
ここにMACアドレスが書かれています。
んが、VMware(確認したのはServer 1系)はイメージをコピーするとMACアドレスを振り直すんです。そのとき、udevの方の設定は変えてくれません。
なのでデバイス名が変わっちゃうんですね。dmesgを見てみましょう。
$ dmesg | grep eth (snip) [13.907766] udev: renamed network interface eth0 to eth2
eth0がeth2にリネームされてます。ここでifconfig。
$ ifconfig eth2 eth2 Link encap:Ethernet HWaddr 00:0c:**:**:**:** BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:16 Base address:0x1400
あるある。
/etc/udev/rules.d/70-persistent-net.rules内のMACアドレスをこのMACアドレスに修正すれば、問題解決です。
最初は分からなくて/etc/network/interfacesのデバイス名を変更してました。