Linux distribution使用udev動態(tài)管理設(shè)備文件,導(dǎo)致虛機(jī)下克隆或者遷移虛機(jī)后eth* *會累加1,無法識別出來原本的eth0

使用hyper-v安裝了linux,安裝成功后,使用的網(wǎng)卡是eth0,沒有eth1。但是遷移或者克隆后,eth0消失無法使用,系統(tǒng)卻自動生成了eth1網(wǎng)卡以及不斷累加,這可以使用ifconfig命令看的到。

[user@localhost ~]$ ifconfig

eth1 Link encap:Ethernet HWaddr 00:0C:29:A9:22:9D

inet addr:192.168.1.108 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fea9:229d/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:313 errors:0 dropped:0 overruns:0 frame:0

TX packets:182 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:67356 (65.7 KiB) TX bytes:26612 (25.9 KiB)

Interrupt:19 Base address:0x2000

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:1788 errors:0 dropped:0 overruns:0 frame:0

TX packets:1788 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:89560 (87.4 KiB) TX bytes:89560 (87.4 KiB)

使用service network restart指令來重新啟動網(wǎng)絡(luò)服務(wù)時(shí),會看到有eth0網(wǎng)卡不存在的提示。

經(jīng)過百度,了解了一些信息,特此記錄在此,以備忘。

為什么eth0會變成eth1?

很多Linux distribution使用udev動態(tài)管理設(shè)備文件,并根據(jù)設(shè)備的信息對其進(jìn)行持久化命名。udev會在系統(tǒng)引導(dǎo)的過程中識別網(wǎng)卡,將mac地址和網(wǎng)卡名稱對應(yīng)起來記錄在udev的規(guī)則腳本中。而對于新的虛擬機(jī),VMware會自動為虛擬機(jī)的網(wǎng)卡生成MAC地址,當(dāng)你克隆或者重裝虛擬機(jī)軟件時(shí),由于你使用的是以前系統(tǒng)虛擬硬盤的信息,而該系統(tǒng)中已經(jīng)有eth0的信息,對于這個(gè)新的網(wǎng)卡,udev會自動將其命名為eth1(累加的原則),所以在你的系統(tǒng)啟動后,你使用ifconfig看到的網(wǎng)卡名為eth1。

如何恢復(fù)到eth0?

在fedora中,udev記錄網(wǎng)絡(luò)規(guī)則的腳本為:/etc/udev/rules.d/70-persistent-net.rules

[user@localhost ~]$ 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.

PCI device 0x1022:0x2000 (pcnet32)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?", ATTR{address}=="00:0c:29:5a:6c:73", ATTR{type}=="1", KERNEL=="eth", NAME="eth0"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?", ATTR{address}=="00:0c:29:a9:22:9d", ATTR{type}=="1", KERNEL=="eth", NAME="eth1"

打開該文件,這時(shí)你會發(fā)現(xiàn),里面有eth0,eth1兩個(gè)網(wǎng)卡的信息,但實(shí)際上你ifconfig時(shí)只能發(fā)現(xiàn)eth1一個(gè)網(wǎng)卡的信息,這時(shí)因?yàn)閑th0根本就不存在。

方法1 :將其中eth0的信息刪掉,并將eth1信息中的設(shè)備名改為eth0,重啟系統(tǒng),你看到的網(wǎng)卡就是eth0了,

方法2或者刪掉其中所有的信息重啟系統(tǒng)udev會幫你發(fā)現(xiàn)新的設(shè)備的。(我用此方法)

另外還有一個(gè)啟動腳本文件/etc/sysconfig/network-scripts/ifcfg-eth0,該文件中的mac地址為原來eth0網(wǎng)卡的物理地址,而虛擬機(jī)為eth1分配新的物理地址,故啟動腳本中的信息與實(shí)際信息時(shí)不匹配的,將MAC的地址信息修改為70-persistent-net.rules中的eth1的MAC地址,再次重啟網(wǎng)絡(luò),就完全恢復(fù)到以前eth0網(wǎng)卡的狀態(tài)了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容