这里说一下,如果复制了虚拟机,设置新的MAC地址为什么?

在虚拟机的网络设置中--->高级。然后找到如下窗口,生成新的MAC地址即可。

--------------------------------------------------------------------------------

一、问题描述
VMware中克隆虚拟机是经常的事情,虽然如此,用到虚拟机时,本人还是喜欢新安装一个操作系统,针对服务器的应用,在安装操作系统时,一并安装好,并且也花不了多少时间。但最近需要大量的配置一样的虚拟机进行测试,故安装了一个模板虚拟机,然后直接复制模板虚拟机到不同的文件夹,然后使用VMware 直接打开使用,但问题出来了,打开这些复制(克隆)的虚拟机全部会出现网络无法启动的问题。使用 service network start  命令出现报错如下:

device eth0 does not seem to be present
RTNETLINK answers: File exists 
RTNETLINK answers: File exists 
RTNETLINK answers: File exists

玩Linux蛮多年了,自认为对linux网络配置很熟悉了,我第一直觉就是MAC地址的问题,怎么更改配置都不行,百度半天,网上很多处理方法都是说与NetworkManager服务冲突导致,只要把该服务停止即可,查半天,本人安装的操作系统根本就没这个服务,哪来的冲突?

直到今天才发现原来还有太多的东西需要学习。不过我相信只要肯钻研及善用谷歌与百度,还是找到了解决方法。
 
二、原因分析

使用VMware 打开复制过来的操作系统文件,VMware会为新产生的虚拟机配置一个与原始虚拟机网卡MAC地址不同的网卡。对于CentOS这样的Linux系统,会把运行时的网卡MAC地址记入到 /etc/udev/rules.d/70-persistent-net.rules 文件中。这样克隆好的新系统里也保存了这个记录。当新系统启动时,由于vmware已经为其配置了不同的MAC地址,因此系统会在启动扫描硬件时把这个新的MAC地址的网卡当做是eth1,并且增加记入上述文件中。而此时配置文件里的 /etc/sysconfig/network-scripts/ifcfg-eth0 里记录的还是原来的MAC地址,而这个MAC地址在新系统里是不存在的,所以无法启动。
 
三、解决方法
编辑/etc/udev/rules.d/70-persistent-net.rules
找到含NAME="eth0"的那行直接删除,如下:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ac:95:31", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

--------------------------------------------------------------------------------
 
编辑含NAME="eth1"的那行:"eth1"更改为"eth0"

--------------------------------------------------------------------------------
 
编辑/etc/sysconfig/network-scripts/ifcfg-eth0
更改HWADDR地址跟上面rules文件的MAC地址一样。

--------------------------------------------------------------------------------
 
最后 init 6 或者reboot 系统搞定;

Linux启动网卡时出现RTNETLINK answers: File exists错误解决方法的更多相关文章

  1. RTNETLINK answers: File exists错误解决方法

    >一.写在前面: 因为是我刚学习linux好多问题需要解决,bolg仅作为记录自己的在技术这条道路上的点点滴滴. 二.事件起因: 最近因为女友的原因消沉的好长时间,在马哥那里的课程的结束到现在已 ...

  2. RTNETLINK answers: File exists错误

    解决ssh连接虚拟机出错,RTNETLINK answers: File exists 解决步骤如下: 使用ssh连接虚拟机的时候,发现目标主机无法连接,登录虚拟机,查看ssh监听是否开启: 发现监听 ...

  3. Centos7修改默认网卡名(改为eth0)以及网卡启动报错RTNETLINK answers: File exists处理

    安装好centos7版本的系统后,发现默认的网卡名字有点怪,为了便于管理,可以手动修改.下面对centos7版本下网卡重命名操作做一记录:1)编辑网卡信息[root@linux-node2~]# cd ...

  4. linux下RTNETLINK answers: File exists的解决方案

    重启网卡时 出现 :RTNETLINK answers: File exists  提示 以下是网卡出来错误的解决方法: 第一种: 和 NetworkManager 服务有冲突,这个好解决,直接关闭 ...

  5. Redhat中网络启动错误解决办法( Failed to start LSB: Bring up/down networking RTNETLINK answers: File exists)

    关于Redhat系列中网络启动失败的解决办法 报错: Failed to start LSB: Bring up/down networking.             RTNETLINK answ ...

  6. RTNETLINK answers: File exists

    问题: 重启网络时报错如下 >>/etc/init.d/network start RTNETLINK answers: File exists 分析: /etc/init.d/netwo ...

  7. salt-minion dead but pid file exists 正确解决方法

    说明: 看了网上很多关于alt-minion dead but pid file exists 的解决方法,千篇一律的写一个shell脚本 killproc salt-minion 见链接:http: ...

  8. 【Mongodb教程 第一课补加课2 】MongoDB下,启动服务时,出现“服务没有响应控制功能”解决方法

    如图,如果通过下列代码,添加服务后,使用net start命令出现这样的问题时,可以参考下我的解决方法. D:\MongoDB>mongod --dbpath D:\MongoDB\Data - ...

  9. Git – fatal: Unable to create ‘/.git/index.lock’: File exists错误解决办法

    有时候在提交的时候,中间提交出错,导致有文件被lock,所以会报下面的错误: fatal: Unable to create ‘/msg/.git/index.lock’: File exists. ...

随机推荐

  1. T-SQL中return 返回语句学习

    return命令用于结束当前程序的执行,返回到上一个调用它的程序或其他程序,其语法格式如下: return   整数值或变量 return语句要指定返回值,如果没有指定返回值,SQL Server系统 ...

  2. delphi操作文本文件的方法简介

    delphi操作文本文件的方法简介减小字体 增大字体 作者佚名来源不详发布时间2008-5-31 10:31:16发布人xuedelphi1 文件类型和标准过程       Delphi同Object ...

  3. Google Java 风格 阅读随笔

    官方文档:Google Java Style 中文翻译版:Google Java编程风格指南, Hawstein's Blog 可以先看官方文档,遇到不确定有疑问的,可以再对照翻译版本阅读,加深理解. ...

  4. stm32开发笔记一:使用固件库在RealView-MDK中新建工程(上)

    很久没有碰单片机了,两年了吧,因为项目需要,最近入手一块红牛的开发板,核心为STM32F103ZE.虽然以前做过大概半年的stm32的开发,现在天天在.net平台下写代码,已经忘记的差不多,恰逢周末, ...

  5. Gradle构建Java Web应用(转)

    转自:http://www.blogjava.net/jiangshachina/archive/2014/02/03/409285.html 本文是发布在java.net上的一篇摘自于<Gra ...

  6. Jquery的hover方法让鼠标经过li时背景变色

    来源地址:http://itfish.net/article/29790.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Trans ...

  7. Object-C 函数定义 -- 笔记

    -(int) f:(int)x; 1.这里 - 表示对象方法, +表示类的方法 2.参数分割使用 : 号来分开 多参数情况: 1.函数不带参数 (函数名: f) -(int) f 2.带一个参数(函数 ...

  8. PHP安全编程:register_globals的安全性 全局变量注册(转)

    如果你还能记起早期Web应用开发中使用C开发CGI程序的话,一定会对繁琐的表单处理深有体会.当PHP的register_globals配置选项打开时,复杂的原始表单处理不复存在,公用变量会自动建立.它 ...

  9. C++ inline 函数

    (一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联. inline int min(int first, int ...

  10. 顺序表JAVA代码

        publicclassSeqList{       final int defaultSize =10;     //默认的顺序表的最大长度     int maxSize;          ...