久しぶりに自分のゲストLinuxにアクセスしたら息してない。という事でVMware Player上のScientific LinuxにてNICが見えなくなった時の修正メモ。
現象
外部からアクセスできない。
直接コンソールをさわってifconfigすると
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:552 errors:0 dropped:0 overruns:0 frame:0
TX packets:552 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:90509 (88.3 KiB) TX bytes:90509 (88.3 KiB)
としかでない。eth0が無くなっている。
試しに
- VMwareでNIC OFF/ONしてみる。
VMwareの管理画面から一度NICを削除→Boot→再度NICを追加→Boot。
結果変わらず。 - .vmxファイルに色々書いてみる
ネットの情報を頼りに.vmxファイルにethernet0.virtualDev = “e1000“とか書いてみましたが効果なし。
結局
ググった所、NICの認識情報は
/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, and change only the value of the NAME= key.# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:45:05:82″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:43:69:fd”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″
eht1として新しく認識してしまっていると判明。
一度/etc/udev/rules.d/70-persistent-net.rulesを消してreboot。
するとeth1だけになったので
sudo vi /etc/udev/rules.d/70-persistent-net.rules
してeth1をeth0に変更して保存。
これで
ifconfig eth0 up
と実行すればeth0は出る様になりました。でも起動時にまだ
と出てまだ使えない。
/etc/sysconfig/network-scripts/ifcfg-eth0
を編集し、
HWADDR=”xx:xx:xx:xx:xx:xx”
をゲストOSの.vmxに書いてある
ethernet0.generatedAddress = “xx:xx:xx:xx:xx:xx”
と合わせた所、前のネットワーク設定を引き継いで起動できるようになりました。
原因
は推測でしかないけれど、修理上がりのマザーを戻した時に「この仮想OSを移動しましたか?」みたいなメッセージが出たので「移動」を押したのが思い当たります。そこでVMwareは仮想NICに新しいMACアドレスを与えたのかも。そしてScientific LinuxではKudzuが動いて無くてシカト、って形でしょうか。