当前位置: 首页 > news >正文

CentOS里ifcfg的device指的是什么?

#cat ifcfg-eth0
device=eth0
...

原因:有个多节点服务器迁移机房,怕碰坏了,先把硬盘拆下来,结果放回去的时候记错顺序了,造成开机
网卡对不上,原有的eth01变成eth23,知道怎么搞。

分析:

CentOS下找不到eth0设备的解决方法

经过百度,了解了一些信息,特此记录在此,以备忘。 为什么eth0会变成eth1? 很多Linux
distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的虚拟机,VMware会自动为虚拟机的网卡生成MAC地址,当你克隆或者重装虚拟机软件时,由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0的信息,对于这个新的网卡,udev会自动将其命名为eth1(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。

这里的eth0是在/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, and change only the value of the NAME= key.

# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

解决:
为什么eth0会变成eth1?

如何恢复到eth0?
udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules
[user@localhost ~]$ vi /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.
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:5a:6c:73", ATTR{type}=="1",KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a9:22:9d", ATTR{type}=="1",KERNEL=="eth*", NAME="eth1"  

CentOS下找不到eth0设备的解决方法
打开该文件,这时你会发现,里面有eth0,eth1两个网卡的信息,但实际上你ifconfig时只能发现eth1一个网卡的信息,这时因为eth0根本就不存在。
将其中eth0的信息删掉,并将eth1信息中的设备名改为eth0,重启系统,你看到的网卡就是eth0了,或者删掉其中所有的信息重启系统udev会帮你发现新的设备的。
另外还有一个启动脚本文件/etc/sysconfig/network-scripts/ifcfg-eth0,该文件中的mac地址为原来eth0网卡的物理地址,而虚拟机为eth1分配新的物理地址,故启动脚本中的信息与实际信息时不匹配的,将MAC的地址信息修改为70-persistent-net.rules中的eth1的MAC地址,再次重启网络,就完全恢复到以前eth0网卡的状态了。

相关文章:

  • SQLServer2005批量查询自定义对象脚本
  • 使用Let's encrypt保护你的网络通信
  • SQLServer中求两个字符串的交集
  • 139说客的优势和局限性
  • phpjm php加密的解密过程
  • 被遗忘的SQLServer比较运算符修饰词
  • PHP MySQL 数据字典生成器
  • 设计启动屏幕
  • CentOS 安装NodeJS
  • 潘多拉网吧防火墙 1.0 双线破解
  • 视频弹幕Demo
  • 《杜拉拉升职记》之经典语录
  • Win7 PHP v5.6 成功安装Imagick库
  • 在VC下配置openGL
  • [转]CURL 非阻塞调用类
  • __proto__ 和 prototype的关系
  • EOS是什么
  • Mybatis初体验
  • node 版本过低
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Protobuf3语言指南
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Vue全家桶实现一个Web App
  • 面试遇到的一些题
  • 浅谈web中前端模板引擎的使用
  • 如何在GitHub上创建个人博客
  • 数据科学 第 3 章 11 字符串处理
  • 微信小程序设置上一页数据
  • 写给高年级小学生看的《Bash 指南》
  • 用mpvue开发微信小程序
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #数学建模# 线性规划问题的Matlab求解
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (独孤九剑)--文件系统
  • (六)激光线扫描-三维重建
  • (实战篇)如何缓存数据
  • (已解决)什么是vue导航守卫
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)负载均衡,回话保持,cookie
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)视频码率,帧率和分辨率的联系与区别
  • (转)四层和七层负载均衡的区别
  • *上位机的定义
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET Core引入性能分析引导优化
  • .NET 回调、接口回调、 委托
  • .NET 解决重复提交问题
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件