标签: udev

为什么我的 eth0 叫 eno16777736?

我看过http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/,它描述了一致/可预测设备命名的基本原理,然后是生成设备名称的规则

 * Two character prefixes based on the type of interface:
 *   en -- ethernet
 *   sl -- serial line IP (slip)
 *   wl -- wlan
 *   ww -- wwan
 *
 * Type of names:
 *   b<number>                             -- BCMA bus core number
 *   ccw<name>                             -- CCW bus group name
 *   o<index>                              -- on-board device index number
 *   s<slot>[f<function>][d<dev_port>]     -- hotplug slot index number
 *   x<MAC>                                -- MAC address
 *   [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
 *                                         -- PCI geographical location
 * …
Run Code Online (Sandbox Code Playgroud)

networking linux udev

27
推荐指数
2
解决办法
2万
查看次数

为什么重新启动会导致我的 ZFS 镜像的一侧变为 UNAVAIL?

我最近刚刚将批量数据存储池(ZFS On Linux 0.6.2,Debian Wheezy)从单设备 vdev 配置迁移到双向镜像 vdev 配置。

之前的池配置是:

    NAME                     STATE     READ WRITE CKSUM
    akita                    ONLINE       0     0     0
      ST4000NM0033-Z1Z1A0LQ  ONLINE       0     0     0
Run Code Online (Sandbox Code Playgroud)

resilver 完成后一切正常(我在 resilver 完成后启动了清理,只是为了让系统再次检查所有内容并确保一切正常):

  pool: akita
 state: ONLINE
  scan: scrub repaired 0 in 6h26m with 0 errors on Sat May 17 06:16:06 2014
config:

        NAME                       STATE     READ WRITE CKSUM
        akita                      ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            ST4000NM0033-Z1Z1A0LQ  ONLINE       0     0     0
            ST4000NM0033-Z1Z333ZA  ONLINE       0     0     0

errors: No known data errors
Run Code Online (Sandbox Code Playgroud)

然而,在重新启动后,我收到一封电子邮件,通知我游泳池不漂亮而且花花公子。我看了一下,这就是我看到的: …

linux zfs mirror udev zfsonlinux

13
推荐指数
1
解决办法
2796
查看次数

如何为可移动 USB 驱动器指定静态挂载点?

我有一堆 USB 端口和集线器。当您连接 USB 拇指驱动器时,Linux 会按照先到先得的原则将它们分配给虚拟块设备。无论我将驱动器插入哪个端口,它都会创建 sdd、sde、sdf 等。我们将文件复制到这些驱动器上,当出现错误时,我无法判断错误发生在哪个驱动器上。

我想做的是配置 udev 以便它将物理硬件设备/端口映射到特定的虚拟设备。也就是说,端口 1 => sdd、端口 2 => sde、端口 3 => sdf 等。这可以让我知道错误发生在哪个拇指驱动器上。

我找到了一些资源(例如http://reactivated.net/writing_udev_rules.html),从中我可以看出这是可以做到的。但是我没有这种低级配置的经验。他们让我感到困惑。

有没有其他参考可以让事情更清楚?或者也许是一些为我做的软件?或者一个使它更容易的图书馆?

linux usb-flash-drive mount usb udev

6
推荐指数
2
解决办法
6009
查看次数

Ubuntu Hardy:在 udev 规则中测试环境变量似乎不起作用

我有一个 Ubuntu 8.04 LTS(服务器版),我需要编写一个 udev 规则让它在插入 USB 拇指驱动器时起作用。但是,根据驱动器的文件系统,我需要不同的操作。我知道我可以使用 ID_FS_TYPE 环境变量来检查驱动器上的文件系统。

按照此处找到的说明,我尝试使用一个虚拟的 udev 规则:

KERNEL!="sd[a-z][0-9]", GOTO="my_udev_rule_end"
ACTION=="add", RUN+="/usr/bin/touch /tmp/test_udev_%E{ID_FS_TYPE}"
ACTION=="add", ENV{ID_FS_TYPE}=="vfat", RUN+="/usr/bin/touch /tmp/test_udev_it_works"
LABEL="my_udev_rule_end"
Run Code Online (Sandbox Code Playgroud)

但是,当我插入带有 vfat 文件系统(应该触发两个规则)的拇指驱动器时,我最终得到一个名为 的文件/tmp/test_udev_vfat,这意味着第一个规则已成功触发,并且ID_FS_TYPE 环境变量是“vfat”,但是我没有其他文件,这意味着虽然我知道 ID_FS_TYPE env 变量是“vfat”,但我似乎无法检查它是否匹配。

我试着用谷歌搜索这个东西,但几乎每个结果似乎都假设ENV{ID_FS_TYPE}=="vfat"有效。我还在 Ubuntu 10.04 LTS 服务器上测试了完全相同的 udev 规则,结果相同。

我可能遗漏了一些非常简单的东西,但我就是不明白。有没有人看到我的 udev 规则有什么问题会阻止它在 ENV{ID_FS_TYPE} 上匹配?

谢谢。

udev udevd

6
推荐指数
1
解决办法
2294
查看次数

Ubuntu:禁用 udev 的persistent-net-generator.rules

我使用的是Ubuntu 12.04 LTS 服务器版本,我正在修改/etc/udev/rules.d/70-persistent-net.rules以定义我自己的以太网接口到 MAC 地址的映射;该文件最初是由/lib/udev/rules.d/75-persistent-net-generator.rules系统安装时的规则生成的(或在第一次启动时,我实际上不知道,这里也无关紧要)。

我如何确保我编辑过的版本永远不会被任何东西覆盖?

正如某些网站上所建议的那样,删除持久网络生成器并不是正确的做法,正如文件本身中的注释所说:它会被udev包的任何更新覆盖。我正在寻找一种更正式的正确方法来禁用它。

仅仅确保它/etc/udev/rules.d/70-persistent-net.rules确实存在就足够了吗?也许还有其他事件可以触发它的再生?(例如,向系统添加或删除以太网接口?)

networking linux ubuntu udev linux-networking

6
推荐指数
1
解决办法
9387
查看次数

Centos 7 中 70-persistent-net.rules 的位置

请给我一个线索,它位于哪里?

已经/etc/udev/rules.d不在了

# find / -name "*persistent-net.rules" 什么都没找到……

udev centos7

6
推荐指数
1
解决办法
6万
查看次数

udev 规则不适用于已安装磁盘的启动

我正在尝试在已安装的驱动器上保留预读规则以与 mongodb 一起使用。

挂载被持久使用/etc/fstab并且按预期工作。

我添加了一个udev规则ACTION=="add", KERNEL=="sdb", ATTR{bdi/read_ahead_kb}="16"/etc/udev/rules.d/85-mongod.rules,并确认它与udevadm test --action=add /sys/block/sdb

重新启动时,磁盘已安装,但预读设置为默认值,而不是 udev 规则设置的值。

centOS 7.1在谷歌云上运行并安装了一个永久性磁盘。

这是竞争条件还是其他时间问题?有什么解决方法吗?我不愿意使用,/etc/rc.local因为我不确定在执行时是否总是挂载磁盘,但不确定这是否真的是一个问题。

谢谢你的帮助!

mount udev centos7

6
推荐指数
1
解决办法
1035
查看次数

如何确定网络接口的“可预测名称”

我正在设置一个新服务器并安装了 Ubuntu Bionic,它使用可预测的网络接口名称

安装程序在救援系统上运行,该系统仍然使用旧的接口名称,如eth0, eth1,但新安装的系统已将第一个网卡配置为enp8s0

使用lshw,这张卡的公交信息是:

bus info: pci@0000:08:00.0
Run Code Online (Sandbox Code Playgroud)

我想设置其他网络接口而不启动到新安装的系统,但不知道如何确定其他卡的可预测网络接口名称。

使用lshw,我找到了另一个网卡,目前已禁用:

bus info: pci@0000:41:00.0
Run Code Online (Sandbox Code Playgroud)

是否可以由此确定可预测的网络接口名称?会是这样enp41s0吗?

我已经搜索了一段时间,但找不到任何可以简单地列出所有设备及其可预测名称的工具。

编辑:为什么我不想启动新系统来查找?因为这会在设置过程中增加一个额外的步骤。使用旧的接口命名,我可以运行一个脚本来从托管公司提供的救援系统中设置服务器,并且可以使用了。现在我必须先设置服务器减去额外的网络配置。然后我必须在新系统启动后手动设置网络,只是为了知道接口的名称。

networking ubuntu udev systemd

6
推荐指数
2
解决办法
2084
查看次数

如何根据驱动器在多托架机箱中的位置来命名驱动器?

了解多盘位设备中坏驱动器的位置非常重要,但是驱动器的默认命名(例如等/dev/sda/dev/sdb并不能提供特定驱动器物理驻留位置的线索。

我有一个用于备份的 8 盘位外部 JBOD 机柜。它托管一个 ZFS 池并连接到 Arch Linux 盒子。在 Linux 系统上是否可以根据驱动器在机箱中的物理位置使用systemd/来命名驱动器,而不是?udev/dev/sd*

我希望名称能够反映驱动器在机箱中的物理位置 /dev/encl1/dev/encl2...或类似的名称。我希望这些标签默认出现,而不是出现/dev/sd*lsblk和中zpool status

我确实知道机箱中每个驱动器的位置,并将这些信息保存在一个文件中,但最好 lsblk直接使用其他命令查看它。

我尝试创建/etc/udev/rules.d规则

SUBSYSTEM=="block" KERNEL=="sd*" ENV{ID_SERIAL_SHORT}=="ZR5CTR4V" SYMLINK+="encl1"
Run Code Online (Sandbox Code Playgroud)

我在运行后确实得到了这样的符号链接udevadm trigger,但它们并不等同/dev/sd*,而且我无法使用它们作为替代。

linux zfs udev

6
推荐指数
1
解决办法
607
查看次数

如何强制 mdadm 使用 udev 设备名称而不是 /dev/sdX

问题主要在标题中。

mdadm 和 /proc/mdstat 坚持按“传统”/dev/sdX 名称列出 md 成员。我想要的是让他们使用较新的 udev 设备名称(例如 /dev/disk/by-path 和 by-id)。

我已经将 /etc/mdadm/mdadm.conf 从

DEVICE partitions
Run Code Online (Sandbox Code Playgroud)

DEVICE /dev/disk/by-path/*
Run Code Online (Sandbox Code Playgroud)

但这似乎根本没有效果。

此外,阵列是使用旁路设备名称来创建的。

这是在 Ubuntu 11.10 上。

当前/proc/mdstat:

~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid5 sdi[4] sde[2] sdh[1] sdd[0]
      2929651200 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [=>...................]  recovery =  7.0% (69242720/976550400) finish=632.8min speed=23893K/sec

md0 : active raid5 sdb[0] sdg[4] sdc[2] sdf[1]
      2197228032 blocks super 1.2 …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu mdadm udev

5
推荐指数
1
解决办法
1467
查看次数