1. 程式人生 > >解決kvm虛擬機器啟動之後,網絡卡eth0變為eth1問題

解決kvm虛擬機器啟動之後,網絡卡eth0變為eth1問題

2018-12-19


 

故障前提

kvm虛擬機器遷移到其他伺服器上之後,重新啟動網絡卡會出現問題

例如原網絡卡名稱為eth0,遷移重啟之後會自動變為eth1

為什麼eth0會變成eth1?

很多Linux distribution使用udev動態管理裝置檔案,並根據裝置的資訊對其進行持久化命名。udev會在系統引導的過程中識別網絡卡,將mac地址和網絡卡名稱對應起來記錄在udev的規則指令碼中。而對於新的虛擬機器,VMware會自動為虛擬機器的網絡卡生成MAC地址,當你克隆或者重灌虛擬機器軟體時,由於你使用的是以前系統虛擬硬碟的資訊,而該系統中已經有eth0的資訊,對於這個新的網絡卡,udev會自動將其命名為eth1(累加的原則),所以在你的系統啟動後,你使用ifconfig看到的網絡卡名為eth1

如何恢復到eth0?

vi /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:41:c1:7e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x8086:0x100f (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:41:c1:9e", ATTR{type}=="1", KERNEL=="eth*"
, NAME="eth1"

裡面有兩張網絡卡資訊,若要使網絡卡名稱恢復到eth0,需要將檔案內的兩張網絡卡的資訊都刪除,然後重啟系統即可