1. 程式人生 > >VMware克隆虛擬機器後的網路設定(轉)

VMware克隆虛擬機器後的網路設定(轉)

通過VMware克隆虛擬機器後,新虛擬機器往往不能正確識別網絡卡,就需要重新配置。
下面是centos下重新配置網路的例子。

1. 虛擬網絡卡的設定
我的虛擬機器中裝了Host-only和NAT 2個虛擬網絡卡。子網分別是192.168.150.0和192.168.73.0。如下圖


之前遇到幾次虛擬機器不能上外網的問題,通過隨便動一下上面的設定然後點"apply",或者乾脆點"Restore Default"重新安裝虛擬網絡卡解決了。為了不讓網路設定發生變化,"Restore Default"後再把Subnet IP設成和原來一樣。

2. 恢復eth0和eth1裝置
克隆虛擬機器後,虛擬機器OS中還保留了克隆前的MAC地址,導致網絡卡不能被識別。解決辦法是下以下檔案中記錄的網絡卡資訊刪除,然後重啟,讓Linux引導時重新識別網絡卡。

/etc/udev/rules.d/70-persistent-net.rules


3網路設定
之前一直依賴VMWare的dhcp配置網路,但在克隆出的虛擬機器上老是有問題,於是乾脆配成靜態地址。
以下eth0是VMnet8(NAT)網絡卡,閘道器和DNS地址為192.168.73.2;eth1是VMnet1(Host-only)網絡卡

--------------------------------
# ifconfig eth0 192.168.73.130 netmask 255.255.255.0
# ifconfig eth1 192.168.150.130 netmask 255.255.255.0
# hostname node1
# route add default gw 192.168.73.2
# vi /etc/resolv.conf
search localdomain
nameserver 192.168.73.2
--------------------------------


4. 將網路配置寫入到配置檔案,這樣系統重啟後配置依然有效
--------------------------------
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
IPADDR=192.168.73.130 
NETMASK=255.255.255.0 
NETWORK=192.168.73.0 
BROADCAST=192.168.73.255 
STARTMODE=onboot 
USERCONTROL=no

# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
IPADDR=192.168.150.130 
NETMASK=255.255.255.0 
NETWORK=192.168.150.0 
BROADCAST=192.168.150.255 
STARTMODE=onboot 
USERCONTROL=no

# /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node1
GATEWAY=192.168.73.2

VMware 下LINUX出現:Device eth0 does not seem to be present, delaying initialization.解決辦法

  VMware 下LINUX下使用ifconfig檢視時無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"即可。另外一種方法是:把裡面的內容都刪除,然後重新啟動,系統也會重新發現網絡卡硬體,重新產生該檔案。 ok!

  總結:

  1: 編輯如下檔案

  vi /etc/udev/rules.d/70-persistent-net.rules

  註釋NAME="eth0" 所以行

  2: 註釋NAME="eth0" 所以行

  # 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"

  3:修改IP地址及主機名

  4:重啟,問題解決!

  VMware 下LINUX出現:Device eth0 does not seem to be present, delaying initialization.解決辦法

  在做mysql cluster 和lvs cluster的時候用的vmware虛擬環境

  系統: ubuntu server 6.10

  /sbin/ifconfig發現copy/clone之後的虛擬機器沒網絡卡

  原來是因為vmware已經修改了mac地址,而系統裡面仍然保留原來的mac地址

  修改/etc/iftab 為 vmware.vmx 中配置的mac即可

  順帶提下,別忘記了改主機名(/etc/hostname)和ip(/etc/network/interfaces)地址

  VMware 下LINUX出現:Device eth0 does not seem to be present, delaying initialization.解決辦法

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

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

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

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

  解決方法:

  ifconfig eth0 up。這樣ifconfig以後就顯示了eth0。

  找到eth0以後,再執行ifconfig eth0 192.168.174.2 netmask 255.255.255.0。即可與主機通訊。

  2、經過上面步驟是找到了eth0,可是重啟以後又沒有了。

  解決方法:

  cd /etc/sysconfigetwork/

  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找不到的解決方案

  VMware 下Linux 移動/複製後無法找到Eth0網絡卡的解決過程 Normal 0 7.8 磅 0 2 false false false EN

  -US ZH-CN X-NONE MicrosoftInternetExplorer4 原文地址: http://yangdehua.cn/?p=1881.遇到什麼的問

  題(What)在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地址,問題得到解決3.為

  什麼會出現這樣的錯誤,這樣做的原因是什麼(Why?)為什麼會產生這個問題呢,還需要從UUID談起

  (UUID是指在一臺機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平臺會提供生

  成UUID的API ),虛擬機器同樣會有一個UUID,而且這個UUID是唯一的。 虛擬機器的UUID一般和虛擬機器配置

  檔案的位置和物理主機有關。當我們對一個虛擬機器系統做移動操作的時候,我們不需要新建一個UUID。讓

  我們複製一個虛擬機器的時候我們應該選擇建立一個新的UUID,來保證此虛擬機器的唯一性而當我選擇了I

  copied it的時候,VM自然會為我新建一個UUID,一些新的Linux版本是把乙太網與Mac地址繫結,當新的

  UUID建立的時候,Mac地址就被改變了,但由於eth0裝置所裝載的配置與讀取預設配置的Mac地址不一致

  。另外的解決方案:進入 /etc/sysconfigetwork 或者/etc/sysconfigetwork-scripts ,編輯eth0配置檔案

  。比較在配置檔案裡面的Mac地址與輸入ifconfig 輸出的mac地址,如果兩者不一致,統一為ifconfig輸出的

  mac地址,然後重啟sudo rm /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.# 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"# 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"# 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"將這個/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 etch下,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.detwork restart(同上)我用ifconfig eth0 192.168.0.10 netmask

  255.255.255.252 設定完ip,然後執行service network restart。系統提示:eth0已有的MAC地址和系統要

  設定的不符,設定MAC地址失敗。因為網絡卡配置資訊儲存在/etc/sysconfigetwork-scripts/ifcfg-eth0配置

  檔案中,所以就去看看它吧。檔案的基本內容如下:DEVICE=eth0(哪張網絡卡)

  ONBOOT=yesBOOTPROTO=static(靜態ip狀態設定)BOOTPROTO=dhcp(dhcp獲取)

  IPADDR=192.168.1.8(靜態ip地址)NETMASK=255.255.255.0GATEWAY=192.168.1.1(閘道器)

  HWADDR=00:0C:29:96:38:F8(修改mac地址)(永久有效)我把檔案的內容進行了刪減,只留下

  DEVICE=eth0BOOTPROTO=dhcpHWADDR=00:0C:29:96:38:F8(修改為提示資訊中指出的系統期望賦給

  eth0的MAC)ONBOOT=yes重啟Linux後可以正常上網了。

原連結如下:http://blog.sina.com.cn/s/blog_406127500102xbee.html