码迷,mamicode.com
首页 > 系统相关 > 详细

关于vmware下复制linux系统虚拟机后eth0变成eth1问题解决

时间:2015-01-13 23:10:37      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:

在vmware虚拟机中,当我们克隆或者复制linux系统虚拟机后,再启动系统时会发现系统下不再有eth0,而变成了eth1

当我们使用/etc/init.d/network restart重启网络时,会提示找不到设备eth0,如下图所示:

技术分享

这时我们再使用ifconfig -a命令去查看所有网卡时,会发现其实eth0已经变成了eth1。

那么为什么原来的eth0会变成eth1?

很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,

将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的虚拟机,VMware会自动为虚拟机的网卡生成MAC地址,当你复制

克隆或者重装虚拟机软件时,由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0的信息,对于这个新的网卡,udev会自动

将其命名为eth1(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。

如何把名字改回eth0?我们可以依次执行如下命令,也可以将其写入到脚本文件,然后直接执行,具体内容如下:

#!/bin/bash
#
eth0=/etc/sysconfig/network-scripts/ifcfg-eth0
rm -rf /etc/udev/rules.d/70-persistent-net.rules
echo DEVICE=eth0 > $eth0
echo ONBOOT=yes >> $eth0
echo BOOTPROTO=none >> $eth0
echo NM_CONTROLLED=no >> $eth0
echo HWADDR=$(ifconfig eth1 | grep eth1 | awk {print $5}) >> $eth0
echo TYPE="Ethernet" >> $eth0
echo IPADDR=192.168.100.2 >> $eth0             //IP根据自己情况配置
echo NETMASK=255.255.255.0 >> $eth0            //掩码根据自己情况配置
echo GATEWAY=192.168.100.1 >> $eth0            //网关根据自己情况配置
/etc/init.d/network stop
/etc/init.d/NetworkManager stop
ifconfig eth1 down
udevadm trigger
udevadm control --reload-rules
service network restart
service NetworkManager start

方法二、原理和一差不多。具体操作如下:

1、首先删除/etc/udev/rules.d/70-persistent-net.rules文件。

2、如果eth0的网卡配置文件中有HWADDR选项,直接将其删除。

3、重启linux系统。

以上的操作过程和思想,如下图所示:

技术分享

总结:以上两种方法,各有各的优点。

方法一不需要重启,省时,方法二思路清晰,简单明了。

因此具体选择那一种方法,可以根据自己的实际情况面定。

关于vmware下复制linux系统虚拟机后eth0变成eth1问题解决

标签:

原文地址:http://www.cnblogs.com/5201351/p/4222654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!