在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/-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问题解决的更多相关文章

  1. 如何在Windows环境下安装Linux系统虚拟机

    如何在Windows环境下安装Linux系统虚拟机 本篇经验写给想要入门学习C语言的小白们.Windows系统因为使用窗口图形化,操作简单,功能多样,所以我们在Windows环境下可以做到很多,但想要 ...

  2. Vmware下的Linux系统,安装WPS报错:[Errno 256] No more mirrors to try

    最近新装了虚拟环境Vmware下的Linux系统,准备看doc文档发现不能读取,才想起来一起都是重新开始的~没别的~开始安装吧: 1.关虚拟机Linux,添加cdrom镜像ISO文件--开虚拟机--- ...

  3. VMware下安装Linux系统,ORACLE软件,DBCA建库

    操作系统安装   在vmware下安装Linux (OEL5.6),用于数据库服务器 1.打开vmware,选择"创建新的虚拟机"       2.选择自定义安装   3.选择虚拟 ...

  4. VMware下的Linux系统中Windows的共享目录,不支持创建软连接

    [问题]  在编译VMware下的Linux系统对从Windows中共享过来的文件,进行编译的时候,遇到:  ln: creating symbolic link XXXXXX : Operation ...

  5. 【转】VMware Converter迁移linux系统虚拟机

    原始出处 今天接到一个需求,迁移一台linux的业务系统到vCenter云管理平台,其中遇到一些问题,于是进行了排错,这个过程与大家分享,下面把整个步骤进行截图说明. 1. 首先,登录到VMware  ...

  6. 使用VMware新建一个Linux系统虚拟机(全)

    我们将其分为两步,1:新建虚拟机:2:安装Red Hat Enterprse Linux 6操作系统 1.首先我们新建一个虚拟机,先不安装操作系统,稍后再对其安装Linux系统. 新建虚拟机步骤如下: ...

  7. 如何使windows系统ping通VMware下面的linux系统

    引用http://www.linuxidc.com/Linux/2012-11/73749p2.htm 很多人在开始接触Linux或者是嵌入式开发的时候都会遇到一个难题,就是如何在Linux下ping ...

  8. VMware 下的Linux系统远程连接putty

    ifconfig查看ip地址 虚拟网卡需要自己新建  nat8 putty不能显示中文的解决办法 http://jingyan.baidu.com/article/5552ef47df8a97518f ...

  9. VMware安装与VMware下安装CentOS系统

    1.下载安装VMware,我安装的是VMware 12.VMware从11开始不再支持32位系统,32位系统请安装VMware10. VMware官方功能特性介绍http://www.vmware.c ...

随机推荐

  1. adb 安装失败

    打开Terminal终端:Ctrl + Alt + T 按顺序执行以下三条命令:                   sudo add-apt-repository ppa:nilarrimogard ...

  2. iOS学习之UINavigationController

    一.UINavigationController      1.UINavigationController:导航控制器,是iOS中最常用的多视图控制器之一,用它来管理多个视图控制器.可以称为是管理控 ...

  3. 条款11:在operator=中处理“自我赋值”

    什么是自我赋值,就是 v = v 这种类型的语句,也许很多人都会说鄙视这种写法,但是如下的写法会不会出现呢? 比如:a[i] = a[j];      // 不巧的是i可能和j相等 *px = *py ...

  4. IIS 404.17 错误解决方案

    操作方法:在管理员身份打开命令行,运行以下命令: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i

  5. Labview实现频率调制(FM)

    Labview实现频率调制(FM) 频率调制的原理: 自己的实现为三角函数分解 根据这个公式在Labview中连线则可以得到最终的波形输出 实现效果 从频域图中可以看出,载波信号的频率被调制,原本为双 ...

  6. 20145103《java程序设计》第五周学习总结

    20145103<Java程序设计>第5周学习总结 教材学习内容总结 第八章 异常处理 1.设计错误对象都继承自java.lang.Throwable类 2.Java中所有错误都会被打包为 ...

  7. ueditor:原谅我这一生不羁放纵爱独特

    客户指明道姓需要使用百度编辑器,好吧,虽然自从李彦宏把一个好好的千千静听搞得节操尽碎之后,我就对百度的东西毫无好感,但是客户是上帝嘛,不就一个文本编辑器嘛,弄之,始料未及的是,就是这样一个简单的文本编 ...

  8. android 开发 system/app目录下面有多个重复包名的apk,会不会冲突

    环境:已经拥有了root权限的android系统,我们的apk是开机启动 测试:将2个相同的版本拷贝到系统system/app目录下面 adb root #获取root权限,前提是已经开放了root权 ...

  9. VIMTUTOR《VIM教程》

    =============================================================================== =      欢     迎     阅 ...

  10. angular 嵌套实现树结构 ng-repeat ng-include

    效果图 ang.html <!doctype html><html lang="en"><head>    <meta charset=& ...