美文网首页
Linux distribution使用udev动态管理设备文件

Linux distribution使用udev动态管理设备文件

作者: 不明世事的运维人 | 来源:发表于2018-06-15 15:56 被阅读14次

使用hyper-v安装了linux,安装成功后,使用的网卡是eth0,没有eth1。但是迁移或者克隆后,eth0消失无法使用,系统却自动生成了eth1网卡以及不断累加,这可以使用ifconfig命令看的到。

[user@localhost ~]$ ifconfig

eth1 Link encap:Ethernet HWaddr 00:0C:29:A9:22:9D

inet addr:192.168.1.108 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fea9:229d/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:313 errors:0 dropped:0 overruns:0 frame:0

TX packets:182 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:67356 (65.7 KiB) TX bytes:26612 (25.9 KiB)

Interrupt:19 Base address:0x2000

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:1788 errors:0 dropped:0 overruns:0 frame:0

TX packets:1788 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:89560 (87.4 KiB) TX bytes:89560 (87.4 KiB)

使用service network restart指令来重新启动网络服务时,会看到有eth0网卡不存在的提示。

经过百度,了解了一些信息,特此记录在此,以备忘。

为什么eth0会变成eth1?

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

如何恢复到eth0?

在fedora中,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"

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

方法1 :将其中eth0的信息删掉,并将eth1信息中的设备名改为eth0,重启系统,你看到的网卡就是eth0了

方法2或者删掉其中所有的信息重启系统udev会帮你发现新的设备的。(我用此方法)

另外还有一个启动脚本文件/etc/sysconfig/network-scripts/ifcfg-eth0,该文件中的mac地址为原来eth0网卡的物理地址,而虚拟机为eth1分配新的物理地址,故启动脚本中的信息与实际信息时不匹配的,将MAC的地址信息修改为70-persistent-net.rules中的eth1的MAC地址,再次重启网络,就完全恢复到以前eth0网卡的状态了。

相关文章

  • Linux distribution使用udev动态管理设备文件

    使用hyper-v安装了linux,安装成功后,使用的网卡是eth0,没有eth1。但是迁移或者克隆后,eth0消...

  • linux就该这么学-004

    文件系统层次化标准(FHS) 物理设备命名规则 在Linux 系统中一切皆文件,硬件设备也不例外。udev设备管理...

  • udev 高效、动态地管理 Linux 设备文件

    概述: Linux 用户常常会很难鉴别同一类型的设备名,比如 eth0, eth1, sda, sdb 等等。通过...

  • 排错

    ping 出现 dup! 解决方案: udev 详解 如果你使用Linux比较长时间了,那你就知道,在对待设备文件...

  • udev使用笔记

    一、什么是udev? udev是linux kernel的设备管理器,在最新的内核版本中kernel_3.10中u...

  • 5.树莓派USB存储设备自动挂载

    树莓派自动挂载USB设备有两种方式,可以根据需要进行选择 1.通过给linux下的设备管理服务udev添加规则配置...

  • RHEL 使用 udev rules 配置裸设备的两种方式

    rhel 7.5 使用 udev rules 配置裸设备的两种方式 方式 一 1、修改规则文件   vi /usr...

  • 5.文档管理

    一、文件管理 Linux 系统中有 一切皆文件 的说法。文件是文件硬件设备也是文件就是在 Linux 中管理计算机...

  • linux命令

    Linux命令——文件管理 cat命令 命令:cat cat命令用于连接文件并打印到标准输出设备上。 使用权限 所...

  • note_4.1_Linux目录结构与根文件系统

    Linux文件系统 Linux:glibc程序编译方式: 动态链接 静态编译 进程的类型:终端:硬件设备,关联一个...

网友评论

      本文标题:Linux distribution使用udev动态管理设备文件

      本文链接:https://www.haomeiwen.com/subject/fcdmeftx.html