linux中eth0问题,复制虚拟机后eth0变成eth1问题

转自:http://blog.chinaunix.net/space.php?uid=20196318&do=blog&id=28814

  当克隆或者重装虚拟机后,再启动系统时会发现系统下不再有eth0,而变成了eth1,当使用/etc/init.d/network重启网络时,会提示找不到设备eth0及eth1的启动脚本。

做以下改动:

/etc/sysconfig/network-scripts/ifcfg-eth0重命名为/etc/sysconfig/network-scripts/ifcfg-eth1

/etc/init.d/network restart  提示找不到eth0

发现脚本中的device一项没有改过来,将其改为eth1(或者删掉)

/etc/init.d/network restart 提示网卡的物理地址不匹配

/etc/sysconfig/network-scripts/ifcfg-eth0中的mac地址为原来eth0网卡的物理地址,而虚拟机为eth1分配新的物理地址,故启动脚本中的信息与实际信息时不匹配的,将MAC的地址信息从脚本中删除,再次重启网络,OK!

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

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

如何把名字改回eth0?

在fedora 11中,udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules

打开该文件,这时你会发现,里面有eth0,eth1两个网卡的信息,但实际上你ifconfig时只能发现eth1一个网卡的信息,这时因为eth0根本就不存在。

将其中eth0的信息删掉,并将eth1信息中的设备名改为eth0,重启系统,你看到的网卡就是eth0了,或者删掉其中所有的信息重启系统udev会帮你发现新的设备的。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这是不正确的。在许多Linux系统,eth是默认的网络接口名称,用于连接以太网。但是,如果系统有多个网络接口,则可能会使用其他名称,例如eth1或enps3。因此,eth不是必须的,但它是常见的。 ### 回答2: Linux系统没有eth0这个设备是因为在目前流行的Linux发行版eth0被废除了,取而代之的是更加通用的设备命名规则。 在早期的Linux发行版网络接口设备的命名规则是基于硬件设备的MAC地址来进行命名的,例如eth0eth1等。然而,随着时间的推移,由于硬件设备的更换代和增多,基于MAC地址的命名规则越来越难以维护。此外,在虚拟机、容器等虚拟化环境,MAC地址会被动态生成,这样也导致了eth0eth1等命名规则的不确定性。 因此,一代Linux内核采用了更加通用的设备命名规则,将设备命名与设备属性、位置等联系起来。命名方式与底层硬件无关,使得用户可以更加容易地识别和管理网络设备,例如enp2s0、wlp3s0等。其,“en”表示设备为网卡;“p2”表示设备为PCI总线上的第二个设备;“s0”表示设备位于总线上的第一个插槽上。 综上所述,Linux没有eth0这个设备是因为一代Linux内核采取了更加通用的、更易于维护的设备命名规则,以适应现代化的硬件设备和虚拟化环境的需求。 ### 回答3: eth0 是一种网络设备的名称,用来表示一块以太网网卡。然而,在某些情况下,你可能会发现你的系统并没有一个叫做 eth0 的设备,这可能会让你困惑。实际上,这是因为 Linux 网络设备名称可能会因许多因素而变化,其一个因素就是系统内核的网络驱动程序。 在以前的 Linux 内核网络设备的命名是由内核模块和驱动程序的加载顺序来确定的。因此,如果你插入了一个 USB 网络适配器,它可能会被命名为 eth1,因为内核已经有 eth0 这个设备了。这样可能会导致一些问题,因为一些应用程序或者配置文件可能会假定 eth0 总是存在的。 为了解决这个问题Linux 内核的版本 2.6.17以及之后的版本,引入了一种的命名方式,称为Consistent Network Device Naming,简称 CN::DN。这种命名方式使用了物理位置和设备种类等属性来为网络设备命名,以保证设备名称具有唯一性和可预测性。因此,现在的网络设备名称可能会是 enp0s3 或者 wlp2s0(其 en 表示 Ethernet,wl 表示无线网卡,p0 表示位置 0)。这些名称虽然不同于历史上的 eth0,但却更具有意义,能够为用户提供更好的体验。 综上所述,如果你发现 Linux 系统没有 eth0 这个设备,不必惊慌和困惑,你需要明白的是,Linux网络设备名称是可以根据设备的属性和驱动程序的情况而变化的,你只需要根据实际情况来查找和配置网络设备即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值