====== CentOS6 udev 更改 nic 名稱的狀況 ====== * 因為透過 virt-clone 複製 vm 後, 新啟動 vm 內的 nic 就會變成 eth1 而不是原本的 eth0 ifconfig -a eth1 Link encap:Ethernet HWaddr 00:16:36:63:D3:2A UP 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) 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:40350 errors:0 dropped:0 overruns:0 frame:0 TX packets:40350 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:32604075 (31.0 MiB) TX bytes:32604075 (31.0 MiB) * 這個問題可以經過開機的紀錄發現是由 udev 所更改 dmesg | grep eth udev: renamed network interface eth0 to eth1 * 原來是 nic 的 MAC 改變時, 會在 /etc/udev/rules.d/70-presistent-net.rules 內增加哪個 MAC 應該對應到哪個 eth 的規則, 所以如果確定之前的 MAC 是不需要的, 可以直接編輯這個檔案, 將不需要的規則刪除, 並修改正確 MAC 需要對應到的 eth 編號, 例如我要將目前 00:16:36:63:D3:2A 對應到 eth1 改回 eth0 * 編輯前的 /etc/udev/rules.d/70-presistent-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. # net device () SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:42:8d:bb", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # net device () SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:63:d3:2a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" * 編輯後的 /etc/udev/rules.d/70-presistent-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. # net device () SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:63:d3:2a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" * 修改之後, 重新啟動就可生效. **如果要使用在 VM Image Template** - 去除 /etc/sysconfig/network-scripts/ifcfg-eth0 內的 UUID 以及 HWADDR Exp. : #UUID="0b2a4fa5-bc20-45cc-8981-e1a5ce59476c" #HWADDR=52:54:00:55:FD:A1 : - 刪除 /etc/udev/rules.d/70-persistent-net.rules 這個檔案 Exp. rm -f /etc/udev/rules.d/70-persistent-net.rules ===== 參考網址 ===== * http://www.cyberciti.biz/faq/rhel-fedora-centos-howto-swap-ethernet-aliases/ * http://www.cyberciti.biz/tips/vmware-linux-lost-eth0-after-cloning-image.html {{tag>centos6 udev nic}}