經過複製建立虛擬機,沒法聯網的解決辦法

vmware 下找不到ifcfg-eth0的問題

http://www.linuxdiyf.com/viewarticle.php?id=90924

在windowXP下安裝了suse linux,在vmware下選擇了host-only方式與主機通訊。

使用host-only方式與主機通訊,vmware使用的是VMware Network Adapter VMnet1虛擬網卡,查看該網卡的IP是 192.168.174.1。

在虛擬機下面的linux下遇到了一下幾個問題:

一、找不大 eth0網卡,也就連不上網絡。症狀是ifconfig之後只現實lo,不顯示eth0。

解決方法:
ifconfig eth0 up。這樣ifconfig之後就顯示了eth0。

找到eth0之後,再運行ifconfig eth0 192.168.174.2 netmask 255.255.255.0。便可與主機通訊。

二、通過上面步驟是找到了eth0,但是重啓之後又沒有了。

解決方法:

cd /etc/sysconfig/network/
cp ifcfg-lo ifcfg-eth0

vim ifcfg-eth0 修改配置以下
IPADDR=192.168.174.2
NETMASK=255.255.255.0
NETWORK=192.168.174.0
BROADCAST=192.168.174.255
STARTMODE=onboot
USERCONTROL=no

保存,重啓,便可。

VMWare克隆或複製Linux虛擬機後eth0找不到的解決方案

http://www.heiqu.com/show-72766-1.html

  在Vmware裝了Ubuntu 9.04 Server,今天在啓動的時候,發現找不到網卡eth0,在輸入ifconfig – a的時候,也沒有任何Ethnet的信息,而輸入eth0 down 的時候,提示我no device found(設備無法找到) ,我檢查了VMware的EtherNET配置的時候,仍舊是NAT網絡設置,和我原來的同樣沒有了網卡,我就沒法經過SecureCRT來鏈接Ubuntu,若是每次都要來到VMware來輸入命令,很麻煩2.怎樣解決(How)回想了在啓動VMware的時候,系統提示個人Ubuntu文件被移動(位置被改變了),讓我確認是moved仍是copy的 ,我當時候選擇了默認的(copy)

  (This virtual machine may have been moved or copied. In order to configure certain management and networking features VMware Workstation needs to know which. Did you move this virtual machine, or did you copy it? If you don''t know, answer "I copied it".)

根據這個信息,在google 搜索了copy or moved vmware linux,在VMware的官方論壇找到了這個帖子 lost eth0 when using a copied ubuntu-server vm,裏面提到了多種解決方案,我最終是選擇了sudo rm /etc/udev/rules.d/70-persistent-net.rules ,執行該命令後,重啓ubuntu (sudo reboot),而後ifconfig ,出現了ip地址,問題獲得解決。php

3.爲 什麼會出現這樣的錯誤,這樣作的緣由是什麼(Why?)html

爲何會產生這個問題呢,還須要從UUID談起(UUID是指在一臺機器上生成的數字,它保證對在同一時空中的全部機器都是惟一的。一般平臺會提供生成UUID的API ),虛擬機一樣會有一個UUID,並且這個UUID是惟一的。 虛擬機的UUID通常和虛擬機配置文件的位置和物理主機有關。當咱們對一個虛擬機系統作移動操做的時候,咱們不須要新建一個UUID。讓咱們複製一個虛擬機的時候咱們應該選擇創建一個新的UUID,來保證此虛擬機的惟一性而當我選擇了I copied it的時候,VM天然會爲我新建一個UUID,一些新的Linux版本是把以太網與Mac地址綁定,當新的UUID創建的時候,Mac地址就被改變了,但因爲eth0設備所裝載的配置與讀取默認配置的Mac地址不一致 。另外的解決方案:進入 /etc/sysconfig/network 或者/etc/sysconfig/network-scripts ,編輯eth0配置文件。比較在配置文件裏面的Mac地址與輸入ifconfig 輸出的mac地址,若是二者不一致,統一爲ifconfig輸出的mac地址,而後重啓。linux

