首頁 > 軟體

CentOS6 虛擬機器遷移後網絡卡名更改問題解決

2020-06-16 17:08:33

實驗過程中,我們經常需要複製虛擬機器,以模仿生產過程中同等設定的條件。

但無論是初次開啟,選擇"我已複製該虛擬機器“也好,還是在虛擬機器設定>網路介面卡>高階中重新生成Mac地址,開機後選擇”我已移動該虛擬機器“也罷。開機後查詢IP時,我們都會很遺憾的發現,網絡卡的名字,不一樣了。

這是因為原Mac地址占用舊網絡卡,新Mac地址只能使用新的網絡卡名稱。複製虛擬機器為了不與原虛擬機器衝突,也是生成了新的Mac地址。

[root@CentOS6 ~]# ifconfig
eth2      Link encap:Ethernet  HWaddr 00:50:56:22:C9:22 
          inet addr:192.168.234.187  Bcast:192.168.234.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe22:c922/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:806 (806.0 b)  TX bytes:1152 (1.1 KiB)
eth3      Link encap:Ethernet  HWaddr 00:50:56:3A:FD:74 
          inet addr:172.17.251.174  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::250:56ff:fe3a:fd74/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2565 errors:0 dropped:0 overruns:0 frame:0
          TX packets:61 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:243027 (237.3 KiB)  TX bytes:9974 (9.7 KiB)
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:65536  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:240 (240.0 b)  TX bytes:240 (240.0 b)

雖然不影響使用,但怎麼看都不舒服啊。而且有些實驗中網絡卡名不統一也只有麻煩。正所謂沒有標準化就很難進行自動化管理。
那麼,如何更改遷移後的虛擬機器的網絡卡名呢?

(1).修改組態檔/etc/udev/rules.d/70-persistent-net.rules
[root@centos6 ~]# vim /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 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:13:d6:94", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
 
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:13:d6:9e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
 
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:22:c9:22", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
 
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:3a:fd:74", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

刪除原Mac,更改NAME值,搞定。改好後是這個樣子。
[root@centos6 rules.d]# vim /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 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:22:c9:22", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:3a:fd:74", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
~

(2).重新啟動或重灌網絡卡驅動,使組態檔生效
檢視網絡卡驅動名:ethtool -i eth2或dmesg|grep -i eth
解除安裝網絡卡驅動:modprobe -r e1000 或rmmod e1000
裝載網絡卡驅動:modprobe e1000
[root@centos6 rules.d]# dmesg|grep -i eth
e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:50:56:3a:fd:74
e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
e1000 0000:02:02.0: eth1: (PCI:66MHz:32-bit) 00:50:56:22:c9:22
e1000 0000:02:02.0: eth1: Intel(R) PRO/1000 Network Connection
udev: renamed network interface eth1 to eth2
udev: renamed network interface eth0 to eth3
e1000: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
8021q: adding VLAN 0 to HW filter on device eth3
e1000: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
8021q: adding VLAN 0 to HW filter on device eth2
eth2: no IPv6 routers present
eth3: no IPv6 routers present
#阿拉的網絡卡驅動只有e1000一塊,所以阿拉解除安裝一塊就夠了。有的網絡卡名不一樣,要分別解除安裝
[root@centos6 rules.d]# rmmod e1000
#再用ifconfig檢視會發現原網絡卡資訊不見了。(阿拉這一步就不黏程式碼了)
#裝載網絡卡驅動
[root@centos6 rules.d]# modprobe e1000
#再次檢視,修改成功
[root@centos6 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:22:C9:22 
          inet addr:192.168.234.187  Bcast:192.168.234.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe22:c922/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:746 (746.0 b)  TX bytes:1152 (1.1 KiB)
 
eth1      Link encap:Ethernet  HWaddr 00:50:56:3A:FD:74 
          inet addr:172.17.251.174  Bcast:172.17.255.255  Mask:255.255.0.0
          inet6 addr: fe80::250:56ff:fe3a:fd74/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:475 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:48665 (47.5 KiB)  TX bytes:7289 (7.1 KiB)
 
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:65536  Metric:1
          RX packets:80 errors:0 dropped:0 overruns:0 frame:0
          TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6148 (6.0 KiB)  TX bytes:6148 (6.0 KiB)

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-09/146746.htm


IT145.com E-mail:sddin#qq.com