sudo rm /etc/udev/rules.d/70-persistent-net.rules 可以成功的緣由:ubuntu

該文件的內容:vim

# 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.網絡

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:d2:3f:2c", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"測試

# PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:87:43:18", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"this

# PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:87:43:22", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"google

# PCI device 0x1022:0x2000 (pcnet32) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:c8:3a:15", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3".net

將這個/etc/udev/rules.d/70-persistent-net.rules刪除,重啓,網卡eth0成功啓動,並從新生成/etc/udev/rules.d/70-persistent-net.rules文件。


  

VMWare克隆或複製Linux虛擬機後eth0找不到的解決方案

現象描述:

  最近裝了虛擬機系統是 Fedora,爲了之後使用方便對虛擬機進行克隆或複製。當使用克隆後的虛擬機時發現原來在基本系統中的網 卡eth0到了新系統卻沒有了,使用ifconfig -a會發現只有eth1。由於基本系統的網絡相關配置都是基於eth0的,eth1沒有網絡相關的 配置,此時要正常該虛擬機中的網絡,只有添加eth1的網絡配置,這樣每次都要修改網卡配置在作多Linux系統測試的時候很不方便。更進一步,若是基於此克隆虛擬機繼續克隆或複製新的虛擬機,網卡的標識每一次都會自動加1(第二次克隆會變成eth2),dmesg卻顯示內核只識別到網卡eth0。

  緣由分析:
  不少Linux distribution使用udev動態管理設備文件,並根據設備的信息對其進行持久化命名。例如在Debian etch中,udev會在系統引導的過程當中識別網卡,將mac地址和網卡名稱對應起來記錄在udev的規則腳本中。而VMware會自動生 成虛擬機的mac地址。這樣,因爲基本系統的虛擬機已經記錄了該虛擬機的網卡mac地址對應於網卡eth0,在克隆出的虛擬機中因爲mac地址發生改 變,udev會自動將該mac對應於網卡eth1。以此類推,udev會記錄全部已經識別的mac與網卡名的關係,因此每次克隆網卡名稱會自動加1,而其 實kernel僅僅只識別到一張網卡,跟網卡名相關的網絡配置也未發生任何變化。

  解決方案:

  網絡搜索發如今Debian etc下,udev將mac與網卡名稱的對應關係保存在/etc/udev/rules.d/z25_persistent-net.rules中,在克隆出的虛擬機中只要刪除跟NAME=」eth0″相關的行並重啓系統便可。例如在 Debian etch中刪除以下兩行:# PCI device 0×1022:0×2000(pcnet32)SUBSYSTEM==」net」,DRIVERS==」?*」,ATTRS{address}==「00:0c:29:4c:46:01″,NAME=」eth0″

      在個人Fedora 下修改/etc/udev/rules.d 下的 70-persistent-net.rules 文件。

  刪除# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda) SUBSYSTEM==」net」, ACTION==」add」, DRIVERS==」?*」, ATTR{address}==」00:0c:29:ad:06:2a」,ATTR{type}==」1″, KERNEL==」eth*」, NAME=」eth0″
  而後把eth1對應的哪一行的」eth1″修改成」eth0″便可。

  

       另一種方法是:把裏面的內容都刪除,而後從新啓動,系統也會從新發現網卡硬件,從新產生該文件。

  ok!

  

  

  

  VMWare克隆或複製Linux虛擬機後沒法上網的解決

  我拷貝了過來的Linux虛擬機沒法上網,我用ifconfig命令查詢了一下發現只有eth1和lo設備,沒有eth0。因而我在Google上搜索了一下,找到了下面這篇文章(http://blog.chinaunix.net/u3/97076/showart_2015984.html)。《VMWare克隆或複製Linux虛擬機後eth0找不到的解決方案》

現象描述:最近裝了虛擬機系統是 fedora9,爲了之後使用方便對虛擬機進行克隆或複製。當使用克隆後的虛擬機時發現原來在基本系統中的網卡eth0到了新系統卻沒有了,使用 ifconfig-a會發現只有eth1。由於基本系統的網絡相關配置都是基於eth0的,eth1沒有網絡相關的配置,此時要正常該虛擬機中的網絡,只有添加eth1的 網絡配置,這樣每次都要修改網卡配置在作多Linux系統測試的時候很不方便。更進一步,若是基於此克隆虛擬機繼續克隆或複製新的虛擬機,網卡的標識每一 次都會自動加1(第二次克隆會變成eth2),dmesg卻顯示內核只識別到網卡eth0。緣由分析:不少Linux distribution使用udev動態管理設備文件,並根據設備的信息對其進行持久化命名。例如在Debian etch中,udev會在系統引導的過程當中識別網卡,將mac地址和網卡名稱對應起來記錄在udev的規則腳本中。而VMware會自動生成虛擬機的 mac地址。這樣,因爲基本系統的虛擬機已經記錄了該虛擬機的網卡mac地址對應於網卡eth0,在克隆出的虛擬機中因爲mac地址發生改變,udev會 自動將該mac對應於網卡eth1。以此類推,udev會記錄全部已經識別的mac與網卡名的關係,因此每次克隆網卡名稱會自動加1,而其實kernel 僅僅只識別到一張網卡,跟網卡名相關的網絡配置也未發生任何變化。解決方案:網絡搜索發如今Debian etch下,udev將mac與網卡名稱的對應關係保存在/etc/udev/rules.d/z25_persistent-net.rules中,在克隆出的虛擬機中只要刪除跟NAME="eth0"相關的行並重啓系統便可。例如在Debian etch中刪除以下兩行:# PCI device 0x1022:0x2000(pcnet32)SUBSYSTEM=="net",DRIVERS=="?*",ATTRS{address}=="00:0c:29:4c:46:01",NAME="eth0" 在個人fedora9 下修改/etc/udev/rules.d 下的 70-persistent-net.rules 文件 刪除# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ad:06:2a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

而後把eth1對應的哪一行的"eth1"修改成"eth0"便可。另一種方法是:把裏面的內容都刪除,而後從新啓動,系統也會從新發現網卡硬件,從新產生該文件。這裏補充一點:用下面命令來實現上述第二種方法也是同樣的:cd /etc/udev/rules.dsudo rm *-net.rules //刪除sudo reboot本人在用上述方法操做以後,再用ifconfig查看,確實找到了eth0設備,但沒有ip地址。接下來用ifconfig命令設置ip地址,一些相關命令以下:ifconfig eth0 192.168.0.10 將採用默認子網掩碼ifconfig eth0 192.168.0.10 netmask 255.255.255.252 (手動定義子網掩碼)(重啓後無效)ifconfig eth0 down(停用網卡)ifconfig eth0 up(激活網卡)service network restart(重啓網絡服務)/etc/rc.d/init.d/network restart(同上)我用ifconfig eth0 192.168.0.10 netmask 255.255.255.252 設置完ip,而後執行service network restart。系統提示:eth0已有的MAC地址和系統要設置的不符,設置MAC地址失敗。由於網卡配置信息保存在/etc/sysconfig/network-scripts/ifcfg-eth0配置文件中,因此就去看看它吧。文件的基本內容以下:DEVICE=eth0(哪張網卡)

ONBOOT=yes

BOOTPROTO=static(靜態ip狀態設置)

BOOTPROTO=dhcp(dhcp獲取)

IPADDR=192.168.1.8(靜態ip地址)

NETMASK=255.255.255.0

GATEWAY=192.168.1.1(網關)

HWADDR=00:0C:29:96:38:F8(修改mac地址)(永久有效)

我把文件的內容進行了刪減,只留下

DEVICE=eth0

BOOTPROTO=dhcp

HWADDR=00:0C:29:96:38:F8(修改成提示信息中指出的系統指望賦給eth0的MAC)

ONBOOT=yes

重啓Linux後能夠正常上網了。

相關文章
相關標籤/搜索